

# Amazon EventBridge を使用して EC2 フリートまたはスポットフリートによって出力されたイベントをモニタリングし、プログラムで応答します。
<a name="monitor-ec2-fleet-using-eventbridge"></a>

EC2 フリートかスポットフリートの状態に変化があった場合、そのフリートから通知が発せられます。通知は、Amazon EventBridge (旧称 Amazon CloudWatch Events) に送信されるイベントとして利用できます。イベントは、ベストエフォートベースで出力されます。

Amazon EventBridge を使用して、イベントに応答してプログラムによるアクションをトリガーするルールを作成できます。例えば、フリートの状態が変更されたときにトリガーされるルールと、フリートのインスタンスが終了したときにトリガーされるルールという 2 つの EventBridge ルールを作成できます。この例の最初のルールでは、フリートの状態が変更された際に、ルールが SNS トピックを呼び出して E メール通知を送信するように設定できます。2 番目のルールでは、フリートのインスタンスが終了した場合に Lambda 関数を呼び出して、新しいインスタンスを起動するように設定できます。

**注記**  
タイプ `maintain` と `request` のフリートのみがイベントを発行します。タイプ `instant` のフリートは、同期された 1 回限りのリクエストを送信するため、イベントを発行しません。フリートの状態は応答ですぐに認識されます。Amazon EventBridge を使用してフリートイベントをモニタリングするには、リクエストタイプが `maintain` または `request` である必要があります。

