AutoScalingについて勉強しました。
lifecycle hookという概念を初めて知ったのでメモします。
lifecycle hookのAWS公式ドキュメントの説明は以下です。
ライフサイクルフックを使用すると、 グループが起動または終了するとインスタンスをAuto Scaling一時停止して、カスタムアクションを実行できます。
Lifecycle hooks enable you to perform custom actions by pausing instances as an Auto Scaling group launches or terminates them.
とのことなので、インスタンスが停止する前に何か動作を指定したい場合などに使用できるような印象を受けました。
また、以下のFAQも参考になりました。
「ライフサイクルフックとは何ですか?」という質問に対して以下の回答がありました。
ライフサイクルフックを使用すると、インスタンスの作成や削除の前にアクションを実行できます。これは、ソフトウェア環境を Amazon マシンイメージ (AMI) に変換していない場合に非常に役立ちます。例えば、作成フック (Launch) により、Amazon EC2 Auto Scaling がロードバランサーへの接続に進む前に、インスタンスのソフトウェア構成を実行して、トラフィックを処理できるように準備を整えておくことができます。インスタンスの RunCommand を呼び出す AWS Lambda 関数に作成フックを接続することによりこれを実現できます。削除フック (Terminate) は、インスタンスを削除する前にインスタンスから重要なデータを収集するというような場合に役立ちます。例えば、削除フックを使用して、インスタンスを削除するときにフリートのログファイルを Amazon S3 バケットにコピーすることにより、ログファイルを保存しておくことができます。
なるほど、Lambdaなどと組み合わせることでインスタンスから重要なデータが消失されないように、インスタンス削除前にS3などにデータを退避するというような活用方法があるみたいです。
勉強になりました。