はじめに
AWSを利用する中で、コマンド名やイベント名から予想した勝手な思い込みによって、思うような結果を得られず苦労した経験はないでしょうか。
今回は、「createSnapshot」というイベント名に惑わされた話です。
いきなりまとめ
EC2の「イメージ作成」で取得されるEBSスナップショットは、ボリュームが単数か複数に関わらず「createSnapshots」のイベントとして記録されます。
経緯
EC2の「イメージ作成」を実行した際にEBSのスナップショットが取得されるのですが、このイベントを契機にした処理が動かないトラブルの調査をしていました。
インスタンスにマウントされているボリュームは1つです。
Amazon EventBridge のルールには以下のイベントパターンを設定していました。
{
"source": ["aws.ec2"],
"detail-type": ["EBS Snapshot Notification"],
"detail": {
"event": ["createSnapshot"],
"result": ["succeeded", "failed"]
}
}
イベントパターンの記載方法が誤っていないか、許可ポリシーが不足していないかなど、ユーザガイドを参考に色々確認しましたが原因が特定できません...。
原因
そもそも、EC2の「イメージ作成」で取得されるEBSスナップショットは、ボリュームが単数か複数に関わらず「createSnapshots」のイベントとして記録されるとのことでした。
マウントされているボリュームが1つだったとしても、「createSnapshot」ではなく「createSnapshots」(複数形)です!
動作確認
あらためて以下のイベントパターンでルールを作成して、EBSスナップショットのイベントが記録されるか確認します。
{
"source": ["aws.ec2"],
"detail-type": ["EBS Multi-Volume Snapshots Completion Status"],
"detail": {
"event": ["createSnapshots"]
}
}
ルールを作成した後、対象インスタンスの「イメージを作成」を実行します。
画像では見切れていますがEBSボリュームは1つだけマウントされています。
対象ルールの「モニタリング」タブでイベントが検知されたことを確認できました!
最後に
ボリュームが単数ならcreateSnapshot、複数ならcreateSnapshotsと思い込んでいました。
本件に関わらず、勝手な思い込みで進めないように気を付けましょう...。