かべぎわブログ

技術的なことについてかけたらいいな…

Windowsインスタンスの停止時にログをS3に転送する

概要

Windowsインスタンスの停止時にS3にローカルのログファイルを転送する処理をご紹介します!

前提

  • Windows Server 2016
  • AWSCLIが利用可能な環境

シャットダウンスクリプトの設定手順

  • スタートメニューの「ファイル名を指定して実行」に「gpedit.msc」と入力してOK
  • コンピューターの構成→Windowsの設定→スクリプト(スタートアップ/シャットダウン)
  • シャットダウンをダブルクリック
  • 追加ボタンを押してスクリプト名に実行したいプログラムを設定

これでWindowsのシャットダウン時に指定のプログラムが実行されます。

基本的には以下URL見ればわかります。  

www.attrise.com

スクリプト例

こんなかんじのスクリプト(batファイル)をシャットダウンスクリプトに設定してあげればS3へログを転送することができます。
AWSCLIでS3にローカルのファイルをコピーしています。

aws s3 cp C:\Users\Administrator\Desktop\wawawa2.log s3://kabegiwa-bucket/wawawa.log

実行契機

以下の実行契機でシャットダウンスクリプトが実行されるようです。 - リモートデスクトップで接続して、スタートメニューから停止または再起動した場合 - マネジメントコンソールから、停止/再起動/削除した場合(削除は起動中のものを削除した場合のみ)

注意点

ただし、マネジメントコンソールから停止した場合と、スタートメニューから停止した場合では動きが少し異なっています。

スタートメニューから停止した場合はなにも考えなくても大丈夫ですが、 マネジメントコンソールからインスタンスを停止した場合、シャットダウンスクリプトの処理が長いと、停止時に問題が発生したとみなされてAWSから強制停止されてしまいます。

おわりに

終了時にログを退避することでインスタンスがいつ削除されてもいいようにしておくことがImmutableなインフラへの近道だと思います。
よくわかっていないですけれど…

Amazon Web Services 業務システム設計・移行ガイド (Informatics&IDEA)

Amazon Web Services 業務システム設計・移行ガイド (Informatics&IDEA)

  • 作者: 佐々木拓郎,林晋一郎,瀬戸島敏宏,宮川亮,金澤圭
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2018/01/20
  • メディア: 単行本
  • この商品を含むブログを見る