EBS スナップショットの作成にかかった時間を SNS 経由でメール通知する方法
はじめに
花粉症に苦しめられている Funa です。
EBS スナップショットの作成にかかった時間が知りたいというお問い合わせのため、以下の弊社ブログを参考に検証を実施しましたが AWS サービスや設定内容などが現在と異なっていたため、どのように検証を行ったかを記事にしたいと思います。
構成
上記の弊社ブログにも記載がありますが、EC2 コンソールや CloudTrail からは EBS スナップショットの作成が完了した時間が確認できません。そのため、EventBridge を使用してデータを取得します。
今回は Data Lifecycle Manager で EBS スナップショット作成 → EventBridge でデータの取得/整形 → SNS でメール通知を行います。
やってみた
SNS
以下の記事を参考に E メールを受け取りたいメールアドレスを使用して、SNS の設定を完了してください。
Data Lifecycle Manager
準備
EC2 インスタンスを作成し、対象となるボリュームにタグを付与します。今回は Key に Name、Value に testEnv を指定しました。
Elastic Block Store の中から ライフサイクルマネージャー を開いて[ライフサイクルポリシーを作成]を選択します。
ポリシータイプの選択
カスタムポリシーを選んで、EBS スナップショットポリシーを選択して[次へ]をクリックします。
設定を指定
ターゲットリソースタイプでボリュームを選択し、ターゲットリソースタグでは先ほど指定したように Key に Name、Value に testEnv を指定します。ポリシーの説明を記入したら他はそのままにして[次へ]をクリックします。
スケジュールの詳細
スナップショットの作成頻度や回数、時間などを設定します。入力を終えたら[ポリシーを確認]をクリックします。
ポリシーの作成が完了
レビューを終えたら[ポリシーを作成]をクリックします。これでポリシーが作成されました。
EventBridge
ルールの作成
EventBridge コンソールを開き、[ルールの作成]をクリックします。
ルールの詳細を定義
ルール名を入力し、後はデフォルトのまま[次へ]をクリックします。
イベントパターンを構築
イベントソース、サンプルイベント、作成のメソッドはそのままにして、イベントパターンを設定します。
イベントパターンの AWS のサービスで [EC2] を選択、イベントタイプで [EBS Snapshot Notification] を選択し、イベントタイプの仕様 1 では特定の結果を選択して [createSnapshot] を選びます。イベントタイプの仕様 2 では特定の結果を [Succeeded] にしました。後はそのままにして[次へ]をクリックします。
ターゲットを選択
ターゲットタイプはそのままにして、ターゲットを選択で [SNS トピック]を選択します。トピックでは先ほど作成した SNS のトピック名を選択してください。
次に追加設定と書かれている箇所をクリックします。ターゲット入力を設定で[入力トランスフォーマー]を選択します。そして[入力トランスフォーマーを設定]をクリックします。
ターゲット入力トランスフォーマーでは以下の入力パスを使用します。
{ "endtime": "$.detail.endTime", "result": "$.detail.result", "snapshot_id": "$.detail.snapshot_id", "starttime": "$.detail.startTime" }
テンプレートには以下を指定します。
"スナップショットが作成されました。" "詳細は以下です。" "結果:<result>" "スナップショットARN:<snapshot_id>" "作成開始時間:<starttime>" "作成終了時間:<endtime>"
[出力を生成]をクリックすると以下のような表示がされます。[確認]をクリックします。
ルールの作成が完了
[レビューと作成 にスキップ]をクリックしてレビューを行い、[ルールの作成]をクリックするとルールが作成されました。
通知が無事送信されました
SNS で設定したメールアドレスにスナップショットの作成開始時間と終了時間が記載されたメールが無事届きました。
以下のドキュメントに記載があるように、設定された時間ぴったりにスナップショット作成が開始されるわけではないので要注意です。
最初のスナップショット作成オペレーションは、指定された開始時刻から 1 時間以内に開始されます。その後に続くスナップショット作成オペレーションは、スケジュールされた時刻の 1 時間以内に開始されます。
参照
おわりに
簡単に作成できるので、スナップショットの作成開始時間と作成完了時間を確認したい方は一度お試しいただければと思います!