EventBridge を使用して、EC2 インスタンスのためにスケジュールされたイベントの通知を受け取るにはどうすればよいですか?

最終更新日: 2022 年 1 月 19 日

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのスケジュールされたイベントがあるときに、Amazon EventBridge から通知を受け取りたいです。これはどのように実行できますか?

簡単な説明

EC2 インスタンスのスケジュール済みイベントでトリガーする EventBridge ルールを作成できます。その後、イベントパターンに一致するイベントに対して Amazon Simple Notification Service (Amazon SNS) 通知を設定できます。AWS Lambda を介してさらに処理を設定することもできます。

解決方法

重要 : 始める前に、通知に関する SNS トピックがあることを確認してください。ない場合は、新しい SNS トピックを作成して登録してください

EventBridge コンソールを使用して、イベントに対してトリガーする EventBridge ルールを作成します。

1.    ルールに [名前] と必要に応じて [説明] を割り当てます。

2.    [Define Pattern] (パターンを定義) で、[Event Pattern] (イベントパターン) を選択します。

3.    [Event matching pattern] (イベント一致パターン) で、[Pre-defined by service] (サービスごとの事前定義パターン) を選択します。

4.    [Service provider] (サービスプロバイダー) で、[AWS] を選択します。

5.    [サービス名] には、[正常性] を選択します。

6.    [イベントタイプ] には、[特定の正常性イベント] を選択します。

7.    [特定のサービス] を選択してから、[EC2] を選択します。

8.    [特定のイベントタイプカテゴリ] を選択してから、[scheduledChange] を選択します。

9.    (オプション) より具体的なルールを作成するには、[特定のイベントタイプコード] または [特定のリソース] を含めます。これらのオプションの 1 つをルールに追加することで、特定のイベントまたはインスタンスに対して通知が送信されます。

これらの設定から、次のイベントパターンが作成されます。

注 : ルールとして次のコードをコピーして貼り付けて、イベントパターンを作成することもできます。[ルールの作成] を選択した後、[イベントパターンのプレビュー] セクションで [編集] を選択します。以下のコードを挿入し、[保存] を選択してから、SNS ターゲットの作成に進みます。

{
  "source": [
    "aws.health"
  ],
  "detail-type": [
    "AWS Health Event"
  ],
  "detail": {
    "service": [
      "EC2"
    ],
    "eventTypeCategory": [
      "scheduledChange"
    ]
  }
}

10.    以下の手順に従い、SNS ターゲットを選択してください。
[ターゲットの追加] を選択します。
ターゲットには、[SNS トピック] を選択します。
トピックには、通知に使用する SNS トピックを選択します。

次の例は、ターゲットに転送される EventBridge イベントです。

{
  "version": "0",
  "id": "7fb65329-1628-4cf3-a740-95fg457h1402",
  "detail-type": "AWS Health Event",
  "source": "aws.health",
  "account": "123456789101",
  "time": "2016-06-05T06:27:57Z",
  "region": "us-east-1",
  "resources": ["i-12345678"],
  "detail": {
    "eventArn": "arn:aws:health:region::event/id",
    "service": "EC2",
    "eventTypeCode": "AWS_EC2_DEDICATED_HOST_NETWORK_MAINTENANCE_SCHEDULED",
    "eventTypeCategory": "scheduledChange",
    "startTime": "Sat, 05 Jun 2016 15:10:09 GMT",
    "eventDescription": [{
      "language": "en_US",
      "latestDescription": "A description of the event will be provided here"
    }],
    "affectedEntities": [{
      "entityValue": "i-12345678",
      "tags": {
        "stage": "prod",
        "app": "my-app"
      }
    }]
  }
}

ユースケースで特定のフィールドをターゲットに配信する必要がある場合は、[入力の構成] で [入力トランスフォーマー] を添付します。または、Lambda 関数をターゲットとして添付し、指定の処理を実行します。