みなさん、こんにちは。サニービュー事業部の小寺です。
今までAMIのイベント通知をやってみたいと思った方はいらっしゃいますか。
今回のアップデートで、Amazon EC2でAmazon マシンイメージ (以下、AMI) の作成、登録、登録解除などのイベントをCloudWatch Events(EventBridge)に送信できるようになりました。
アップデートでうれしいこと
CloudWatch Events(EventBridge)を使って、AMI インベントリの更新、AMI の共有、コピーの作成、AMI を使用したインスタンスの起動など、AMI アクションの後に実行。イベントは、AWS Lambda 関数、Amazon SNS トピック、Amazon SQS キュー、Amazon Kinesis ストリーム、その他のサービスと連携ができます。
AMIのイベント通知について
Amazon EventBridgeで以下のAmazon EC2のAMIステータスを検知することができます。
・available
・failed
・deregisterd
以下のいずれかのAMIの操作が実行されると、availableまたはfailedイベントが送信されます。
・CreateImage(AMIの作成)
・CopyImage(AMIのコピー)
・RegisterImage(AMIの登録)
・CreateRestoreImageTask(AMIのリストアタスク作成)
以下のAMIの操作が実行されると、deregisterdイベントが操作されます。
・DeregisterImage(AMIの登録を解除)
以下が各ステータスのサンプルです。
・available
AMIのイメージ作成、イメージのコピー、イメージの登録の操作が成功して、ステータスがavailableになったとき
{
“version”: “0”,
“id”: “example-9f07-51db-246b-d8b8441bcdf0”,
“detail-type”: “EC2 AMI State Change”,
“source”: “aws.ec2”,
“account”: “012345678901”,
“time”: “yyyy-mm-ddThh:mm:ssZ”,
“region”: “us-east-1”,
“resources”: [“arn:aws:ec2:us-east-1::image/ami-0123456789example”],
“detail”: {
“RequestId”: “example-9dcc-40a6-aa77-7ce457d5442b”,
“ImageId”: “ami-0123456789example”,
“State”: “available”,
“ErrorMessage”: “”
}
}
・failed
AMIのイメージ作成、イメージのコピー、イメージの登録の操作が失敗して、ステータスがfailedになったとき
エラーメッセージには、失敗理由が出力されます。
{
“version”: “0”,
“id”: “example-9f07-51db-246b-d8b8441bcdf0”,
“detail-type”: “EC2 AMI State Change”,
“source”: “aws.ec2”,
“account”: “012345678901”,
“time”: “yyyy-mm-ddThh:mm:ssZ”,
“region”: “us-east-1”,
“resources”: [“arn:aws:ec2:us-east-1::image/ami-0123456789example”],
“detail”: {
“RequestId”: “example-9dcc-40a6-aa77-7ce457d5442b”,
“ImageId”: “ami-0123456789example”,
“State”: “failed”,
“ErrorMessage”: “Description of failure”
}
}
・deregisterd
AMIイメージの登録解除のオペレーションが実行されたとき
{
“version”: “0”,
“id”: “example-9f07-51db-246b-d8b8441bcdf0”,
“detail-type”: “EC2 AMI State Change”,
“source”: “aws.ec2”,
“account”: “012345678901”,
“time”: “yyyy-mm-ddThh:mm:ssZ”,
“region”: “us-east-1”,
“resources”: [“arn:aws:ec2:us-east-1::image/ami-0123456789example”],
“detail”: {
“RequestId”: “example-9dcc-40a6-aa77-7ce457d5442b”,
“ImageId”: “ami-0123456789example”,
“State”: “deregistered”,
“ErrorMessage”: “”
}
}
どのようにイベントを送信すれば良い?
まずは、Amazon EventBridgeでルールを作成します。
(1)ルールの名前とオプションで説明を入力します。
イベントバスは「default」を選びます。ルールタイプでは「イベントパターンを持つルール」を選びます。
(2)イベントソースでは、「AWSイベントまたはEventBridgeパートナーイベント」を選びます。
(3)イベントパターンでは、この記事では例として、EC2 AMIの状態が変化したときにイベント通知をするようにします。
・イベントソース:AWSのサービス
・AWSのサービス:EC2
・イベントタイプ: EC2 AMI State Change
ここで、イベントタイプに「EC2 AMI State Change」を見つけることができずに、カスタムパターンで以下の記述をしました。
{
“source”: [“aws.ec2”],
“detail-type”: [“EC2 AMI State Change”],
“detail”: {“State”: [“available”]}
}
(4)次にイベントの通知先を設定します。
ターゲットタイプでは、AWSサービスを選びます。
ターゲットの選択では、例として「SNSトピック」を選びました。既に設定されているトピックを選びました。
(5)次にオプションとしてタグの設定が表示されます。
特に指定がなければ「次へ」をクリックします。
(6)レビューと作成画面で今までの設定を確認し、「ルールの作成」をクリックします。
これで、イベント通知まで完了です。
対応リージョン
本アップデートについては、すべてのAWS リージョンで利用可能です。
AWSをご利用いただくには、直接契約するより断然お得。
手数料不要で、AWS利用料が5%割引、さらに日本円の請求書による支払いが可能です!