CloudWatch Events を使用して EC2 インスタンスのスケジュールされたイベント通知を受け取る方法を教えてください。

最終更新日 : 2019 年 5 月 8 日

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

簡単な説明

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

解決方法

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

CloudWatch コンソールを使用して、イベントでトリガーされるCloudWatch Events ルールを作成します

1.    [イベントパターン] には、[サービス別に一致させるためのイベントパターンの構築] を選択します。

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

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

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

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

6.    (オプション) すべてのインスタンスではなく特定のインスタンスについて通知を受け取るには、[特定のリソース] を選択してから、インスタンス ID を選択します。

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

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

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

以下の手順に従い、SNS ターゲットを選択してください。

1.    [ターゲットの追加] を選択します。

2.    ターゲットには、[SNS トピック] を選択します。

3.    トピックには、通知に使用する SNS トピックを選択します。

4.    [詳細設定] を選択します。

5.    必要に応じて、Lambda を使ったさらなるイベント処理などの追加設定を行います。

6.    [ルールの作成] を選択します。

注 : 次の例は、スケジュールされたイベントが CloudWatch イベントにプッシュされたときの様子を示しています。

{
  "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"
      }
    }]
  }
}

この記事は役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合