EventBridgeとSNSでEC2起動時の自動メール通知を実装する方法
【AWS】EventBridgeとSNSでEC2起動時の自動メール通知を実装する
こんにちは!前越です。
今回は、AWSのEventBridge と SNS を使用して、EC2インスタンスが起動したときに自動でメール通知を受け取る方法をご紹介します。
システム構成
EventBridge → SNS → Email通知 という流れで、EC2の起動を検知して通知します。
実装手順
1. SNSトピックの作成
まずは通知の送信先となるSNSトピックを作成します。
- AWSマネジメントコンソールで「SNS」を開く
- 左メニューから「トピック」を選択
- 「トピックの作成」をクリック
- 以下の項目を入力:
- タイプ:スタンダード
- 名前:Ec2-startup-notification
- 「トピックの作成」をクリック
2. メール通知用のサブスクリプション作成
作成したSNSトピックにメール通知用のサブスクリプションを追加します。
- 作成したトピックを選択
- 「サブスクリプションの作成」をクリック
- 以下の項目を入力:
- プロトコル:Eメール
- エンドポイント:通知を受け取りたいメールアドレス
- 「サブスクリプションの作成」をクリック
上手くできてたら作成したトピックのステータスが 「確認済み」 になります
3. EventBridgeルールの作成
EC2の起動イベントを検知するためのルールを作成します。
- EventBridgeコンソールを開く
- 「ルールを作成」をクリック
- 以下の項目を設定:
- 名前:ec2-startup-notification
- イベントパターン:
{ "source": ["aws.ec2"], "detail-type": ["EC2 Instance State-change Notification"], "detail": { "state": ["running"] } }
- ターゲットの設定:
- ターゲットの選択:SNSトピック
- トピック:先ほど作成したSNSトピックを選択
- 「ルールの作成」をクリック
動作確認
test という適当なEC2インスタンスを起動してみる
・・・
数分後にEメール通知が届きましたー!
構成する上でハマったとこ
実装中、特に注意が必要だった点をご紹介します。
SNSサブスクリプションの確認忘れに注意!
私も最初、この確認作業を見落としていました...!
その結果:
- サブスクリプションのステータスが「確認済み」にならず
- EC2を起動しても通知が一切来ない
という状態になってしまいました。
正しい手順
- サブスクリプション作成後、確認メールを待つ
- メール内の Confirm subscription リンクをクリック
- ステータスが「確認済み」になったことを確認
この手順を踏むことで、確実に通知を受け取ることができます!
まとめ
EventBridgeとSNSを組み合わせることで、簡単にEC2インスタンスの起動通知を実装できました。
この仕組みは他のAWSサービスのイベント監視にも応用可能で、AWSの基本的なイベント処理パターンの一つとして広く使われています。
このブログが参考になれば幸いです!
参考リンク
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新ITテクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。