フリートのイベント履歴を表示する方法については、「[EC2 フリートのイベント履歴を表示する](describe-ec2-fleet.md#describe-ec2-fleet-event-history)」を参照してください。

**Topics**
+ [EC2 フリートイベントまたはスポットフリートイベントをモニタリングする Amazon EventBridge ルールを作成する](#fleet_create-eventbridge-rules)
+ [EC2 フリート イベントタイプ](#ec2-fleet-event-types)
+ [スポットフリートイベントタイプ](#spot-fleet-event-types)

## EC2 フリートイベントまたはスポットフリートイベントをモニタリングする Amazon EventBridge ルールを作成する
<a name="fleet_create-eventbridge-rules"></a>

EC2 フリートまたはスポットフリートの状態変更に関する通知が送信される場合、その通知のためのイベントが Amazon EventBridge に対し JSON ファイルとして送信されます。EventBridge がルールで定義されているパターンに一致するイベントパターンを検出すると、EventBridge はルールで指定されているターゲットを呼び出します。

EventBridge ルールを記述して、一致するイベントパターンに基づいてアクションを自動化できます。

イベント内の次のフィールドはイベントパターンを形成します。このパターンはルールで定義されます。

`"source": "aws.ec2fleet"`  
イベントが EC2 フリート からのものであることを特定します。

`"detail-type": "EC2 Fleet State Change"`  
イベントタイプを特定します。

`"detail": { "sub-type": "submitted" }`  
イベントのサブタイプを特定します。

EC2 フリートおよびスポットフリートのイベントの一覧とイベントデータの例については、「[EC2 フリート イベントタイプ](#ec2-fleet-event-types)」と「[スポットフリートイベントタイプ](#spot-fleet-event-types)」を参照してください。

**Topics**
+ [通知を送信する EventBridge ルールを作成する](#eventbridge-send-notification)
+ [Lambda 関数をトリガーする EventBridge ルールの作成](#eventbridge-trigger-lambda)

### 通知を送信する EventBridge ルールを作成する
<a name="eventbridge-send-notification"></a>

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

**前提条件**  
EventBridge ルールを作成する前に、E メール、テキストメッセージ、またはモバイルプッシュ通知用の Amazon SNS トピックを作成する必要があります。

**EventBridge ルールを作成して EC2 フリート状態が変更されたときに通知を送信するには**

1. Amazon EventBridge コンソールの [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) を開いてください。

1. [**Create rule**] を選択してください。

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

   1. ルールの [**Name (名前)**] を入力し、必要に応じて説明を入力してください。

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

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

   1. **[ルールタイプ]** で、**[イベントパターンを持つルール]** を選択してください。

   1. [**Next**] を選択してください。

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

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

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

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

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

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

         1. **[Event pattern form]** (イベントパターンフォーム) を選択してください。

         1. **[イベントソース]** で、**[AWS のサービス]** を選択してください。

         1. **[AWS Service]** ( サービス) で、**[EC2 Fleet]** (EC2 フリート) を選択してください。

         1. **[Event type]** (イベントタイプ) で、**[EC2 Fleet Instance Change]** (EC2 フリートインスタンスの変更) を選択してください。

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

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

         1. **[Custom pattern (JSON editor)]** (カスタムパターン (JSON エディター)) を選択してください。

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

   1. [**Next**] を選択してください。

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

   1. **[ターゲットタイプ]** で、**[AWS のサービス]** を選択してください。

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

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

   1. (オプション) **[Additional settings]** (追加設定) で、その他の設定を行うこともできます。詳細については、「*Amazon EventBridge ユーザーガイド*」の「[イベントに反応する Amazon EventBridge ルールの作成](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-create-rule.html)」(ステップ 16) を参照してください。

   1. [**Next**] を選択してください。

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

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

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

   1. **ルールの作成**を選択してください。

詳細については、「Amazon EventBridge ユーザーガイド**」の「[Amazon EventBridge ルール](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)」と「[Amazon EventBridge イベントパターン](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)」を参照してください。

### Lambda 関数をトリガーする EventBridge ルールの作成
<a name="eventbridge-trigger-lambda"></a>

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

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

**EventBridge ルールで使用する Lambda 関数を作成するには**

1. AWS Lambda コンソールの [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/) を開いてください。

1. [**関数の作成**] を選択してください。

1. 関数の名前を入力し、コードを設定し、[**Create function (関数の作成)**] を選択してください。

   詳細については、「*AWS Lambda デベロッパーガイド*」の「[初めての Lambda 関数の作成](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html)」を参照してください。

**EC2 フリート のインスタンスの状態が変更されたときに Lambda 関数をトリガーする EventBridge ルールを作成するには**

1. Amazon EventBridge コンソールの [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) を開いてください。

1. [**Create rule**] を選択してください。

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

   1. ルールの [**Name (名前)**] を入力し、必要に応じて説明を入力してください。

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

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

   1. **[ルールタイプ]** で、**[イベントパターンを持つルール]** を選択してください。

   1. [**Next**] を選択してください。

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

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

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

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

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

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

         1. **[Event pattern form]** (イベントパターンフォーム) を選択してください。

         1. **[イベントソース]** で、**[AWS のサービス]** を選択してください。

         1. **[AWS Service]** ( サービス) で、**[EC2 Fleet]** (EC2 フリート) を選択してください。

         1. **[Event type]** (イベントタイプ) で、**[EC2 Fleet Instance Change]** (EC2 フリートインスタンスの変更) を選択してください。

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

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

         1. **[Custom pattern (JSON editor)]** (カスタムパターン (JSON エディター)) を選択してください。

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

   1. [**Next**] を選択してください。

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

   1. **[ターゲットタイプ]** で、**[AWS のサービス]** を選択してください。

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

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

   1. (オプション) **[Additional settings]** (追加設定) で、その他の設定を行うこともできます。詳細については、「*Amazon EventBridge ユーザーガイド*」の「[イベントに反応する Amazon EventBridge ルールの作成](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-create-rule.html)」(ステップ 16) を参照してください。

   1. [**Next**] を選択してください。

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

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

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

   1. **ルールの作成**を選択してください。

Lambda 関数を作成する方法のチュートリアルと Lambda 関数を実行する EventBridge ルールについては、*AWS Lambda デベロッパーガイド*の「[チュートリアル: EventBridge を使用して Amazon EC2 インスタンスの状態をログに記録する](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-log-ec2-instance-state.html)」を参照してください。

## EC2 フリート イベントタイプ
<a name="ec2-fleet-event-types"></a>

5 つの EC2 フリート イベントタイプがあります。イベントタイプごとに、いくつかのサブタイプがあります。

**Topics**
+ [EC2 フリートの状態の変更](#ec2-fleet-state-change)
+ [EC2 フリートのスポットインスタンスリクエストの変更](#ec2-fleet-spot-instance-request-change)
+ [EC2 フリートインスタンスの変更](#ec2-fleet-instance-change)
+ [EC2 フリート情報](#ec2-fleet-info)
+ [EC2 フリートエラー](#ec2-fleet-config-not-valid)

### EC2 フリートの状態の変更
<a name="ec2-fleet-state-change"></a>

EC2 フリート は、EC2 フリート の状態が変更されたときに `EC2 Fleet State Change` イベントを Amazon EventBridge に送信します。

以下はこのイベントのサンプルデータです。

```
{
    "version": "0",
    "id": "715ed6b3-b8fc-27fe-fad6-528c7b8bf8a2",
    "detail-type": "EC2 Fleet State Change",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-11-09T09:00:20Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-598fb973-87b7-422d-be4d-6b0809bfff0a"
    ],
    "detail": {
        "sub-type": "active"
    }
}
```

`sub-type` に指定できる値は次のとおりです。

`active`  
EC2 フリート リクエストは検証済みです。Amazon EC2 は実行中のインスタンスをターゲット数分、確保しようとしています。

`deleted`  
EC2 フリート リクエストが削除され、実行中のインスタンスがありません。EC2 フリート は、そのインスタンスが終了してから 2 日後に削除されます。

`deleted_running`  
EC2 フリート リクエストが削除され、追加のインスタンスは起動されません。その既存のインスタンスは、中断または終了されるまで実行され続けます。リクエストは、すべてのインスタンスが中断されるか終了されるまで、この状態のままになります。

`deleted_terminating`  
EC2 フリートリクエストが削除され、そのインスタンスが終了します。リクエストは、すべてのインスタンスが終了されるまで、この状態のままになります。

`expired`  
EC2 フリートリクエストが期限切れです。このリクエストが `TerminateInstancesWithExpiration` セットを使用して作成されている場合、後続の `terminated` イベントは、インスタンスが終了済みなことを示します。

`modify_in_progress`  
EC2 フリート リクエストは変更中です。リクエストは、この変更が完全に処理されるまで、同じ状態を維持します。

`modify_succeeded`  
EC2 フリートリクエストが変更されました。

`submitted`  
EC2 フリート リクエストは評価中です。Amazon EC2 は目標数のインスタンスを起動する準備をしています。

`progress`  
EC2 フリートリクエストは受理中です。

### EC2 フリートのスポットインスタンスリクエストの変更
<a name="ec2-fleet-spot-instance-request-change"></a>

EC2 フリート は、フリート内のスポットインスタンスリクエストの状態が変更されたときに `EC2 Fleet Spot Instance Request Change` イベントを Amazon EventBridge に送信します。

以下はこのイベントのサンプルデータです。

```
{
    "version": "0",
    "id": "19331f74-bf4b-a3dd-0f1b-ddb1422032b9",
    "detail-type": "EC2 Fleet Spot Instance Request Change",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-11-09T09:00:05Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-83fd4e48-552a-40ef-9532-82a3acca5f10"
    ],
    "detail": {
        "spot-instance-request-id": "sir-rmqske6h",
        "description": "SpotInstanceRequestId sir-rmqske6h, PreviousState: cancelled_running",
        "sub-type": "cancelled"
    }
}
```

`sub-type` に指定できる値は次のとおりです。

`active`  
スポットインスタンスリクエストは受理された状態であり、スポットインスタンスの関連付けが完了しています。

`cancelled`  
スポットインスタンスリクエストがキャンセルされている、あるいは、そのリクエストの有効期限が切れています。

`disabled`  
スポットインスタンスが停止されています。

`submitted`  
スポットインスタンスリクエストは送信済みです。

### EC2 フリートインスタンスの変更
<a name="ec2-fleet-instance-change"></a>

EC2 フリート は、フリート内のインスタンスの状態が変更されたときに `EC2 Fleet Instance Change` イベントを Amazon EventBridge に送信します。

以下はこのイベントのサンプルデータです。

```
{
    "version": "0",
    "id": "542ce428-c8f1-0608-c015-e8ed6522c5bc",
    "detail-type": "EC2 Fleet Instance Change",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-11-09T09:00:23Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-598fb973-87b7-422d-be4d-6b0809bfff0a"
    ],
    "detail": {
        "instance-id": "i-0c594155dd5ff1829",
        "description": "{\"instanceType\":\"c5.large\",\"image\":\"ami-6057e21a\",\"productDescription\":\"Linux/UNIX\",\"availabilityZone\":\"us-east-1d\"}",
        "sub-type": "launched"
    }
}
```

`sub-type` に指定できる値は次のとおりです。

`launched`  
新しいインスタンスが起動されました。

`terminated`  
このインスタンスは終了しています。

`termination_notified`  
フリートのターゲット容量のスケールダウン中 (ターゲット容量 が 4 から 3 に変更される場合など) に、Amazon EC2 によってスポットインスタンスが終了されたので、インスタンス終了通知が送信されました。

### EC2 フリート情報
<a name="ec2-fleet-info"></a>

EC2 フリート は、受理中にエラーが発生したときに `EC2 Fleet Information` イベントを Amazon EventBridge に送信します。情報イベントは、フリートがターゲット容量を満たすことをブロックしません。

以下はこのイベントのサンプルデータです。

```
{
    "version": "0",
    "id": "76529817-d605-4571-7224-d36cc1b2c0c4",
    "detail-type": "EC2 Fleet Information",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-11-09T08:17:07Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-8becf5fe-bb9e-415d-8f54-3fa5a8628b91"
    ],
    "detail": {
        "description": "c4.xlarge, ami-0947d2ba12ee1ff75, Linux/UNIX, us-east-1a, Spot price in either SpotFleetRequestConfigData or SpotFleetLaunchSpecification or LaunchTemplate or LaunchTemplateOverrides is less than Spot market price $0.0619",
        "sub-type": "launchSpecUnusable"
    }
}
```

`sub-type` に指定できる値は次のとおりです。

`fleetProgressHalted`  
すべての起動仕様の料金は、スポット料金を下回っているため無効です (すべての起動仕様が `launchSpecUnusable` イベントを生成しました)。スポット料金が変更されると、起動仕様が有効になる場合があります。

`launchSpecTemporarilyBlacklisted`  
設定が有効ではなく、インスタンスを起動しようとして何回か失敗しました。詳細については、イベントの説明をご覧ください。

`launchSpecUnusable`  
この起動仕様の料金は、スポット料金を下回っているため無効です。

`registerWithLoadBalancersFailed`  
ロードバランサーにインスタンスを登録しようとして失敗しました。詳細については、イベントの説明をご覧ください。

### EC2 フリートエラー
<a name="ec2-fleet-config-not-valid"></a>

EC2 フリート は、受理中にエラーが発生したときに `EC2 Fleet Error` イベントを Amazon EventBridge に送信します。エラーイベントは、フリートがターゲット容量を満たすことをブロックします。

以下はこのイベントのサンプルデータです。

```
{
    "version": "0",
    "id": "69849a22-6d0f-d4ce-602b-b47c1c98240e",
    "detail-type": "EC2 Fleet Error",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-10-07T01:44:24Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-9bb19bc6-60d3-4fd2-ae47-d33e68eafa08"
    ],
    "detail": {
        "description": "m3.large, ami-00068cd7555f543d5, Linux/UNIX: IPv6 is not supported for the instance type 'm3.large'. ",
        "sub-type": "spotFleetRequestConfigurationInvalid"
    }
}
```

`sub-type` に指定できる値は次のとおりです。

`iamFleetRoleInvalid`  
この EC2 フリートには、インスタンスの起動または終了に必要なアクセス許可がありません。

`allLaunchSpecsTemporarilyBlacklisted`  
有効な設定はありません。インスタンスを起動しようとして何回か失敗しました。詳細については、イベントの説明をご覧ください。

`spotInstanceCountLimitExceeded`  
起動できるスポットインスタンスの数の上限に達しました。

`spotFleetRequestConfigurationInvalid`  
設定が有効ではありません。詳細については、イベントの説明をご覧ください。

## スポットフリートイベントタイプ
<a name="spot-fleet-event-types"></a>

5 つのスポットフリートイベントタイプがあります。イベントタイプごとに、いくつかのサブタイプがあります。

**Topics**
+ [EC2 スポットフリートの状態の変更](#spot-fleet-state-change)
+ [EC2 スポットフリートのスポットインスタンスリクエストの変更](#spot-fleet-spot-instance-request-change)
+ [EC2 スポットフリートインスタンスの変更](#spot-fleet-instance-change)
+ [EC2 スポットフリート情報](#spot-fleet-info)
+ [EC2 スポットフリートのエラー](#spot-fleet-config-not-valid)

### EC2 スポットフリートの状態の変更
<a name="spot-fleet-state-change"></a>

スポットフリートは、スポットフリートの状態が変更されたときに `EC2 Spot Fleet State Change` イベントを Amazon EventBridge に送信します。

以下はこのイベントのサンプルデータです。

```
{
    "version": "0",
    "id": "d1af1091-6cc3-2e24-203a-3b870e455d5b",
    "detail-type": "EC2 Spot Fleet State Change",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-09T08:57:06Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-4b6d274d-0cea-4b2c-b3be-9dc627ad1f55"
    ],
    "detail": {
        "sub-type": "submitted"
    }
}
```

`sub-type` に指定できる値は次のとおりです。

`active`  
このスポットフリートリクエストは検証済みです。Amazon EC2 は実行中のインスタンスを目標数分、確保しようとしています。

`cancelled`  
このスポットフリートリクエストはキャンセルされており、実行中のインスタンスはありません。スポットフリートは、そのインスタンスが終了されてから 2 日後に削除されます。

`cancelled_running`  
このスポットフリートリクエストはキャンセルされており、追加のインスタンスは起動されません。その既存のインスタンスは、中断または終了されるまで実行され続けます。リクエストは、すべてのインスタンスが中断されるか終了されるまで、この状態のままになります。

`cancelled_terminating`  
このスポットフリートリクエストはキャンセルされており、対象のインスタンスを終了中です。リクエストは、すべてのインスタンスが終了されるまで、この状態のままになります。

`expired`  
スポットフリートリクエストの有効期限が切れました。このリクエストが `TerminateInstancesWithExpiration` セットを使用して作成されている場合、後続の `terminated` イベントは、インスタンスが終了済みなことを示します。

`modify_in_progress`  
スポットフリートリクエストは変更中です。リクエストは、この変更が完全に処理されるまで、同じ状態を維持します。

`modify_succeeded`  
スポットフリートリクエストが変更されました。

`submitted`  
スポットフリートリクエストは評価中です。Amazon EC2 は目標数のインスタンスを起動する準備をしています。

`progress`  
スポットフリートリクエストは受理中です。

### EC2 スポットフリートのスポットインスタンスリクエストの変更
<a name="spot-fleet-spot-instance-request-change"></a>

スポットフリートは、フリート内のスポットインスタンスリクエストの状態が変更されたときに `EC2 Spot Fleet Spot Instance Request Change` イベントを Amazon EventBridge に送信します。

以下はこのイベントのサンプルデータです。

```
{
    "version": "0",
    "id": "cd141ef0-14af-d670-a71d-fe46e9971bd2",
    "detail-type": "EC2 Spot Fleet Spot Instance Request Change",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-09T08:53:21Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-a98d2133-941a-47dc-8b03-0f94c6852ad1"
    ],
    "detail": {
        "spot-instance-request-id": "sir-a2w9gc5h",
        "description": "SpotInstanceRequestId sir-a2w9gc5h, PreviousState: cancelled_running",
        "sub-type": "cancelled"
    }
}
```

`sub-type` に指定できる値は次のとおりです。

`active`  
スポットインスタンスリクエストは受理された状態であり、スポットインスタンスの関連付けが完了しています。

`cancelled`  
スポットインスタンスリクエストがキャンセルされている、あるいは、そのリクエストの有効期限が切れています。

`disabled`  
スポットインスタンスが停止されています。

`submitted`  
スポットインスタンスリクエストは送信済みです。

### EC2 スポットフリートインスタンスの変更
<a name="spot-fleet-instance-change"></a>

スポットフリートは、フリート内のインスタンスの状態が変更されたときに `EC2 Spot Fleet Instance Change` イベントを Amazon EventBridge に送信します。

以下はこのイベントのサンプルデータです。

```
{
    "version": "0",
    "id": "11591686-5bd7-bbaa-eb40-d46529c2710f",
    "detail-type": "EC2 Spot Fleet Instance Change",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-09T07:25:02Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-c8a764a4-bedc-4b62-af9c-0095e6e3ba61"
    ],
    "detail": {
        "instance-id": "i-08b90df1e09c30c9b",
        "description": "{\"instanceType\":\"r4.2xlarge\",\"image\":\"ami-032930428bf1abbff\",\"productDescription\":\"Linux/UNIX\",\"availabilityZone\":\"us-east-1a\"}",
        "sub-type": "launched"
    }
}
```

`sub-type` に指定できる値は次のとおりです。

`launched`  
新しいインスタンスが起動されました。

`terminated`  
このインスタンスは終了しています。

`termination_notified`  
フリートのターゲット容量のスケールダウン中 (ターゲット容量 が 4 から 3 に変更される場合など) に、Amazon EC2 によってスポットインスタンスが終了されたので、インスタンス終了通知が送信されました。

### EC2 スポットフリート情報
<a name="spot-fleet-info"></a>

スポットフリートは、受理中にエラーが発生したときに `EC2 Spot Fleet Information` イベントを Amazon EventBridge に送信します。情報イベントは、フリートがターゲット容量を満たすことをブロックしません。

以下はこのイベントのサンプルデータです。

```
{
    "version": "0",
    "id": "73a60f70-3409-a66c-635c-7f66c5f5b669",
    "detail-type": "EC2 Spot Fleet Information",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-08T20:56:12Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-2531ea06-af18-4647-8757-7d69c94971b1"
    ],
    "detail": {
        "description": "r3.8xlarge, ami-032930428bf1abbff, Linux/UNIX, us-east-1a, Spot bid price is less than Spot market price $0.5291",
        "sub-type": "launchSpecUnusable"
    }
}
```

`sub-type` に指定できる値は次のとおりです。

`fleetProgressHalted`  
すべての起動仕様の料金は、スポット料金を下回っているため無効です (すべての起動仕様が `launchSpecUnusable` イベントを生成しました)。スポット料金が変更されると、起動仕様が有効になる場合があります。

`launchSpecTemporarilyBlacklisted`  
設定が有効ではなく、インスタンスを起動しようとして何回か失敗しました。詳細については、イベントの説明をご覧ください。

`launchSpecUnusable`  
この起動仕様の料金は、スポット料金を下回っているため無効です。

`registerWithLoadBalancersFailed`  
ロードバランサーにインスタンスを登録しようとして失敗しました。詳細については、イベントの説明をご覧ください。

### EC2 スポットフリートのエラー
<a name="spot-fleet-config-not-valid"></a>

スポットフリートは、受理中にエラーが発生したときに `EC2 Spot Fleet Error` イベントを Amazon EventBridge に送信します。エラーイベントは、フリートがターゲット容量を満たすことをブロックします。

以下はこのイベントのサンプルデータです。

```
{
    "version": "0",
    "id": "10adc4e7-675c-643e-125c-5bfa1b1ba5d2",
    "detail-type": "EC2 Spot Fleet Error",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-09T06:56:07Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-38725d30-25f1-4f30-83ce-2907c56dba17"
    ],
    "detail": {
        "description": "r4.2xlarge, ami-032930428bf1abbff, Linux/UNIX: The associatePublicIPAddress parameter can only be specified for the network interface with DeviceIndex 0. ",
        "sub-type": "spotFleetRequestConfigurationInvalid"
    }
}
```

`sub-type` に指定できる値は次のとおりです。

`iamFleetRoleInvalid`  
このスポットフリートには、インスタンスの起動または終了に必要なアクセス許可がありません。

`allLaunchSpecsTemporarilyBlacklisted`  
有効な設定はありません。インスタンスを起動しようとして何回か失敗しました。詳細については、イベントの説明をご覧ください。

`spotInstanceCountLimitExceeded`  
起動できるスポットインスタンスの数の上限に達しました。

`spotFleetRequestConfigurationInvalid`  
設定が有効ではありません。詳細については、イベントの説明をご覧ください。