やること
最近Lambdaでスナップショットの世代管理機能を実装していたのですが、データライフサイクルマネージャーなるものでスナップショットを取得&世代管理できると聞いたので検証してみます。
スナップショットライフサイクルについての説明は以下を参照
docs.aws.amazon.com
実施内容
- 取得前のスナップショット一覧確認
- データライフサイクルマネージャー設定
- スナップショット取得確認
実際作業
取得前のスナップショット一覧確認
ライフサイクルポリシーの設定前に、スナップショット一覧を確認します。
データライフサイクルマネージャー設定
EC2ダッシュボードのライフサイクルマネージャーからライフサイクルポリシーを作成します。
スナップショットを取得する対象インスタンスをName Tagで指定します。
ポリシースケジュールは日本時間の毎日14時45分に実行、2世代保持で設定します。
※すぐに取得できそうな時間にしました。
タグ付け情報は特に変更せずに次に行きます。
rootボリュームを対象外とするチェック項目がありますが、今回はチェックを付けずに設定します。
IAMロールは今回はデフォルトロールで作成します。
ちなみにデフォルトロールは以下
最後に作成するポリシーの有効化設定があります。
今回は特に無効化する必要がないので、有効化して作成します。
ライフサイクルポリシーが作成されたことを確認します。
指定した時間でスナップショットが取得されていれば成功です。
スナップショット取得処理は指定した時間になったら即実行されるのではなく、その時間から1時間以内に実行されるので注意が必要です。
スナップショット確認
スナップショットが取得されていることを確認します。
説明にPolicyのIDが記載されているので、ライフサイクルポリシーによって取得されたことがわかります。
感想及び所感
このライフサイクルマネージャーの存在を知る前にLambdaとSSMでスナップショットを取得するように実装していましたが、手軽さでいうとこっちのほうがだいぶ楽でした。
ただ、スナップショット名を設定しようとNameタグをつけたところ、タイムスタンプなどで動的に名前を変更できなかったので、それは微妙かなと。
※タグのValueを動的に変更する方法を知らないだけかもしれませんが
世代管理の確認は、できたら追記します。
【2019/10/23追記】
時間が経って確認してみましたが、想定通り2世代分しか取得されていないようでした。