Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの状態が変化したときに、メール通知を受信したいです。
簡単な説明
EC2 インスタンスの状態が変化したときにメール通知を受信するには、次の手順を実行します。
- Amazon Simple Notification Service (Amazon SNS) トピックを作成し、サブスクライブする側のエンドポイントまたはクライアントにメッセージを送信します。
- EC2 インスタンスの状態変更通知イベントタイプを使用して Amazon EventBridge を作成します。
注: Amazon SNS と EventBridge には、別々に料金が発生します。
解決策
SNS トピックを作成する
インスタンスの状態が変化したときにメール通知を送信する Amazon SNS トピックを作成するには、次のステップを実行します。
- Amazon SNS コンソールを開きます。
- ナビゲーションペインで [トピック] を選択し、[トピックを作成] を選択します。
- [タイプ] には [標準] を選択します。
- [名前] にポリシーの名前を入力します。
- [表示名] にトピックの表示名を入力します。
- [トピックの作成] を選択します。
- [サブスクリプション] タブで [サブスクリプションを作成] を選択します。
- [プロトコル] には [E メール] を選択します。
- [エンドポイント] に通知を受信するメールアドレスを入力します。
- [サブスクリプションを作成] を選択します。
- 入力したメールアドレスにサブスクリプション確認メールが届きます。メールで [サブスクリプションを確認] を選択します。
EventBridge イベントを作成する
インスタンスの状態が変化したときにメール通知を送信する EventBridge イベントを作成するには、次の手順を実行します。
- EventBridge コンソールを開きます。
- [ルールを作成] を選択します。または、[イベント] ナビゲーションペインで [ルール] を選択し、[ルールを作成] を選択します。
- ルールの [名前] と [説明] を入力します。
- [イベントバス] と [ルールタイプ] はデフォルト設定から変更せず、[次へ] を選択します。
- [イベントパターン] では、[イベントソース] を [AWS サービス] から変更しないでください。[AWS サービス] で [EC2] を選択します。
- [イベントタイプ] で [EC2 インスタンスの状態変更通知] を選択します。
- [すべての状態] と [すべてのインスタンス] のデフォルト設定は変更せず、[次へ] を選択します。
- [ターゲットを選択] で [SNS トピック] を選択します。
- [トピック] には作成した SNS トピックを選択し、[次へ] を選択します。
- [その他の設定] セクションを展開します。[ターゲット入力の設定] で [入力トランスフォーマー] を選択します。
- [入力トランスフォーマーの設定] を選択し、[入力パス] と [テンプレート] に次のテキストを入力します。
[入力パス] に次のテキストを入力します。
{"instance-id":"$.detail.instance-id", "state":"$.detail.state", "time":"$.time", "region":"$.region", "account":"$.account"}
[テンプレート] に次のテキストを入力します。
"At <time>, the status of your EC2 instance <instance-id> on account <account> in the AWS Region <region> has changed to <state>."
注: 上記の入力テンプレートにカスタム入力を追加することもできます。イベントのテキストをカスタマイズする方法の詳細については、「Amazon EventBridge の入力変換」を参照してください。
[次へ] を選択します。
オプションの [タグ] は空白から変更せず、[次へ] を選択します。
[ルールを作成] を選択します。
注: 作成したルールは単一の AWS リージョンに適用されます。
ルールをテストするには、インスタンスを起動して停止します。上記のルールでは、インスタンスの状態が変わるたびにメール通知が生成されます。