スポットフリートイベントをモニタリングする Amazon EventBridge の作成 - Amazon Elastic Compute Cloud

スポットフリートイベントをモニタリングする Amazon EventBridge の作成

スポットフリートの状態変更に関する通知が送信されると、その通知に関するイベントが、JSON ファイルとして Amazon EventBridge に対し送信されます。EventBridge ルールを作成し、イベントパターンがルールに一致したときに実行するアクションを自動化できます。EventBridge がルールで定義されているパターンに一致するイベントパターンを検出すると、EventBridge はルールで指定されているターゲットを呼び出します。

次のフィールドは、ルールで定義されているイベントパターンになります。

"source": "aws.ec2spotfleet"

イベントがスポットフリートからのものであることを特定します

"detail-type": "EC2 Spot Fleet State Change"

イベントタイプを特定します。

"detail": { "sub-type": "submitted" }

イベントのサブタイプを特定します。

スポットフリートのイベントの一覧とイベントデータの例については、「」を参照してください。スポットフリートイベントタイプ

通知を送信する EventBridge ルールを作成する

次の例では、Amazon EC2 がスポットフリート状態変更通知を発するたびに、E メール、テキストメッセージ、またはモバイルプッシュ通知を送信する EventBridge ルールを作成します。この例のシグナルは EC2 Spot Fleet State Change イベントとして送信され、ルールによって定義されたアクションがトリガーされます。EventBridge ルールを作成する前に、E メール、テキストメッセージ、またはモバイルプッシュ通知用の Amazon SNS トピックを作成する必要があります。

スポットフリート状態が変更されたときに通知を送信する EventBridge ルールを作成するには
  1. Amazon EventBridge コンソール (https://console.aws.amazon.com/events/) を開きます。

  2. [Create rule] を選択します。

  3. [Define rule detail] (詳細の定義) で、次の操作を行います。

    1. ルールの [Name (名前)] を入力し、必要に応じて説明を入力します。

      ルールには、同じリージョン内および同じイベントバス上の別のルールと同じ名前を付けることはできません。

    2. [イベントバス] として、[デフォルト] を選択します。アカウント内の AWS のサービスで生成されたイベントは、常に、そのアカウントのデフォルトのイベントバスに送られます。

    3. ルールタイプ では、イベントパターンを持つルール] を選択します。

    4. [Next] を選択します。

  4. [Build event pattern] (イベントパターンの作成) で、次の操作を行います。

    1. [Event source] (イベントソース) で、[AWS events or EventBridge partner events] ( イベントまたは EventBridge パートナーイベント) を選択します。

    2. この例では [Event pattern] (イベントパターン) で、EC2 Spot Fleet Instance Change イベントと一致するように以下のイベントパターンを指定します。

      { "source": ["aws.ec2spotfleet"], "detail-type": ["EC2 Spot Fleet Instance Change"] }

      イベントパターンを追加するには、以下のように [Event pattern form] (イベントパターンフォーム) を選択してテンプレートを使用するか、[Custom pattern (JSON editor)] (カスタムパターン (JSON エディター)) を選択して独自のパターンを指定します。

      1. テンプレートを使用してイベントパターンを作成するには、以下の操作を行います。

        1. [Event pattern form] (イベントパターンフォーム) を選択します。

        2. [イベントパターンフォーム] では、AWS[サービス] を選択します。

        3. [AWS Service] ( サービス) で、[EC2 Spot Fleet] (EC2 スポットフリート) を選択します。

        4. [Event type] (イベントタイプ) で、[EC2 Spot Fleet Instance Change] (EC2 スポットフリートインスタンスの変更) を選択します。

        5. テンプレートをカスタマイズするには、[Edit pattern] (パターンを編集) を選択した上で、この例のイベントパターンに合わせた変更を行います。

      2. (代替案) 以下の操作を行って、カスタムイベントパターンを指定します。

        1. [Custom pattern (JSON editor)] (カスタムパターン (JSON エディター)) を選択します。

        2. [Event pattern] (イベントパターン) ボックスに、この例のイベントパターンを追加します。

    3. [Next] を選択します。

  5. [Select target(s)] (ターゲットを選択) で、以下の操作を行います。

    1. ターゲットタイプ] では、AWSサービス] を選択します。

    2. イベントの発生時に E メール、テキストメッセージ、またはモバイルプッシュ通知を送信するために、[Select a target] (ターゲットを選択) で、[SNS topic] (SNS トピック) を選択します。

    3. [Topic (トピック)] で、既存のトピックを選択します。先ず、Amazon SNS コンソールを使用して Amazon SNS トピックを作成する必要があります。詳細については、Amazon Simple Notification Service デベロッパーガイドAmazon SNS を使用した Application-to-Person (A2P) メッセージングを参照してください。

    4. (オプション) [Additional settings] (追加設定) で、その他の設定を行うこともできます。詳細については、「Amazon EventBridge ユーザーガイド」の「イベントに反応する Amazon EventBridge ルールの作成」(ステップ 16) を参照してください。

    5. [Next] を選択します。

  6. (オプション) 必要な場合は、[Tags] (タグ) で 1 つ以上のタグを作成したルールに割り当て、[Next] (次へ) を選択します。

  7. [Review and create] (確認して作成) で、以下の操作を行いす。

    1. ルールの詳細を確認し、必要な場合は変更を行います。

    2. ルールの作成を選択します。

