カピバラ好きなエンジニアブログ

興味ある技術とか検証した内容を赴くままに書いていきます。カピバラの可愛さこそ至高。

スナップショットのライフサイクルマネージャーを使用してみた

やること

最近Lambdaでスナップショットの世代管理機能を実装していたのですが、データライフサイクルマネージャーなるものでスナップショットを取得&世代管理できると聞いたので検証してみます。

スナップショットライフサイクルについての説明は以下を参照
docs.aws.amazon.com


実施内容

  • 取得前のスナップショット一覧確認
  • データライフサイクルマネージャー設定
  • スナップショット取得確認

    実際作業

    取得前のスナップショット一覧確認

    ライフサイクルポリシーの設定前に、スナップショット一覧を確認します。 f:id:live-your-life-dd18:20191021143911p:plain

    データライフサイクルマネージャー設定

    EC2ダッシュボードのライフサイクルマネージャーからライフサイクルポリシーを作成します。
    f:id:live-your-life-dd18:20191021113259p:plain

    スナップショットを取得する対象インスタンスをName Tagで指定します。
    f:id:live-your-life-dd18:20191021113718p:plain

    ポリシースケジュールは日本時間の毎日14時45分に実行、2世代保持で設定します。
    ※すぐに取得できそうな時間にしました。
    f:id:live-your-life-dd18:20191021143436p:plain

    タグ付け情報は特に変更せずに次に行きます。
    f:id:live-your-life-dd18:20191021143320p:plain

    rootボリュームを対象外とするチェック項目がありますが、今回はチェックを付けずに設定します。
    f:id:live-your-life-dd18:20191021114243p:plain

    IAMロールは今回はデフォルトロールで作成します。
    f:id:live-your-life-dd18:20191021114344p:plain

    ちなみにデフォルトロールは以下
    f:id:live-your-life-dd18:20191021114426p:plain

    最後に作成するポリシーの有効化設定があります。
    今回は特に無効化する必要がないので、有効化して作成します。
    f:id:live-your-life-dd18:20191021143617p:plain

    ライフサイクルポリシーが作成されたことを確認します。
    f:id:live-your-life-dd18:20191021143723p:plain

    指定した時間でスナップショットが取得されていれば成功です。
    スナップショット取得処理は指定した時間になったら即実行されるのではなく、その時間から1時間以内に実行されるので注意が必要です。

    スナップショット確認

    スナップショットが取得されていることを確認します。
    f:id:live-your-life-dd18:20191021150740p:plain

    説明にPolicyのIDが記載されているので、ライフサイクルポリシーによって取得されたことがわかります。

    感想及び所感

    このライフサイクルマネージャーの存在を知る前にLambdaとSSMでスナップショットを取得するように実装していましたが、手軽さでいうとこっちのほうがだいぶ楽でした。
    ただ、スナップショット名を設定しようとNameタグをつけたところ、タイムスタンプなどで動的に名前を変更できなかったので、それは微妙かなと。
    ※タグのValueを動的に変更する方法を知らないだけかもしれませんが

    世代管理の確認は、できたら追記します。

    【2019/10/23追記】

    時間が経って確認してみましたが、想定通り2世代分しか取得されていないようでした。
    f:id:live-your-life-dd18:20191023133718p:plain