詳細については、「Amazon EventBridge ユーザーガイド」の「Amazon EventBridge ルール」と「Amazon EventBridge イベントパターン」を参照してください。

Lambda 関数をトリガーする EventBridge ルールの作成

次の例では、Amazon EC2 がスポットフリートインスタンスが起動したときのインスタンス変更通知を発するたびに Lambda 関数をトリガーする EventBridge ルールを作成します。この例のシグナルは EC2 Spot Fleet Instance Change イベント、サブタイプ launched として発され、ルールによって定義されたアクションがトリガーされます。

EventBridge ルールを作成する前に、Lambda 関数を作成する必要があります。

EventBridge ルールで使用する Lambda 関数を作成するには
  1. AWS Lambda コンソール (https://console.aws.amazon.com/lambda/) を開きます。

  2. [関数の作成] を選択します。

  3. 関数の名前を入力し、コードを設定し、[Create function (関数の作成)] を選択します。

    Lambda の使用の詳細については、AWS Lambda デベロッパーガイドの「コンソールで Lambda 関数を作成する」を参照してください。

スポットフリートのインスタンスの状態が変更されたときに Lambda 関数をトリガーする EventBridge ルールを作成するには
  1. Amazon EventBridge コンソール (https://console.aws.amazon.com/events/) を開きます。

  2. [Create rule] を選択します。

  3. [Define rule detail] (詳細の定義) で、次の操作を行います。

    1. ルールの [Name (名前)] を入力し、必要に応じて説明を入力します。

      ルールには、同じリージョン内および同じイベントバス上の別のルールと同じ名前を付けることはできません。

    2. [イベントバス] として、[デフォルト] を選択します。アカウント内の AWS のサービスで生成されたイベントは、常に、そのアカウントのデフォルトのイベントバスに送られます。

    3. ルールタイプ では、イベントパターンを持つルール] を選択します。

    4. [Next] を選択します。

  4. [Build event pattern] (イベントパターンの作成) で、次の操作を行います。

    1. [Event source] (イベントソース) で、[AWS events or EventBridge partner events] ( イベントまたは EventBridge パートナーイベント) を選択します。

    2. この例では [Event pattern] (イベントパターン) で EC2 Spot Fleet Instance Change イベントと launched サブタイプに一致するよう、以下のイベントパターンを指定します。

      { "source": ["aws.ec2spotfleet"], "detail-type": ["EC2 Spot Fleet Instance Change"], "detail": { "sub-type": ["launched"] }

      イベントパターンを追加するには、以下のように [Event pattern form] (イベントパターンフォーム) を選択してテンプレートを使用するか、[Custom pattern (JSON editor)] (カスタムパターン (JSON エディター)) を選択して独自のパターンを指定します。

      1. テンプレートを使用してイベントパターンを作成するには、以下の操作を行います。

        1. [Event pattern form] (イベントパターンフォーム) を選択します。

        2. [イベントパターンフォーム] では、AWS[サービス] を選択します。

        3. [AWS Service] ( サービス) で、[EC2 Spot Fleet] (EC2 スポットフリート) を選択します。

        4. [Event type] (イベントタイプ) で、[EC2 Spot Fleet Instance Change] (EC2 スポットフリートインスタンスの変更) を選択します。

        5. [Edit pattern] (パターンの編集) を選択し、イベントパターン例と一致するよう、"detail": {"sub-type": ["launched"] を追加します。適切な JSON 形式を得るには、前にある角括弧 (]) の後にコンマ (,) を入力します。

      2. (代替案) 以下の操作を行って、カスタムイベントパターンを指定します。

        1. [Custom pattern (JSON editor)] (カスタムパターン (JSON エディター)) を選択します。

        2. [Event pattern] (イベントパターン) ボックスに、この例のイベントパターンを追加します。

    3. [Next] を選択します。

  5. [Select target(s)] (ターゲットを選択) で、以下の操作を行います。

    1. ターゲットタイプ] では、AWSサービス] を選択します。

    2. イベントの発生時に E メール、テキストメッセージ、またはモバイルプッシュ通知を送信するために、[Select a target] (ターゲットを選択) で、[SNS topic] (SNS トピック) を選択します。

    3. [Topic] (トピック) で [Lambda function] (Lambda 関数) を選択し、[Function] (関数) では、イベント発生時に応答するように作成した関数を選択します。

    4. (オプション) [Additional settings] (追加設定) で、その他の設定を行うこともできます。詳細については、「Amazon EventBridge ユーザーガイド」の「イベントに反応する Amazon EventBridge ルールの作成」(ステップ 16) を参照してください。

    5. [Next] を選択します。

  6. (オプション) 必要な場合は、[Tags] (タグ) で 1 つ以上のタグを作成したルールに割り当て、[Next] (次へ) を選択します。

  7. [Review and create] (確認して作成) で、以下の操作を行いす。

    1. ルールの詳細を確認し、必要な場合は変更を行います。

    2. ルールの作成を選択します。

Lambda 関数を作成する方法のチュートリアルと Lambda 関数を実行する EventBridge ルールについては、AWS Lambda デベロッパーガイドの「チュートリアル: EventBridge を使用して Amazon EC2 インスタンスの状態をログに記録する」を参照してください。