

# スポットフリートを操作する
<a name="work-with-spot-fleets"></a>

スポットフリートの使用を開始するには、スポットインスタンスの合計ターゲットキャパシティ、オプションのオンデマンド部分を含むリクエストを作成し、AMI とキーペアを手動で指定するか、フリート内のインスタンスの設定を含む起動テンプレートを指定します。必要に応じて、さらに別のパラメータを指定したり、デフォルト値を使用するようにフリートを設定したりできます。また、フリートを作成するときに、フリートリクエスト、およびフリート内のインスタンスとボリュームにタグ付けすることもできます。

フリートは、使用可能なキャパシティがあるときはオンデマンドインスタンスを起動し、上限価格がスポット料金より大きく、キャパシティが利用可能なときはスポットインスタンスを起動します。

フリートを起動したら、フリートリクエスト、フリート内のインスタンス、およびフリートイベントの説明を記述できます。また、必要に応じてさらに別のタグを割り当てることもできます。

合計ターゲットキャパシティなどのフリートパラメータを変更する必要がある場合は、キャパシティを維持するように設定されているのであれば、フリートを変更できます。送信後にワンタイムリクエストのキャパシティを変更することはできません。

フリートリクエストは、期限切れになるかお客様によってキャンセル (削除) されるまで、アクティブのままになります。フリートリクエストをキャンセルするときは、インスタンスを終了することも、実行したままにすることもできます。実行したままにする場合、オンデマンドインスタンスは、終了されるまで実行され、スポットインスタンスは中断されるか終了されるまで実行されます。

**Topics**
+ [スポットフリートリクエストの状態](spot-fleet-states.md)
+ [スポットフリートアクセス許可](spot-fleet-prerequisites.md)
+ [スポットフリートを作成する](create-spot-fleet.md)
+ [新しいまたは既存のスポットフリートリクエスト、およびそのフリートが起動するインスタンスとボリュームにタグ付けする](tag-spot-fleet.md)
+ [スポットフリートリクエスト、そのインスタンス、イベント履歴を記述する](manage-spot-fleet.md)
+ [スポットフリートリクエストを変更します。](modify-spot-fleet.md)
+ [スポットフリートリクエストをキャンセル (削除) します。](cancel-spot-fleet.md)
+ [スポットフリートの自動スケーリングについて](spot-fleet-automatic-scaling.md)

# スポットフリートリクエストの状態
<a name="spot-fleet-states"></a>

スポットフリートリクエストはさまざまな状態の 1 つであり、各状態はリクエストライフサイクルとインスタンスの管理の異なる段階を示します。

スポットフリートリクエストは、次の状態のいずれかになります。

`submitted`  
スポットフリートリクエストは評価中です。Amazon EC2 は目標数のインスタンスを起動する準備をしています。スポットフリートのクォータを超えたリクエストは、即時キャンセルされます。

`active`  
スポットフリートは検証済みです。Amazon EC2 はターゲット数の実行中のスポットインスタンスを維持しようとしています。リクエストは、変更またはキャンセルされるまで、この状態のままになります。

`modifying`  
スポットフリートリクエストは変更中です。リクエストは、変更が完全に処理されるか、リクエストがキャンセルされるまで、この状態のままになります。`maintain` フリートタイプのみを変更できます。この状態は 1 回限りの `request` フリートタイプには適用されません。

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

`cancelled_terminating`  
スポットフリートがキャンセル (削除) され、そのインスタンスが終了しています。リクエストは、すべてのインスタンスが終了されるまで、この状態のままになります。

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

# スポットフリートアクセス許可
<a name="spot-fleet-prerequisites"></a>

ユーザーがスポットフリートを作成または管理する場合、必要な許可を付与する必要があります。

Amazon EC2 コンソールを使用してスポットフリートを作成した場合、`AWSServiceRoleForEC2SpotFleet` および `AWSServiceRoleForEC2Spot` というサービスにリンクされた 2 つのロールと、`aws-ec2-spot-fleet-tagging-role` というロールが作成されます。ユーザーの代わりに、リソースのリクエスト、起動、終了、タグ付けを行うアクセス許可をスポットフリートに与えます。AWS CLI または API を使用する場合は、これらのロールが存在することを確認する必要があります。

次の手順に従って、必要なアクセス許可を付与し、ロールを作成します。

**Topics**
+ [ユーザーにスポットフリートの許可を付与する](#spot-fleet-iam-users)
+ [スポットフリート用のサービスにリンクされたロール](#service-linked-roles-spot-fleet-requests)
+ [スポットインスタンス用のサービスにリンクされたロール](#service-linked-roles-spot-instances)
+ [スポットフリートにタグ付けするための IAM ロール](#spot-fleet-service-linked-role)

## ユーザーにスポットフリートの許可を付与する
<a name="spot-fleet-iam-users"></a>

ユーザーがスポットフリートを作成または管理する場合、必ず必要な許可を付与してください。

**スポットフリートのポリシーを作成するには**

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

1. ナビゲーションペインで、[Policies]、[Create policy] の順に選択してください。********

1. [ポリシーの作成] ページで、 [JSON] を選択し、テキストを以下に置き換えます。********

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:RunInstances",
                   "ec2:CreateTags",
                   "ec2:RequestSpotFleet",
                   "ec2:ModifySpotFleetRequest",
                   "ec2:CancelSpotFleetRequests",
                   "ec2:DescribeSpotFleetRequests",
                   "ec2:DescribeSpotFleetInstances",
                   "ec2:DescribeSpotFleetRequestHistory"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::*:role/aws-ec2-spot-fleet-tagging-role"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iam:CreateServiceLinkedRole",
                   "iam:ListRoles",
                   "iam:ListInstanceProfiles"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

   前述したポリシーの例では、ほとんどのスポットフリートのユースケースで必要な許可をユーザーに付与します。特定の API アクションに制限するには、代わりにこれらの API アクションのみを指定します。

   必要な EC2 および IAM の API****

   ポリシーには、次の API を含める必要があります。
   + `ec2:RunInstances` - スポットフリートでインスタンスを起動するために必要
   + `ec2:CreateTags` - スポットフリートのリクエスト、インスタンス、またはボリュームのタグ付けに必要
   + `iam:PassRole` - スポットフリートロールを指定するために必要
   + `iam:CreateServiceLinkedRole` - サービスにリンクされたロールの作成に必要
   + `iam:ListRoles` - 既存の IAM ロールを列挙するために必要
   + `iam:ListInstanceProfiles` - 既存のインスタンスプロファイルを列挙するために必要
**重要**  
起動仕様または起動テンプレートで IAM インスタンスプロファイルのロールを指定する場合は、そのロールをサービスに渡す許可をユーザーに付与する必要があります。これを行うには、IAM ポリシーで `iam:PassRole` アクションのリソースとして `"arn:aws:iam::*:role/IamInstanceProfile-role"` を含めます。詳細については、「IAM ユーザーガイド」の「[AWS サービスにロールを渡すアクセス権限をユーザーに付与する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)」を参照してください。

   スポットフリートの API****

   必要に応じて、次のスポットフリート API アクションをポリシーに追加します。
   + `ec2:RequestSpotFleet`
   + `ec2:ModifySpotFleetRequest`
   + `ec2:CancelSpotFleetRequests`
   + `ec2:DescribeSpotFleetRequests`
   + `ec2:DescribeSpotFleetInstances`
   + `ec2:DescribeSpotFleetRequestHistory`

   オプションの IAM API****

   (オプション) ユーザーが IAM コンソールを使用してロールまたはインスタンスプロファイルを作成できるようにするには、次のアクションをポリシーに追加する必要があります。
   + `iam:AddRoleToInstanceProfile`
   + `iam:AttachRolePolicy`
   + `iam:CreateInstanceProfile`
   + `iam:CreateRole`
   + `iam:GetRole`
   + `iam:ListPolicies`

1. [**ポリシーの確認**] を選択してください。

1. [**ポリシーの確認**] ページでポリシー名と説明を入力し、[**ポリシーの作成**] を選択してください。

1. アクセス権限を付与するにはユーザー、グループ、またはロールにアクセス許可を追加します。
   + AWS IAM アイデンティティセンター のユーザーとグループ:

     アクセス許可セットを作成します。「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)」の手順に従ってください。
   + IAM 内で、ID プロバイダーによって管理されているユーザー:

     ID フェデレーションのロールを作成します。詳細については *IAM ユーザーガイド* の [サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) を参照してください。
   + IAM ユーザー:
     + ユーザーが担当できるロールを作成します。手順については *IAM ユーザーガイド* の [IAM ユーザーのロールの作成](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) を参照してください。
     + (お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加します。*IAM ユーザーガイド* の [ユーザー (コンソール) へのアクセス許可の追加](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) の指示に従います。

## スポットフリート用のサービスにリンクされたロール
<a name="service-linked-roles-spot-fleet-requests"></a>

Amazon EC2 は、ユーザーに代わって AWS の他のサービスを呼び出すために必要なアクセス許可のために、サービスにリンクされたロールを使用します。サービスにリンクされたロールは、AWS のサービスに直接リンクされた一意のタイプの IAM ロールです。サービスにリンクされたロールは、AWS のサービスにアクセス許可を委任するためのセキュアな方法を提供します。これは、リンクされたサービスのみが、サービスにリンクされたロールを引き受けることができるためです。詳細については「*IAM ユーザーガイド*」の「[Service-linked roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html)」を参照してください。

Amazon EC2 は、AWSServiceRoleForEC2SpotFleet という、サービスにリンクされたロールを使用して、ユーザーの代わりにインスタンスを起動して管理します。****

**重要**  
[暗号化された AMI](AMIEncryption.md) または暗号化された Amazon EBS スナップショットをスポットフリートで指定した場合は、CMK を使用して Amazon EC2 がユーザーの代わりにインスタンスを起動する許可を **AWSServiceRoleForEC2SpotFleet** ロールに付与する必要があります。詳細については、「[暗号化された AMI および EBS スナップショット用の CMK へのアクセス権の付与](#spot-fleet-service-linked-roles-access-to-cmks)」を参照してください。

### AWSServiceRoleForEC2SpotFleet によって付与されるアクセス許可
<a name="service-linked-role-permissions-granted-by-AWSServiceRoleForEC2SpotFleet"></a>

**[AWSServiceRoleForEC2SpotFleet]** ロールは、ユーザーに代わってインスタンスのリクエスト、起動、終了、タグ付けを行う許可をスポットフリートに付与します。Amazon EC2 は、このサービスにリンクされたロールを使用して、以下のアクションを完了します。
+ `ec2:RequestSpotInstances` - スポットインスタンスをリクエスト
+ `ec2:RunInstances` - インスタンスを起動
+ `ec2:TerminateInstances` - インスタンスを終了
+ `ec2:DescribeImages` - インスタンスの Amazon マシンイメージ (AMI) を表示
+ `ec2:DescribeInstanceStatus` - インスタンスのステータスを表示
+ `ec2:DescribeSubnets` - インスタンスのサブネットを記述
+ `ec2:CreateTags` - スポットフリートリクエスト、インスタンス、ボリュームにタグを追加
+ `elasticloadbalancing:RegisterInstancesWithLoadBalancer` - 指定されたインスタンスを指定されたロードバランサーに追加
+ `elasticloadbalancing:RegisterTargets` - 指定されたターゲットを指定されたターゲットグループに登録

### サービスにリンクされたロールの作成
<a name="service-linked-role-creating-for-spot-fleet"></a>

ほとんどの状況では、サービスにリンクされたロールを手動で作成する必要はありません。Amazon EC2 は、コンソールを使用してスポットフリートを初めて作成するときに、**AWSServiceRoleForEC2SpotFleet** サービスにリンクされたロールを作成します。

Amazon EC2 がこのサービスにリンクされたロールのサポートを開始した 2017 年 10 月よりも前にアクティブなスポットフリートリクエストを行った場合、Amazon EC2は AWS アカウントで **AWSServiceRoleForEC2SpotFleet** ロールを作成します｡ 詳細については、IAM ユーザーガイドの「 アカウントに新しいロールが表示される」を参照してください。[AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)**

AWS CLI または API を使用してスポットフリートを作成する場合、最初にこのロールが存在しているか確認する必要があります。

**コンソールを使用してスポットフリートの [AWSServiceRoleForEC2SpotFleet] ロールを作成するには**

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

1. ナビゲーションペインで **Roles (ロール) ** を選択してください。

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

1. **[信頼されたエンティティを選択]** ページで、以下の操作を実行してください。

   1. **[信頼できるエンティティタイプ]** で、**[AWS サービス]** を選択してください。

   1. **[ユースケース]** の **[サービスまたはユースケース]** で、**[EC2]** を選択してください。

   1. **[ユースケース]** で、**[EC2 - スポットフリート]** を選択してください。
**注記**  
**[EC2 - スポットフリート]** ユースケースでは、必要な IAM アクセス許可を持つポリシーが自動的に作成され、ロール名として **[AWSEC2SpotFleetServiceRolePolicy]** が提案されます。

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

1. **[アクセス許可を追加]** ページで **[次へ]** を選択してください。

1. **[名前、確認、および作成]** ページで、**[ロールの作成]** をクリックしてください。

**AWS CLI を使用してスポットフリートの [AWSServiceRoleForEC2SpotFleet] ロールを作成するには**  
次のように、create-service-linked-role コマンドを使用します。[https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-linked-role.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-linked-role.html)

```
aws iam create-service-linked-role --aws-service-name spotfleet.amazonaws.com
```

スポットフリートを使用する必要がなくなった場合は、**AWSServiceRoleForEC2SpotFleet** ロールを削除することをお勧めします。このロールがアカウントから削除された後、コンソールを使用してスポットフリートをリクエストすると､ Amazon EC2 はロールを再作成します。詳細については、「*IAM ユーザーガイド*」の「[サービスにリンクされたロールの削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html#id_roles_manage_delete_slr)」を参照してください。

### 暗号化された AMI および EBS スナップショット用の CMK へのアクセス権の付与
<a name="spot-fleet-service-linked-roles-access-to-cmks"></a>

[暗号化された AMI](AMIEncryption.md) または暗号化された Amazon EBS スナップショットをスポットフリートリクエストで指定し、カスタマー管理された型キーを暗号化に使用する場合は、CMK を使用して、Amazon EC2 がユーザーの代わりにインスタンスを起動する許可を、**AWSServiceRoleForEC2SpotFleet** ロールに付与する必要があります。これを行うには、次の手順で示すように、CMK に付与を追加する必要があります。

アクセス権限を設定するときは、付与がキーポリシーの代わりになります。詳細については、 デベロッパーガイドの「許可の使用」と「 でのキーポリシーの使用」を参照してください。[https://docs.aws.amazon.com/kms/latest/developerguide/grants.html](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)[AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)*AWS Key Management Service*

**CMK を使用するアクセス許可を AWSServiceRoleForEC2SpotFleet ロールに付与するには**
+ create-grant コマンドを使用して CMK に付与を追加し、プリンシパル (サービスにリンクされたロール AWSServiceRoleForEC2SpotFleet) を指定します。このプリンシパルには、付与が許可するオペレーションを実行するためのアクセス許可が提供されます。[https://docs.aws.amazon.com/cli/latest/reference/kms/create-grant.html](https://docs.aws.amazon.com/cli/latest/reference/kms/create-grant.html)****CMK を指定するには、 パラメータと CMK の ARN を使用します。`key-id`プリンシパルを指定するには、 パラメータとサービスにリンクされたロール AWSServiceRoleForEC2SpotFleet の ARN を使用します。`grantee-principal`****

  ```
  aws kms create-grant \
      --region us-east-1 \
      --key-id arn:aws:kms:us-east-1:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab \
      --grantee-principal arn:aws:iam::111122223333:role/aws-service-role/spotfleet.amazonaws.com/AWSServiceRoleForEC2SpotFleet \
      --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
  ```

## スポットインスタンス用のサービスにリンクされたロール
<a name="service-linked-roles-spot-instances"></a>

Amazon EC2 は、AWSServiceRoleForEC2Spot という、サービスにリンクされたロールを使用して、ユーザーの代わりに スポットインスタンス を起動して管理します。****詳細については、「[スポットインスタンスリクエスト向けのサービスにリンクされたロール](service-linked-roles-spot-instance-requests.md)」を参照してください。

## スポットフリートにタグ付けするための IAM ロール
<a name="spot-fleet-service-linked-role"></a>

`aws-ec2-spot-fleet-tagging-role` IAM ロールは、スポットフリートリクエスト、インスタンス、ボリュームにタグ付けするアクセス権限をスポットフリートに付与します。詳細については、「[新しいまたは既存のスポットフリートリクエスト、およびそのフリートが起動するインスタンスとボリュームにタグ付けする](tag-spot-fleet.md)」を参照してください。

**重要**  
フリートのインスタンスにタグ付けすることを選択し、ターゲット容量を維持することを選択した場合 (スポットフリートリクエストのタイプは `maintain`)、ユーザーと `IamFleetRole` の許可の違いにより、フリートのインスタンスのタグ付け動作に整合性がなくなる可能性があります。`IamFleetRole` に `CreateTags` アクセス許可が含まれていない場合、フリートによって起動されたインスタンスの一部がタグ付けされていない可能性があります。当社はこの不整合の修正に取り組んでいますが、フリートによって起動されたすべてのインスタンスがタグ付けされるようにするために、`IamFleetRole`には`aws-ec2-spot-fleet-tagging-role`ロールを使用することをお勧めします。または、既存のロールを使用するには、`AmazonEC2SpotFleetTaggingRole` の AWS 管理ポリシーを既存のロールにアタッチします。それ以外の場合は、既存のポリシーに `CreateTags` アクセス許可を手動で追加する必要があります。

**スポットフリートにタグ付けする IAM ロールを作成するには**

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

1. ナビゲーションペインで **Roles (ロール) ** を選択してください。

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

1. **[Select trusted entity]** (信頼できるエンティティの選択) ページの **[Trusted entity type]** (信頼できるエンティティタイプ) で、**[AWS service]** ( のサービス) を選択してください。

1. **[Use case]** (ユースケース) で、**[Use cases for other AWS services]** (他の サービスでのユースケース) から **[EC2]** を選択し、**[EC2 - Spot Fleet Tagging]** (EC2 - スポットフリートのタグ付け) を選択してください。

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

1. **[アクセス許可を追加]** ページで **[次へ]** を選択してください。

1. **[Name, review, and create]** (名前、レビュー、および作成) ページで、**[Role name]** (ロール名) にロールの名前 (例えば、**aws-ec2-spot-fleet-tagging-role**) を入力してください。

1. ページ内の情報を確認し、**[Create role]** (ロールを作成) をクリックしてください。

### サービス間の混乱した代理の防止
<a name="cross-service-confused-deputy-prevention"></a>

[「混乱した代理」問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)は、アクションを実行するためのアクセス許可を持たないエンティティが、より特権のあるエンティティにアクションの実行を強制できてしまう場合に生じる、セキュリティ上の問題です。`aws-ec2-spot-fleet-tagging-role` 信頼ポリシー内で [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) と [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) のグローバル条件コンテキストキーを使用して、リソースについてスポットフリートが別のサービスに付与するアクセス許可を制限することをお勧めします。

**aws:SourceArn および aws:SourceAccount 条件キーを `aws-ec2-spot-fleet-tagging-role` 信頼ポリシーに追加するには**

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

1. ナビゲーションペインで **[Roles]** (ロール) を選択してください。

1. 前に作成した `aws-ec2-spot-fleet-tagging-role` を見つけ、リンク (チェックボックスではありません) を選択してください。

1. **[Summary]** (概要) にある **[Trust relationships]** (信頼関係) タブを開き、**[Edit trust policy]** (信頼ポリシーの編集) をクリックしてください。

1. [「混乱した代理」問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)を防止するために、JSON ステートメント内で、以下のようにグローバル条件コンテキストキー `aws:SourceAccount` および `aws:SourceArn` を含む `Condition` 要素を追加ます。

   ```
   "Condition": {
         "ArnLike": {
           "aws:SourceArn": "arn:aws:ec2:us-east-1:111122223333:spot-fleet-request/sfr-*"
         },
         "StringEquals": {
           "aws:SourceAccount": "111122223333"
         }
   ```
**注記**  
`aws:SourceArn` の値にアカウント ID が含まれており、上記のグローバル条件コンテキストキーの両方を同じポリシーステートメント内で使用する場合、`aws:SourceAccount` 値と `aws:SourceArn` 値の中のアカウントには、同じアカウント ID を使用する必要があります。

   最終的な信頼ポリシーは次のようになります。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {
       "Sid": "ConfusedDeputyPreventionExamplePolicy",
       "Effect": "Allow",
       "Principal": {
         "Service": "spotfleet.amazonaws.com"
       },
       "Action": "sts:AssumeRole",
       "Condition": {
         "ArnLike": {
           "aws:SourceArn": "arn:aws:ec2:us-east-1:111122223333:spot-fleet-request/sfr-*"
         },
         "StringEquals": {
           "aws:SourceAccount": "111122223333"
         }
       }
     }
   }
   ```

------

1. [**ポリシーの更新**] を選択してください。

次の表に、`aws-ec2-spot-fleet-tagging-role` の範囲を制限するために想定される `aws:SourceArn` の値を、その特異性の様々なレベルについてまとめました。


****  

| API オペレーション: | 呼び出されたサービス | スコープ | `aws:SourceArn` | 
| --- | --- | --- | --- | 
| RequestSpotFleet | AWS STS (AssumeRole) | aws-ec2-spot-fleet-tagging-role が持つ AssumeRole の機能を、指定されたアカウントの spot-fleet-requests に制限します。 | arn:aws:ec2:\$1:123456789012:spot-fleet-request/sfr-\$1 | 
| RequestSpotFleet | AWS STS (AssumeRole) | aws-ec2-spot-fleet-tagging-roleが持つ AssumeRole の機能を、指定されたアカウントおよび指定されたリージョンの spot-fleet-requests に制限します。このロールは他のリージョンでは使用できないことに注意してください。 | arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-\$1 | 
| RequestSpotFleet | AWS STS (AssumeRole) | aws-ec2-spot-fleet-tagging-role が持つ AssumeRoleの機能を、フリート sfr-11111111-1111-1111-1111-111111111111 に影響を与えるアクションのみに制限します。このロールは、他のスポットフリートでは使用できない場合があることに注意してください。また、このロールを使用して request-spot-fleet により新しいスポットフリートを起動することはできません。 | arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-11111111-1111-1111-1111-111111111111 | 

# スポットフリートを作成する
<a name="create-spot-fleet"></a>

AWS マネジメントコンソールを使用すると、AMI と、必要な合計のターゲットキャパシティのみを選択して、スポットフリートリクエストをすばやく作成することができます。Amazon EC2 は、ユーザーのニーズに最も適したフリートを設定し、スポットのベストプラクティスに従います。あるいは、デフォルト設定のいずれかを変更することができます。

フリートにオンデマンドインスタンスを含める場合は、リクエストで起動テンプレートを指定し、希望するオンデマンドキャパシティを指定する必要があります。

フリートは、キャパシティが使用可能であるときはオンデマンドインスタンスを起動し、最大料金がスポット料金を超えていてキャパシティが使用可能であるときはスポットインスタンスを起動します。

フリートにスポットインスタンスが含まれ、タイプが `maintain` である場合、Amazon EC2 はスポットインスタンスが中断したときにフリートのターゲットキャパシティを維持しようとします。

**必要なアクセス許可**  
詳細については、「[スポットフリートアクセス許可](spot-fleet-prerequisites.md)」を参照してください。

**Topics**
+ [スポットフリートリクエストをすばやく作成する](#create-spot-fleet-quick)
+ [定義済みパラメータを使用してスポットフリートリクエストを作成する](#create-spot-fleet-advanced)
+ [異常なスポットインスタンスを置き換えるスポットフリートを作成する](#spot-fleet-health-checks)

## スポットフリートリクエストをすばやく作成する
<a name="create-spot-fleet-quick"></a>

Amazon EC2 でスポットフリートリクエストをすばやく作成するには、次の手順に従います。

**推奨設定を使用してスポットフリートリクエストを作成するには**

1. Amazon EC2 コンソール ([https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)) を開きます。

1. ナビゲーションペインで、[**Spot Requests**] を選択してください。

1. スポットを初めて使用する場合は、ウェルカムページが表示されるので、そこで [**Get started**] を選択してください。それ以外の場合は、**[スポットフリートリクエストの作成]** を選択します。

1. **[Launch parameters]** (起動パラメータ) で、**[Manually configure launch parameters]** (起動パラメータを手動で構成する) を選択してください。

1. **AMI** で、AMI を選択してください。

1. **[Target capacity]** (ターゲット容量) の下の **[Total target capacity]** (総ターゲット容量) で、リクエストする単位数を指定します。ユニットのタイプには、**[インスタンス]**、**[vCPU]**、または **[メモリ (MiB)]** を選択できます。

1. **[フリートリクエストの概要]** で、フリートの設定を確認し、**[起動]** を選択してください。

## 定義済みパラメータを使用してスポットフリートリクエストを作成する
<a name="create-spot-fleet-advanced"></a>

定義済みパラメータを使用して、スポットフリートを作成できます。

------
#### [ Console ]

**定義済みパラメータを使用してスポットフリートリクエストを作成するには**

1. Amazon EC2 コンソール ([https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)) を開きます。

1. ナビゲーションペインで、[**Spot Requests**] を選択してください。

1. スポットを初めて使用する場合は、ウェルカムページが表示されるので、そこで [**Get started**] を選択してください。それ以外の場合は、**[スポットフリートリクエストの作成]** を選択します。

1. **[起動パラメータ]** では、以下のように、起動パラメータを手動で設定することも、起動テンプレートを使用することもできます。

   1. [手動設定] Amazon EC2 コンソールで起動パラメータを定義するには、**[起動パラメータを手動で構成する]** を選択し、以下の手順を実行します。

      1. **[AMI]** で、AWS が提供する基本 AMI のいずれかを選択してください。あるいは、**[Search for AMI]** (AMI を検索) をクリックして、ユーザーコミュニティの AMI、AWS Marketplace、または独自の AMI を選択することも可能です。
**注記**  
起動パラメータで指定された AMI が登録解除または無効になっている場合、AMI から新しいインスタンスを起動することはできません。ターゲット容量を維持するように設定されたフリートの場合、ターゲット容量は維持されません。

      1. (オプション) [Key pair name] で、既存のキーペアを使用するか、新しいキーペアを作成するかを選択してください。****

         [既存のキーペア] キーペアを選択してください。

         [新しいキーペア] **[新しいキーペアの作成]** を選択して **[キーペア]** ページに進みます。完了したら、**[Spot Requests]** (スポットリクエスト) ページに戻ってリストを更新します。

      1. (オプション) **[Additional launch parameters]** (追加の起動パラメータ) を展開し、次の操作を実行します。

         1. (オプション) Amazon EBS 最適化を有効にするには、**[EBS-optimized]** (EBS に最適化された) で **[Launch EBS-optimized instances]** (EBS に最適化されたインスタンスの起動) を選択してください。

         1. (オプション) インスタンス用の一時ブロックレベルストレージを追加するには、**[Instance store]** (インスタンスストア) で **[Attach at launch]** (起動時にアタッチ) を選択してください。

         1. (オプション) ストレージを追加するには、**[Add new volume]** (新しいボリュームの追加) を選択し、インスタンスタイプに応じて追加のインスタンスストアボリュームまたは Amazon EBS ボリュームを指定します。

         1. (オプション) デフォルトでは、インスタンスに対して基本モニタリングが有効になります。詳細モニタリングを有効にするには、**[Monitoring]** (モニタリング) で **[Enable CloudWatch detailed monitoring]** (CloudWatch 詳細モニタリングの有効化) を選択してください。

         1. (オプション) 専有スポットインスタンスを実行するには、**[Tenancy]** (テナンシー) で **[Dedicated - run a dedicated instance]** (専有 - 専有インスタンスの実行) を選択してください。

         1. (オプション) [Security groups] で、1 つ以上のセキュリティグループを選択するか、新しいセキュリティグループを作成します。****

            [既存のセキュリティグループ] 1 つ以上のセキュリティグループを選択してください。

            [新しいセキュリティグループ] **[Create new security group]** (新しいセキュリティグループの作成) を選択し、**[Security Groups]** (セキュリティグループ) ページに移動します。完了したら、**[Spot Requests]** (スポットリクエスト) に戻ってリストを更新します。

         1. (オプション) インスタンスにインターネットからアクセスできるようにするには、**[Auto-assign IPv4 Public IP]** (IPv4 パブリック IP の自動割り当て) で **[Enable]** (有効化) を選択してください。

         1. (オプション) IAM ロールを指定して スポットインスタンス を起動するには、[IAM instance profile] でロールを選択してください。****

         1. (オプション) 起動スクリプトを実行するには、スクリプトを **[User data]** (ユーザーデータ) にコピーします。

         1. (オプション) タグを追加するには、**[Create tag]** (タグの作成) を選択し、タグのキーと値を入力してから **[Create]** (作成) を選択してください。各タグについて、これを繰り返します。

            タグごとに、インスタンスとスポットフリートリクエストに同じタグを付けるには、**[Instances]** と **[Fleet]** (フリート) の両方が選択されていることを確認します。フリートによって起動されたインスタンスのみにタグ付けするには、**[Fleet]** (フリート) をクリアします。スポットフリートリクエストのみにタグ付けするには、**[Istances]** をクリアします。

   1. [起動テンプレート] 起動テンプレートで作成した設定を使用するには、**[起動テンプレートの使用]** を選択し、**[起動テンプレート]** で起動テンプレートを選択してください。
**注記**  
スポットフリートでオンデマンドキャパシティが必要な場合は、起動テンプレートを指定する必要があります。

1. [Additional request details] で、以下を実行します｡****

   1. 追加リクエストの詳細を確認します。変更するには、[Apply defaults] をオフにします。****

   1. (オプション) [IAM fleet role] で、デフォルトのロールを使用するか、または別のロールを選択できます。****ロールの変更後にデフォルトのロールを使用するには、[Use default role] を選択してください。****

   1. (オプション) 特定の期間中のみ有効なリクエストを作成するには、[Request valid from] および [Request valid until] を編集します。********

   1. (オプション) デフォルトでは、スポットフリートリクエストの有効期限が切れると Amazon EC2 がスポットインスタンスを終了します。リクエストの有効期限が切れた後も実行し続ける場合、[Terminate the instances when the request expires] をオフにします。****

   1. (オプション) ロードバランサーを使用する スポットインスタンス を登録するには、[Receive traffic from one or more load balancers] を選択して、1 つ以上の クラシックロードバランサー またはターゲットグループを選択してください。****

1. **[Target capacity]** (ターゲット容量) で、以下の操作を実行します。

   1. **[Total target capacity]** (総ターゲット容量) で、ターゲット容量にリクエストする単位数を指定します。ユニットのタイプには、**[Instances]** (ユニット)、**[vCPU]**、または **[Memory (MiB)]** (メモリ (MiB)) を選択できます。ターゲットキャパシティを 0 に指定して後でキャパシティを追加できるようにするには、**[ターゲット容量を維持する]** を選択する必要があります。

   1. (オプション) **[Include On-Demand base capacity]** (オンデマンドベースの容量を含める) で、リクエストするオンデマンド単位数を指定します。数値は **[Total target capacity]** (ターゲットキャパシティの合計) 未満にする必要があります。Amazon EC2 は差分を計算し、この差をリクエストするスポット単位に割り当てます。
**重要**  
 オプションのオンデマンド容量を指定する場合、最初に起動テンプレートを選択する必要があります。

   1. (オプション) デフォルトでは、Amazon EC2 は中断されるとスポットインスタンスを削除します。ターゲット容量を維持するには、[ターゲット容量を維持する] を選択してください。****これで、中断時に Amazon EC2 がスポットインスタンスを終了、停止、または休止するように指定できます。これを行うには、[Interruption behavior] から対応するオプションを選択してください。****
**注記**  
起動パラメータで指定された AMI が登録解除または無効になっている場合、AMI から新しいインスタンスを起動することはできません。この場合、ターゲットキャパシティを維持するようにフリートが設定されていても、ターゲットキャパシティは維持されません。

   1. (オプション) フリートの既存スポットインスタンスにインスタンスの再調整の通知が発行されたときに、スポットフリートが代替スポットインスタンスを起動できるようにするには、**[Capacity rebalance]** (容量の再調整) を選択し、インスタンス置換戦略を選択してください。**[終了前に起動]** を選択した場合、Amazon EC2 が古いインスタンスを終了させるまでの遅延時間 (秒単位) を指定します。詳細については、「[EC2 フリートとスポットフリートでキャパシティの再調整を使用して、リスクのあるスポットインスタンスを置き換える](ec2-fleet-capacity-rebalance.md)」を参照してください。

   1. (オプション) フリートのすべての スポットインスタンスに対して 1 時間あたりに支払う金額を制御するには、**[Set maximum cost for Spot Instances]** (スポットインスタンスの上限価格を設定する) を選択し、1 時間あたりに支払うことができる上限の合計金額を入力してください。上限の合計金額に達すると、ターゲット容量に満たない場合でも、スポットフリートはスポットインスタンスの起動を停止します。詳細については、「[EC2 フリートまたはスポットフリートの支出制限を設定する](ec2-fleet-control-spending.md)」を参照してください。

1. **[Network]** (ネットワーク) で、以下の操作を実行します。

   1. **[Network]** (ネットワーク) で既存の VPC を選択するか、新しい VPC を作成します。

      [既存の VPC] VPC を選択してください。

      [新しい VPC] [新しい VPC の作成] を選択して Amazon VPC コンソールにアクセスします。****完了したら、この画面に戻ってリストを更新します。

   1. (オプション) **[アベイラビリティーゾーン]** では、自分のアベイラビリティーゾーンに適したスポットインスタンスを Amazon EC2 に選択させるか、自分で 1 つ以上のアベイラビリティーゾーンを指定します。

      アベイラビリティーゾーンに複数のサブネットがある場合、[Subnet] から適切なサブネットを選択してください。****サブネットを追加するには、[Create new subnet] を選択して Amazon VPC にアクセスします。****完了したら、この画面に戻ってリストを更新します。

1. **[Instance type requirements]** (インスタンスタイプの要件) では、インスタンス属性を指定して、Amazon EC2 にこれらの属性を持つ最適なインスタンスタイプを識別させるか、またはインスタンスのリストを指定することができます。詳細については、「[EC2 フリートまたはスポットフリートのインスタンスタイプを選択するための属性を指定する](ec2-fleet-attribute-based-instance-type-selection.md)」を参照してください。

   1. **[Specify instance attributes that match your compute requirements]** (コンピューティング要件に一致するインスタンス属性を指定する) を選択した場合、インスタンス属性を次のように指定します。

      1. **[vCPUs]** に、希望する vCPU の最小数と最大数を入力してください。制限なしを指定するには、**[最小値なし]**、**[最大値なし]**、またはその両方を選択してください。

      1. **[Memory (GiB)]** (メモリ (GiB)) に、希望する最小値と最大値を入力してください。制限なしを指定するには、**[最小値なし]**、**[最大値なし]**、またはその両方を選択してください。

      1. (オプション) **[追加のインスタンス属性]** では、必要に応じて 1 つ以上の属性を指定して、コンピューティング要件を詳細に表現できます。追加の属性はリクエストにさらに制約を追加します。追加の属性は省略できます。省略すると、デフォルト値が使用されます。各属性およびそのデフォルト値の説明については、Amazon EC2 コマンドラインリファレンスの [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html).を参照してください。

      1. (オプション) 指定した属性を持つインスタンスタイプを表示するには**[Preview matching instance types]** (一致するインスタンスタイプをプレビューする) を展開します。インスタンスタイプがリクエストで使用されないようにするには、インスタンスを選択し、**[Exclude selected instance types]** (選択したインスタンスタイプを除外する) を選択してください。

   1. **[Manually select instance types]** (インスタンスタイプを手動で選択する) を選択すると、スポットフリートはインスタンスタイプのデフォルトのリストを提供します。さらにインスタンスタイプを選択するには、**[Add instance types]** (インスタンスタイプの追加) を選択し、リクエストで使用するインスタンスタイプを選択してから **[Select]** (選択) を選択してください。インスタンスタイプを削除するには、インスタンスタイプを選択し、**[Delete]** (削除) を選択してください。

1. **[配分戦略]** では、ニーズを満たすスポット配分戦略とオンデマンド配分戦略を選択してください。詳細については、「[配分戦略を使用して、EC2 フリートまたはスポットフリートがどのようにスポットキャパシティとオンデマンドキャパシティを満たすかを決定します。](ec2-fleet-allocation-strategy.md)」を参照してください。

1. **[Your fleet request at a glance]** (フリートリクエストの概要) で、フリートの設定を確認し、必要な調整を行います。

1. (オプション) AWS CLI で使用される起動設定のコピーをダウンロードするには、**[JSON config]** (JSON 設定) を選択してください。

1. スポットフリートを起動する準備が整ったら、**[起動]** を選択してください。

   スポットフリートリクエストタイプは `fleet` です。リクエストが実行されると、タイプ `instance` のリクエストが追加されます。このとき、状態は `active` になり、ステータスは `fulfilled` になります。

------
#### [ AWS CLI ]

**スポットフリートリクエストを作成するには**  
[request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html) コマンドを使用します。

```
aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json
```

設定ファイルの例については、「[スポットフリートの CLI 設定の例](spot-fleet-examples.md)」を参照してください。

------
#### [ PowerShell ]

**スポットフリートリクエストを作成するには**  
[Request-EC2SpotFleet](https://docs.aws.amazon.com/powershell/latest/reference/items/Request-EC2SpotFleet.html) コマンドレットを使用します。次の例では、キャパシティ最適化フリートでスポットインスタンスを起動します。

```
Request-EC2SpotFleet `
    -SpotFleetRequestConfig_TargetCapacity 50 `
    -SpotFleetRequestConfig_AllocationStrategy "CapacityOptimized" `
    -SpotFleetRequestConfig_IamFleetRole "arn:aws:iam::123456789012:role/my-spot-fleet-role" `
    -SpotFleetRequestConfig_LaunchTemplateConfig @($launchConfig)
```

起動設定を次のように定義し、起動テンプレートを設定し、必要なプロパティを上書きします。設定例については[スポットフリートの CLI 設定の例](spot-fleet-examples.md)を参照してください。

```
$lcSpec = Amazon.EC2.Model.FleetLaunchTemplateSpecification
# To do - Set FleetLaunchTemplateSpecification properties
$lcOverrides = New-Object Amazon.EC2.Model.LaunchTemplateOverrides
# To do - Set LaunchTemplateOverrides properties
$launchConfig = New-Object Amazon.EC2.Model.LaunchTemplateConfig
$launchConfig.LaunchTemplateSpecification $lcSpec
$launchConfig.Overrides @($lcOverrides)
```

------

## 異常なスポットインスタンスを置き換えるスポットフリートを作成する
<a name="spot-fleet-health-checks"></a>

スポットフリートは、2 分ごとにフリートのスポットインスタンスのヘルスステータスをチェックします。インスタンスのヘルスステータスは `healthy` または `unhealthy` です。

スポットフリートは、Amazon EC2 が提供するステータスチェックを使用して、インスタンスのヘルスステータスを判断します。インスタンスステータスとシステムステータスのいずれかのチェック結果において、ステータスが 3 回連続して `impaired` を示した場合、そのインスタンスは `unhealthy` と判断されます。詳細については、「[Amazon EC2 インスタンスのステータスチェック](monitoring-system-instance-status-check.md)」を参照してください。

フリートを設定して、異常のある スポットインスタンス を置き換えることができます。ヘルスチェックによる置き換えを有効化すると、 と報告されたスポットインスタンスが置き換えられます。`unhealthy`異常なスポットインスタンスの置き換え中、最大数分間フリートがターゲット容量を下回る場合があります。

**要件**
+ ヘルスチェックによる置き換えは、1 回限りの スポットフリート (`maintain` のフリート) ではなく、ターゲットキャパシティを維持しているスポットフリート (タイプ `request` のフリート) でのみサポートされます。
+ ヘルスチェックによる置き換えは、スポットインスタンス でのみサポートされます。この機能は オンデマンドインスタンス ではサポートされていません。
+ 作成時のみ、異常なインスタンスを置き換えるようスポットフリートを設定できます。
+ ユーザーは、`ec2:DescribeInstanceStatus` アクションを呼び出す許可を持っている場合のみ、ヘルスチェックの置き換えを使用できます。

------
#### [ Console ]

**異常なスポットインスタンスは置き換えるようにスポットフリートを設定するには**

1. [定義済みパラメータを使用してスポットフリートリクエストを作成する](#create-spot-fleet-advanced) の手順に従ってスポットフリートを作成します。

1. 異常なスポットインスタンスを置き換えるようにフリートを設定するには、**[追加の起動パラメータ]** を展開し、**[ヘルスチェック]** で、**[異常なインスタンスを置き換える]** を選択してください。このオプションを有効にするには、まず **[Maintain target capacity]**(ターゲット容量の維持) を選択する必要があります。

------
#### [ AWS CLI ]

**異常なスポットインスタンスは置き換えるようにスポットフリートを設定するには**  
[request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html) コマンドを `SpotFleetRequestConfig` の `ReplaceUnhealthyInstances` プロパティと共に使用します。

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "lowestPrice",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "TargetCapacity": 10,
        "ReplaceUnhealthyInstances": true
    }
}
```

------
#### [ PowerShell ]

**異常なスポットインスタンスは置き換えるようにスポットフリートリクエストを設定するには**  
[Request-EC2SpotFleet](https://docs.aws.amazon.com/powershell/latest/reference/items/Request-EC2SpotFleet.html) コマンドレットを `-SpotFleetRequestConfig_ReplaceUnhealthyInstance` パラメータと共に使用します。

```
-SpotFleetRequestConfig_ReplaceUnhealthyInstance $true
```

------

# 新しいまたは既存のスポットフリートリクエスト、およびそのフリートが起動するインスタンスとボリュームにタグ付けする
<a name="tag-spot-fleet"></a>

スポットフリートリクエスト、およびそのフリートが起動するインスタンスとボリュームを分類および管理しやすくするために、カスタムメタデータでタグ付けできます。スポットフリートリクエストへのタグの割り当ては、リクエストの作成時または作成後に行うことができます。同様に、インスタンスとボリュームにも、フリートによって起動されるときまたは起動後に、タグを割り当てることができます。

フリートリクエストにタグを付けると、フリートによって起動されるインスタンスとボリュームには自動的にタグ付けされません。フリートによって起動されるインスタンスとボリュームには、明示的にタグを付ける必要があります。タグは、フリートリクエストのみに割り当てるか、フリートによって起動されたインスタンスのみに割り当てるか、フリートによって起動されたインスタンスにアタッチされたボリュームのみに割り当てるか、またはそのすべてに割り当てるかを選択できます。

**注記**  
オンデマンドインスタンスにアタッチされているボリュームにのみタグ付けできます。スポットインスタンス にアタッチされているボリュームにタグを付けることはできません。

Amazon EC2 コンソールまたはコマンドラインツールを使用してタグを割り当てることができます。

タグの仕組みの詳細については[Amazon EC2 リソースのタグ付け](Using_Tags.md)を参照してください。

**Topics**
+ [前提条件](#tag-spot-fleet-prereqs)
+ [新しいスポットフリート、およびそれが起動するインスタンスおよびボリュームにタグ付けします。](#tag-new-spot-fleet-and-resources)
+ [既存のスポットフリートにタグを付けます。](#tag-existing-spot-fleet)
+ [スポットフリートリクエストタグを表示する](#view-spot-fleet-tags)

## 前提条件
<a name="tag-spot-fleet-prereqs"></a>

リソースにタグ付けする許可をユーザーに付与します。詳細については、「[例: リソースのタグ付け](ExamplePolicies_EC2.md#iam-example-taggingresources)」を参照してください。

**リソースにタグ付けする許可をユーザーに付与するには**  
以下を含む IAM ポリシーを作成します。
+ `ec2:CreateTags` アクション。これにより、タグを作成する許可がユーザーに付与されます。
+ `ec2:RequestSpotFleet` アクション。これにより、スポットフリートリクエストを作成する許可がユーザーに付与されます。
+ `Resource` で、`"*"` を指定する必要があります。これにより、ユーザーはすべてのリソースタイプにタグ付けできます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "TagSpotFleetRequest",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags",
                "ec2:RequestSpotFleet"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**重要**  
現在、`spot-fleet-request` リソースに対するリソースレベルのアクセス許可はサポートされていません。リソースとして `spot-fleet-request` を指定した場合、フリートにタグ付けしようとすると、不正な例外が発生します。以下の例は、ポリシーを設定 *しない* 方法を示しています。  

```
{
    "Effect": "Allow",
    "Action": [
        "ec2:CreateTags",
        "ec2:RequestSpotFleet"
    ],
    "Resource": "arn:aws:ec2:us-east-1:111122223333:spot-fleet-request/*"
}
```

アクセス権限を付与するにはユーザー、グループ、またはロールにアクセス許可を追加します。
+ AWS IAM アイデンティティセンター のユーザーとグループ:

  アクセス許可セットを作成します。「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)」の手順に従ってください。
+ IAM 内で、ID プロバイダーによって管理されているユーザー:

  ID フェデレーションのロールを作成します。詳細については *IAM ユーザーガイド* の [サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) を参照してください。
+ IAM ユーザー:
  + ユーザーが担当できるロールを作成します。手順については *IAM ユーザーガイド* の [IAM ユーザーのロールの作成](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) を参照してください。
  + (お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加します。*IAM ユーザーガイド* の [ユーザー (コンソール) へのアクセス許可の追加](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) の指示に従います。

## 新しいスポットフリート、およびそれが起動するインスタンスおよびボリュームにタグ付けします。
<a name="tag-new-spot-fleet-and-resources"></a>

**新しいスポットフリートリクエスト、およびそのフリートがコンソールを使用して起動するインスタンスとボリュームにタグ付けするには**

1. [定義済みパラメータを使用してスポットフリートリクエストを作成する](create-spot-fleet.md#create-spot-fleet-advanced)の手順に従います。

1. タグを追加する方法は、フリートを手動で設定したか、起動テンプレートを使用したかによって異なります。
   + フリートを手動で設定した場合は、次の操作を行います。

     タグを追加するには、**[追加の起動パラメータ]** を展開し、**[タグの作成]** を選択して、タグのキーと値を入力してください。各タグについて、これを繰り返します。

     タグごとに、スポットフリートリクエストとインスタンスに同じタグを付けることができます。両方にタグを付けるには、**[インスタンス]** と **[フリート]** の両方が選択されていることを確認します。スポットフリートリクエストのみにタグ付けするには、**[Istances]** をクリアします。フリートによって起動されたインスタンスのみにタグ付けするには、**[フリートタグ]**をクリアします。
**注記**  
フリートを手動で設定する場合、ボリュームにタグを付けるオプションはありません。ボリュームタグは、オンデマンドインスタンス にアタッチされたボリュームでのみサポートされます。フリートを手動で設定する場合、オンデマンドインスタンスを指定することはできません。
   + 起動テンプレートを使用した場合は、次の操作を行います。

     フリートリクエストにタグを追加するには、**[タグ]** で **[タグの作成]** を選択し、タグのキーと値を入力してください。各タグについて、これを繰り返します。

     フリート内のリソースにタグを付けるには、[起動テンプレート](create-launch-template.md)でタグを指定する必要があります。

**新しいスポットフリートリクエストと、 を使用して起動するインスタンスおよびボリュームにタグ付けするにはAWS CLI**  
作成時にスポットフリートリクエストにタグ付けし、フリートがインスタンスを起動するときにインスタンスおよびボリュームにタグ付けするには、スポットフリートリクエスト設定を次のようにします。

**スポットフリートリクエストのタグ**
+ スポットフリートリクエストのタグを `SpotFleetRequestConfig` で指定します。
+ `ResourceType` の場合、`spot-fleet-request` を指定します。別の値を指定すると、フリートリクエストは失敗します。
+ `Tags` で、キーと値のペアを指定します。キーと値のペアは複数指定できます。

**インスタンスタグ:**
+ `LaunchSpecifications` で、インスタンスのタグを指定します。
+ `ResourceType` の場合、`instance` を指定します。別の値を指定すると、フリートリクエストは失敗します。
+ `Tags` で、キーと値のペアを指定します。キーと値のペアは複数指定できます。

  または、スポットフリートリクエストで参照される起動テンプレートで、インスタンスのタグを指定できます。[Amazon EC2 起動テンプレートを作成する](create-launch-template.md)

**ボリュームタグ:**
+ スポットフリートリクエストで参照される起動テンプレートのボリュームのタグを指定します。[Amazon EC2 起動テンプレートを作成する](create-launch-template.md)`LaunchSpecifications` でのボリュームのタグ付けはサポートされていません。

以下の例では、スポットフリートリクエストに 2 つのタグ (Key=Environment、Value=Production、および Key=Cost-Center、Value=123) が付けられています。フリートが起動するインスタンスには、1 つのタグ (スポットフリートリクエストのタグの 1 つと同じ) Key=Cost-Center and Value=123 が付けられます。

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchSpecifications": [
            {
                "ImageId": "ami-0123456789EXAMPLE",
                "InstanceType": "c4.large",
                "TagSpecifications": [
                    {
                        "ResourceType": "instance",
                        "Tags": [
                            {
                                "Key": "Cost-Center",
                                "Value": "123"
                            }
                        ]
                    }
                ]
            }
        ],
        "SpotPrice": "5",
        "TargetCapacity": 2,
        "TerminateInstancesWithExpiration": true,
        "Type": "maintain",
        "ReplaceUnhealthyInstances": true,
        "InstanceInterruptionBehavior": "terminate",
        "InstancePoolsToUseCount": 1,
        "TagSpecifications": [
            {
                "ResourceType": "spot-fleet-request",
                "Tags": [
                    {
                        "Key": "Environment",
                        "Value":"Production"
                    },
                    {
                        "Key": "Cost-Center",
                        "Value":"123"
                    }
                ]
            }
        ]
    }
}
```

**AWS CLI を使用して、スポットフリートが起動したインスタンスにタグ付けするには**  
フリートがインスタンスを起動するときにインスタンスにタグ付けするには、スポットフリートリクエストで参照される起動テンプレートでタグを指定するか、以下のようにスポットフリートリクエスト設定でタグを指定できます。[Amazon EC2 起動テンプレートを作成する](create-launch-template.md)
+ `LaunchSpecifications` で、インスタンスのタグを指定します。
+ `ResourceType` の場合、`instance` を指定します。別の値を指定すると、フリートリクエストは失敗します。
+ `Tags` で、キーと値のペアを指定します。キーと値のペアは複数指定できます。

以下の例では、フリートによって起動されるインスタンスに 1 つのタグ (Key=Cost-Center and Value=123) が付けられています。

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchSpecifications": [
            {
                "ImageId": "ami-0123456789EXAMPLE",
                "InstanceType": "c4.large",
                "TagSpecifications": [
                    {
                        "ResourceType": "instance",
                        "Tags": [
                            {
                                "Key": "Cost-Center",
                                "Value": "123"
                            }
                        ]
                    }
                ]
            }
        ],
        "SpotPrice": "5",
        "TargetCapacity": 2,
        "TerminateInstancesWithExpiration": true,
        "Type": "maintain",
        "ReplaceUnhealthyInstances": true,
        "InstanceInterruptionBehavior": "terminate",
        "InstancePoolsToUseCount": 1
    }
}
```

**AWS CLI を使用して、スポットフリートが起動するオンデマンドインスタンスにアタッチされたボリュームにタグ付けするには**  
フリートが作成したときにボリュームにタグ付けするには、スポットフリートリクエストで参照される起動テンプレートでタグを指定する必要があります。[Amazon EC2 起動テンプレートを作成する](create-launch-template.md)

**注記**  
ボリュームタグは、オンデマンドインスタンス にアタッチされたボリュームでのみサポートされます。スポットインスタンス にアタッチされているボリュームにタグを付けることはできません。  
`LaunchSpecifications` でのボリュームのタグ付けはサポートされていません。

## 既存のスポットフリートにタグを付けます。
<a name="tag-existing-spot-fleet"></a>

**コンソールを使用して、既存のスポットフリートリクエストにタグ付けするには**

スポットフリートリクエストを作成した後、コンソールを使用してフリートリクエストにタグを追加できます。

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

1. ナビゲーションペインで、[**Spot Requests**] を選択してください。

1. スポットフリートリクエストを選択してください。

1. [Tags (タグ)] タブを選択してから、[タグの作成] を選択してください。********

**AWS CLI を使用して、既存のスポットフリートリクエストにタグ付けするには**  
create-tags コマンドを使用して、既存のリソースにタグ付けできます。[https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html)以下の例では、既存のスポットフリートリクエストにタグ Key=purpose and Value=test が付けられています。

```
aws ec2 create-tags \
    --resources sfr-11112222-3333-4444-5555-66666EXAMPLE \
    --tags Key=purpose,Value=test
```

## スポットフリートリクエストタグを表示する
<a name="view-spot-fleet-tags"></a>

**コンソールを使用して、スポットフリートリクエストタグを表示するには**

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

1. ナビゲーションペインで、[**Spot Requests**] を選択してください。

1. スポットフリートリクエストを選択し、[タグ] タブを選択してください。****

**スポットフリートリクエストタグを記述するには**  
describe-tags コマンドを使用して、指定したリソースのタグを表示します。[https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-tags.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-tags.html)以下の例では、指定したスポットフリートリクエストのタグを記述します。

```
aws ec2 describe-tags \
    --filters "Name=resource-id,Values=sfr-11112222-3333-4444-5555-66666EXAMPLE"
```

```
{
    "Tags": [
        {
            "Key": "Environment",
            "ResourceId": "sfr-11112222-3333-4444-5555-66666EXAMPLE",
            "ResourceType": "spot-fleet-request",
            "Value": "Production"
        },
        {
            "Key": "Another key",
            "ResourceId": "sfr-11112222-3333-4444-5555-66666EXAMPLE",
            "ResourceType": "spot-fleet-request",
            "Value": "Another value"
        }
    ]
}
```

スポットフリートリクエストを記述することで、スポットフリートリクエストのタグを表示することもできます。

describe-spot-fleet-requests コマンドを使用して、指定したスポットフリートリクエストの設定を表示します。これには、フリートリクエストに指定されたタグが含まれます。[https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-fleet-requests.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-fleet-requests.html)

```
aws ec2 describe-spot-fleet-requests \
    --spot-fleet-request-ids sfr-11112222-3333-4444-5555-66666EXAMPLE
```

```
{
    "SpotFleetRequestConfigs": [
        {
            "ActivityStatus": "fulfilled",
            "CreateTime": "2020-02-13T02:49:19.709Z",
            "SpotFleetRequestConfig": {
                "AllocationStrategy": "capacityOptimized",
                "OnDemandAllocationStrategy": "lowestPrice",
                "ExcessCapacityTerminationPolicy": "Default",
                "FulfilledCapacity": 2.0,
                "OnDemandFulfilledCapacity": 0.0,
                "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role",
                "LaunchSpecifications": [
                    {
                        "ImageId": "ami-0123456789EXAMPLE",
                        "InstanceType": "c4.large"
                    }
                ],
                "TargetCapacity": 2,
                "OnDemandTargetCapacity": 0,
                "Type": "maintain",
                "ReplaceUnhealthyInstances": false,
                "InstanceInterruptionBehavior": "terminate"
            },
            "SpotFleetRequestId": "sfr-11112222-3333-4444-5555-66666EXAMPLE",
            "SpotFleetRequestState": "active",
            "Tags": [
                {
                    "Key": "Environment",
                    "Value": "Production"
                },
                {
                    "Key": "Another key",
                    "Value": "Another value"
                }
            ]
        }
    ]
}
```

# スポットフリートリクエスト、そのインスタンス、イベント履歴を記述する
<a name="manage-spot-fleet"></a>

スポットフリートの設定、スポットフリートのインスタンス、スポットフリートのイベント履歴を記述できます。

------
#### [ Console ]

**スポットフリートを記述するには**

1. Amazon EC2 コンソール ([https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)) を開きます。

1. ナビゲーションペインで、[**Spot Requests**] を選択してください。

1. スポットフリートリクエストを選択してください。ID は、**sfr-** で始まります。設定の詳細を表示するには、[Description] を選択してください。****

1. スポットフリートのスポットインスタンスを一覧表示するには、インスタンスを選択してください。****

1. スポットフリートの履歴を表示するには、[履歴] を選択してください。****

------
#### [ AWS CLI ]

**スポットフリートリクエストを記述するには**  
[describe-spot-fleet-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-fleet-requests.html) コマンドを使用します。

```
aws ec2 describe-spot-fleet-requests \
    --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
```

**指定したスポットフリートリクエストの実行中のインスタンスを記述するには**  
[describe-spot-fleet-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-fleet-instances.html) コマンドを使用します。

```
aws ec2 describe-spot-fleet-instances \
    --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
```

**指定したスポットフリートリクエストのイベント履歴を記述するには**  
[describe-spot-fleet-request-history](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-fleet-request-history.html) コマンドを使用します。

```
aws ec2 describe-spot-fleet-request-history \
    --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
    --start-time 2024-05-18T00:00:00Z
```

------
#### [ PowerShell ]

**スポットフリートリクエストを記述するには**  
[Get-EC2SpotFleetRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotFleetRequest.html) コマンドレットを使用します。

```
Get-EC2SpotFleetRequest
```

**指定したスポットフリートリクエストの実行中のインスタンスを記述するには**  
[Get-EC2SpotFleetInstance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotFleetInstance.html) コマンドレットを使用します。

```
Get-EC2SpotFleetInstance `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
```

**指定したスポットフリートリクエストのイベント履歴を記述するには**  
[Get-EC2SpotFleetRequestHistory](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotFleetRequestHistory.html) コマンドレットを使用します。

```
Get-EC2SpotFleetRequestHistory `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -UtcStartTime 2024-05-18T00:00:00Z
```

------

# スポットフリートリクエストを変更します。
<a name="modify-spot-fleet"></a>

以下のタスクを完了するように、アクティブスポットフリートリクエストを変更できます。
+ 合計ターゲットキャパシティとオンデマンド部分を増やす
+ 合計ターゲットキャパシティとオンデマンド部分を減らす

合計ターゲットキャパシティを増やすと、スポットフリートはスポットフリートリクエストの[配分戦略](ec2-fleet-allocation-strategy.md)に従って、追加のスポットインスタンスを起動します。オンデマンド部分を増やすと、スポットフリートは追加のオンデマンドインスタンスを起動します。

合計ターゲットキャパシティを減らすと、スポットフリートは新しいターゲットキャパシティを超えるすべてのオープンリクエストをキャンセルします。フリートのサイズが新しいターゲット容量に達するまで、スポットフリートがスポットインスタンスを終了させるようにリクエストできます。配分戦略が `diversified` の場合、スポットフリートはプール全体でインスタンスを終了させます。または、スポットフリートが現在のサイズを維持するようにリクエストすることもできますが、中断されたり手動で終了されたスポットインスタンスを置き換えることはできません。

**考慮事項**
+ ワンタイムスポットフリートリクエストは変更できません。スポットフリートリクエストの作成時に [ターゲット容量の維持] を選択した場合にのみ、スポットフリートリクエストを変更することができます。****
+ ターゲット容量が減ったためにスポットフリートがインスタンスを終了する場合、インスタンスはスポットインスタンスの中断通知を受け取ります。

------
#### [ Console ]

**スポットフリートリクエストを変更するには**

1. Amazon EC2 コンソール ([https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)) を開きます。

1. ナビゲーションペインで、[**Spot Requests**] を選択してください。

1. スポットフリートリクエストを選択してください。

1. [Actions]、[Modify target capacity] の順に選択してください。********

1. [Modify target capacity] で、以下の操作を実行します。****

   1. 新しいターゲット容量とオンデマンド部分を入力してください。

   1. (オプション) ターゲット容量を小さくしてもスポット群の現在のサイズを保持する場合は、[Terminate instances] をオフにします。****

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

------
#### [ AWS CLI ]

**スポットフリートリクエストを変更するには**  
modify-spot-fleet-requestコマンドを使用して、指定するスポットフリートリクエストのターゲット容量を更新します。[https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-spot-fleet-request.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-spot-fleet-request.html)

```
aws ec2 modify-spot-fleet-request \
    --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
    --target-capacity 20
```

前のコマンドを以下のように変更して、結果的にいずれのスポットインスタンスも終了せずに、指定したスポットフリートのターゲット容量を減らすことができます。

```
aws ec2 modify-spot-fleet-request \
    --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
    --target-capacity 10 \
    --excess-capacity-termination-policy NoTermination
```

------
#### [ PowerShell ]

**スポットフリートリクエストを変更するには**  
[Edit-EC2SpotFleetRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2SpotFleetRequest.html) コマンドレットを使用して、指定したスポットフリートリクエストのターゲットキャパシティを更新します。

```
Edit-EC2SpotFleetRequest `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TargetCapacity 20
```

前のコマンドを以下のように変更して、結果的にいずれのスポットインスタンスも終了せずに、指定したスポットフリートのターゲット容量を減らすことができます。

```
Edit-EC2SpotFleetRequest `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TargetCapacity 20 `
    -ExcessCapacityTerminationPolicy "NoTermination"
```

------

# スポットフリートリクエストをキャンセル (削除) します。
<a name="cancel-spot-fleet"></a>

スポットフリートが不要になった場合は、スポットフリートリクエストをキャンセルできます。キャンセルすると、リクエストが削除されます。フリートリクエストをキャンセルすると、フリートに関連付けられているすべてのスポットリクエストがキャンセルされるため、新しいスポットインスタンスは起動されません。

スポットフリートをキャンセルするときは、そのインスタンスをすべて終了させるかどうかも指定する必要があります。これには、オンデマンドインスタンスとスポットインスタンスの両方が含まれます。

**警告**  
**インスタンスの終了は恒久的で、元に戻すことができません。**  
インスタンスを終了すると、そのインスタンスには接続できなくなり、復元することもできません。アタッチされている Amazon EBS ボリュームで、終了時に削除されるように設定されているものも、すべて恒久的に削除され、復元できません。インスタンスストアボリュームに保存されているデータは、すべて恒久的に失われます。詳細については、「[インスタンスの終了方法](how-ec2-instance-termination-works.md)」を参照してください。  
インスタンスを終了する前に、終了後も保持する必要があるすべてのデータを永続的ストレージにバックアップしたことを確認してください。

フリートリクエストをキャンセルするときにインスタンスを終了する必要があることを指定した場合、フリートリクエストは `cancelled_terminating` 状態へ移行します。それ以外の場合は `cancelled_running` 状態になり、インスタンスは中断または手動終了されるまで、引き続き実行されます。

**制限事項**
+ 1 回のリクエストで最大 100 個のフリートをキャンセルできます。指定した数を超えると、フリートはキャンセルされません。

------
#### [ Console ]

**スポットフリートリクエストをキャンセル (削除) するには**

1. Amazon EC2 コンソール ([https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)) を開きます。

1. ナビゲーションペインで、[**Spot Requests**] を選択してください。

1. スポットフリートリクエストを選択してください。

1. [**アクション**]、[**リクエストのキャンセル**] の順にクリックしてください。

1. **[スポットリクエストのキャンセル]** ダイアログボックスで、次の操作を行います。

   1. スポットフリートリクエストのキャンセルと同時に関連するインスタンスを終了するには、**[インスタンスの終了]** チェックボックスをオンのままにします。関連するインスタンスを終了せずにスポットフリートリクエストをキャンセルするには、**[インスタンスの終了]** チェックボックスをオフにします。

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

------
#### [ AWS CLI ]

**スポットフリートリクエストをキャンセル (削除) し、そのインスタンスを終了するには**  
[cancel-spot-fleet-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/cancel-spot-fleet-requests.html) コマンドを `--terminate-instances` オプションと共に使用します。

```
aws ec2 cancel-spot-fleet-requests \
    --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
    --terminate-instances
```

以下は出力の例です。

```
{
    "SuccessfulFleetRequests": [
        {
            "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
            "CurrentSpotFleetRequestState": "cancelled_terminating",
            "PreviousSpotFleetRequestState": "active"
        }
    ],
    "UnsuccessfulFleetRequests": []
}
```

**そのインスタンスを終了せずにスポットフリートリクエストをキャンセル (削除) するには**  
代わりに `--no-terminate-instances` オプションを使用して、前の例を変更します。

```
aws ec2 cancel-spot-fleet-requests \
    --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
    --no-terminate-instances
```

以下は出力の例です。

```
{
    "SuccessfulFleetRequests": [
        {
            "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
            "CurrentSpotFleetRequestState": "cancelled_running",
            "PreviousSpotFleetRequestState": "active"
        }
    ],
    "UnsuccessfulFleetRequests": []
}
```

------
#### [ PowerShell ]

**スポットフリートリクエストをキャンセル (削除) し、そのインスタンスを終了するには**  
[Stop-EC2SpotFleetRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2SpotFleetRequest.html) コマンドレットを `-TerminateInstance` パラメータと共に使用します。

```
Stop-EC2SpotFleetRequest `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TerminateInstance $true
```

**そのインスタンスを終了せずにスポットフリートリクエストをキャンセル (削除) するには**  
`-TerminateInstance` パラメータの値を変更して、前の例を変更します。

```
Stop-EC2SpotFleetRequest `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TerminateInstance $false
```

------

# スポットフリートの自動スケーリングについて
<a name="spot-fleet-automatic-scaling"></a>

*自動スケーリング*により、需要に応じてスポットフリートのターゲットキャパシティを増減できます。自動スケーリングを使用すると、スポットフリートは、1 つ以上のスケーリングポリシーに応答して、指定された範囲内でインスタンスを起動 (スケールアウト) するか、インスタンスを終了 (スケールイン) できます。

スポットフリートの自動スケーリングは、Amazon EC2、Amazon CloudWatch、および Application Auto Scaling API の組み合わせによって可能になります。スポットフリートは Amazon EC2 で作成され、アラームは CloudWatch で作成され、スケーリングポリシーは Application Auto Scaling で作成されます。

**自動スケーリングのタイプ**

スポットフリートは、以下のタイプの自動スケーリングをサポートします。
+ [ターゲット追跡スケーリング](spot-fleet-target-tracking.md) – 特定のメトリクスの値をターゲットにすることで、フリートの現在のキャパシティを増減させます。これはサーモスタットで家の温度を管理する方法と似ています (希望の温度を選択すれば、後はサーモスタットがすべてを実行します)。
+ ステップスケーリング - アラーム違反のサイズに応じて変動する一連のスケーリング調整値 (ステップ調整値) に基づいて、フリートの現在の容量を増減させます。[ステップスケーリング: ステップスケーリングポリシーを使用して、スポットフリートをスケールする](spot-fleet-step-scaling.md)
+ スケジュールに基づくスケーリング - 日付と時刻に基づいて、フリートの現在の容量を増減させます。[スケジュールされたスケーリング: スケジュールに従ってスポットフリートをスケールする](spot-fleet-scheduled-scaling.md)

## 考慮事項
<a name="considerations-for-spot-fleet-automatic-scaling"></a>

スポットフリートに自動スケーリングを使用する場合は、次の点を考慮してください。
+ **インスタンスの重み付け** – [インスタンスの重み付け](ec2-fleet-instance-weighting.md)を使用している場合は、スポットフリートが必要に応じてターゲットキャパシティを超える可能性があることに注意してください。取得済みの容量が浮動小数点数となってもターゲット容量は整数でなければならないため、スポットフリートはその数を次の整数に切り上げます。アラームがトリガーされたときにスケーリングポリシーの結果を確認する際は、このような動作を考慮に入れる必要があります。例えば、ターゲット容量が 30、取得済み容量が 30.1 で、スケーリングポリシーが 1 を減算するとします。アラームがトリガーされると、自動スケーリングプロセスは 30.1 から 1 を減算して 29.1 を得るため、この数は 30 に切り上げられることになり、スケーリングアクションは実行されません。別の例として、選択したインスタンスの分量が 2、4、8 であり、ターゲット容量が 10 であるとします。分量 2 のインスタンスが利用できなかったために、スポットフリートは分量 4 と 8 のインスタンスをプロビジョニングして取得済みの容量が 12 になったとします。スケーリングポリシーがターゲット容量を 20% 減らしてアラームがトリガーされた場合、自動スケーリングプロセスは 12 から 12×0.2 を減算して 9.6 を得るため、この数は 10 に切り上げられることになり、スケーリングアクションは実行されません。
+ **クールダウン期間** - スポットフリート用に作成したスケーリングポリシーは、クールダウン期間をサポートしています。クールダウン期間は、以前のトリガー関連のスケーリングアクティビティが以後のスケーリングイベントに影響を及ぼすことができる期限であり、スケーリングアクティビティが終了した時点からの秒数として指定します。スケールアウトポリシーにクールダウン期間を設定すると、その期間中にクールダウンを開始したスケールアウトイベントによって追加された容量は、次のスケールアウトに予定される容量の一部として繰り入れられます。これにより、スケールアウトが継続的に (ただし過剰になることなく) 行われます。スケールインポリシーにクールダウン期間を設定すると、その期間が過ぎるまでは以後のスケールインリクエストがブロックされます。これにより、スケールインが抑制されてアプリケーションの可用性が確保されます。ただし、スケールイン後のクールダウン期間中に別のアラームによってスケールアウトポリシーがトリガーされると、自動スケーリングによってスケーラブルなターゲットが即座にスケールアウトされます。
+ **詳細モニタリングの使用** – 使用率の変化により迅速に対応できるように、1 分間隔でインスタンスメトリクスに基づいてスケールすることをお勧めします。5 分間隔でメトリクスをスケールすると、応答時間が低速になり、古いメトリクスデータに基づいてスケールすることになる可能性があります。1 分ごとにインスタンスのメトリクスデータを CloudWatch に送信するには、インスタンスで詳細モニタリングを有効にできます。詳細については、「[EC2 インスタンスの詳細モニタリングを管理する](manage-detailed-monitoring.md)」および「[定義済みパラメータを使用してスポットフリートリクエストを作成する](create-spot-fleet.md#create-spot-fleet-advanced)」を参照してください。
+ **AWS CLI** – AWS CLI を使用してスポットフリートのスケーリングを設定する場合は、[application-autoscaling](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling) CLI を使用します。

# スポットフリートの自動スケーリングに必要な IAM のアクセス許可
<a name="spot-fleet-auto-scaling-IAM"></a>

スポットフリートの自動スケーリングは、Amazon EC2、Amazon CloudWatch、および Application Auto Scaling API の組み合わせによって可能になります。スポットフリートは Amazon EC2 で作成され、アラームは CloudWatch で作成され、スケーリングポリシーは Application Auto Scaling で作成されます。Amazon EC2 と[スポットフリートの使用に必要な IAM アクセス許可](spot-fleet-prerequisites.md#spot-fleet-iam-users)に加えて、フリートスケーリング設定にアクセスするユーザーは、自動スケーリングをサポートするサービスに対する適切なアクセス許可が必要です。

スポットフリートの自動スケーリングを使用するには、ユーザーは次のポリシー例に示されているアクションを使用するアクセス許可を持っている必要があります。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "application-autoscaling:*",
                "ec2:DescribeSpotFleetRequests",
                "ec2:ModifySpotFleetRequest",
                "cloudwatch:DeleteAlarms",
                "cloudwatch:DescribeAlarmHistory",
                "cloudwatch:DescribeAlarms",
                "cloudwatch:DescribeAlarmsForMetric",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:ListMetrics",
                "cloudwatch:PutMetricAlarm",
                "cloudwatch:DisableAlarmActions",
                "cloudwatch:EnableAlarmActions",
                "iam:CreateServiceLinkedRole",
                "sns:CreateTopic",
                "sns:Subscribe",
                "sns:Get*",
                "sns:List*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

独自の IAM ポリシーを作成し、アプリケーションの Auto Scaling API を呼び出すためのよりきめ細かなアクセス許可を付与することもできます。詳細については、「*Application Auto Scaling ユーザーガイド*」の「[Identity and Access Management for Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/auth-and-access-control.html)」を参照してください。

Application Auto Scaling サービスには、スポットフリートおよび CloudWatch アラームを記述するアクセス許可、およびユーザーの代わりにスポットフリートターゲット容量を変更するアクセス許可も必要です。スポットフリートの自動スケーリングを有効にすると、サービスにリンクされた `AWSServiceRoleForApplicationAutoScaling_EC2SpotFleetRequest` というロールが作成されます。このサービスにリンクされたロールは、アプリケーションの Auto Scaling に対して、ポリシーのアラームの記述、フリートの現容量のモニタリング、およびフリートの容量の変更を行うためのアクセス許可を付与します。Application Auto Scaling の元の管理された型のスポットフリートロールは `aws-ec2-spot-fleet-autoscale-role` ですが、これは不要になりました。サービスにリンクされたロールは、Application Auto Scaling のデフォルトロールです。詳細については、「Application Auto Scaling ユーザーガイド」の「[Application Auto Scaling 用のサービスリンクロール](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html)」を参照してください。

# ターゲット追跡スケーリング: 特定のメトリクスの値を対象にしてスポットフリートをスケールする
<a name="spot-fleet-target-tracking"></a>

ターゲット追跡スケーリングで、メトリクスを選択し、ターゲット値を設定することで、ターゲット追跡スケーリングポリシーを作成します。次に、スポットフリートは、スケーリングポリシーをトリガーする CloudWatch アラームを作成および管理し、選択したメトリクスとターゲット値に基づいてスケーリング調整を計算します。スケーリングポリシーは、必要に応じてインスタンスを追加または削除することでキャパシティを調整し、メトリクスを指定されたターゲット値またはそれに近い値に維持します。ターゲット追跡ポリシーは、メトリクスをターゲット値近くに維持することに加えて、負荷パターンの変動によるメトリクスの変動に合わせて調整し、急激なキャパシティの変動を最小化します。

各ポリシーが異なるメトリクスを使用していれば、スポットフリートに複数のターゲットの追跡スケーリングポリシーを作成できます。フリートは、最大のフリートキャパシティを指定するポリシーに基づいてスケールされます｡ これにより、複数のシナリオに対応して、アプリケーションワークロードに十分なキャパシティを確保できます。

アプリケーションの可用性を高めるために、フリートのスケールアウトはメトリクスに比例して可能な限り高速に行われますが、スケールインはより緩やかです。

ターゲットキャパシティが減ったためにスポットフリートがスポットインスタンスを終了する場合、インスタンスはスポットインスタンスの中断通知を受け取ります。

**注記**  
ターゲットの追跡スケーリングポリシーのためにスポットフリートが管理する CloudWatch アラームを編集または削除しないでください。ターゲット追跡スケーリングポリシーを削除すると、スポットフリートが自動的にアラームを削除します。

**前提条件**
+ スポットフリートリクエストには、タイプが `maintain` のリクエストが必要です。自動スケーリングはタイプ `request` のリクエストではサポートされていません。
+ [スポットフリートの自動スケーリングに必要な IAM のアクセス許可](spot-fleet-auto-scaling-IAM.md) を設定します。
+ 「[考慮事項](spot-fleet-automatic-scaling.md#considerations-for-spot-fleet-automatic-scaling)」を確認します。

**ターゲット追跡ポリシーを設定するには**

1. Amazon EC2 コンソール ([https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)) を開きます。

1. ナビゲーションペインで、[**Spot Requests**] を選択してください。

1. スポットフリートリクエストを選択してください。

1. 画面の下部にある **[自動スケーリング]** タブを選択してください。スポットフリートのリンクを選択した場合、タブはありません。代わりに、**[自動スケーリング]** セクションまでスクロールします。

1. 自動スケーリングが設定されていない場合は、[**Configure**] を選択してください。

1. スポットフリートの最小容量および最大容量を設定するには、[**Scale capacity between**] を使用します。自動スケーリングにより、最小容量以下または最大容量以上にスポットフリートがスケールされることはありません。

1. [**Policy Name**] にこのポリシーの名前を入力してください。

1. [Target metric] を選択します｡****

1. メトリクスの [Target value] を入力してください。****

1. **[クールダウン期間]** には、新しい値 (秒単位) を指定するか、デフォルトのままにします。

1. (オプション) 現在の構成に基づいてスケールインポリシーの作成を省略するには、**[スケールインの無効化]** を選択してください。別の構成を使用してスケールインポリシーを作成できます。

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

**AWS CLI を使用して、ターゲットの追跡スケーリングポリシーを設定します。**

1. [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) コマンドを使用して、スケーラブルなターゲットとしてスポットフリートリクエストを登録します。

1. [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) コマンドを使用して、スケーリングポリシーを作成します。

# ステップスケーリング: ステップスケーリングポリシーを使用して、スポットフリートをスケールする
<a name="spot-fleet-step-scaling"></a>

ステップスケーリングポリシーでは、CloudWatch アラームを指定してスケーリングプロセスをトリガーします。例えば、CPU 利用率が一定のレベルに達したときにスケールアウトする場合、Amazon EC2 によって提供される `CPUUtilization` メトリクスを使用してアラームを作成します。

ステップスケーリングポリシーを作成したら、次のいずれかのスケーリング調整タイプを指定する必要があります。
+ [追加] - 指定した数の容量ユニットまたは指定した割合の現在の容量で、スポットフリートのターゲット容量を増やします。****
+ [削除] - 指定した数の容量ユニットまたは指定した割合の現在の容量で、スポットフリートのターゲット容量を減らします。****
+ [設定] - 指定した数の容量ユニットに、スポットフリートのターゲット容量を設定します。****

アラームがトリガーされると、自動スケーリングプロセスは、取得済み容量およびスケーリングポリシーを使用して新しいターゲット容量を計算し、必要に応じてターゲット容量を更新します。例えば、ターゲット容量と取得済み容量がそれぞれ 10 で、スケーリングポリシーが 1 を加算するとします。アラームがトリガーされると、自動スケーリングプロセスは 10 に 1 を加えて 11 を得るため、スポットフリートは 1 インスタンスを起動します。

ターゲットキャパシティが減ったためにスポットフリートがスポットインスタンスを終了する場合、インスタンスはスポットインスタンスの中断通知を受け取ります。

**前提条件**
+ スポットフリートリクエストには、タイプが `maintain` のリクエストが必要です。自動スケーリングはタイプ `request` のリクエストではサポートされていません。
+ [スポットフリートの自動スケーリングに必要な IAM のアクセス許可](spot-fleet-auto-scaling-IAM.md) を設定します。
+ アプリケーションにとってどの CloudWatch メトリクスが重要化を検討します。AWS または独自のカスタムメトリクスが提供するメトリクスに基づいて、CloudWatch アラームを作成できます。
+ スケーリングポリシーで使用する AWS メトリクスについて、メトリクスを提供するサービスがデフォルトで有効にならない場合、CloudWatch メトリクスの収集を有効にします。
+ 「[考慮事項](spot-fleet-automatic-scaling.md#considerations-for-spot-fleet-automatic-scaling)」を確認します。

**CloudWatch アラームを作成するには**

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

1. ナビゲーションペインで、**[アラーム]** を展開し、**[すべてのアラーム]** を選択してください。

1. [**アラームの作成**] を選択してください。

1. **[Specify metric and conditions]** (メトリクスと条件の指定) ページで、**[Select metric]** (メトリクスの選択) を選択してください。

1. **[EC2 スポット]**、**[フリートリクエストメトリクス]** の順に選択し、メトリクス (**TargetCapacity** など) を選択して、**[メトリクスの選択]** を選択してください。

   [Specify metric and conditions (メトリクスと条件の指定)] ページに、選択したメトリクスに関するグラフや他の情報が表示されます。****

1. **[期間]** でアラームの評価期間 (**[1 分]** など) を選択してください。アラームを評価する場合、各期間は 1 つのデータポイントに集約されます。
**注記**  
期間が短いほど、作成されるアラームの感度が高くなります。

1. [条件] で、しきい値条件を定義してアラームを定義します。****例えば、メトリクスの値が 80% 以上になるたびにアラームをトリガーするように、しきい値を定義できます。

1. [Additional configuration (追加設定)] の [Datapoints to alarm (アラームするデータポイント)] で、アラームをトリガーするために ALARM 状態になる必要があるデータポイント (評価期間) の数を指定します (3 個の評価期間のうち 1 個または 2 個の評価期間など)。********これでアラームが作成されます。このアラームは、指定した数の期間で連続してしきい値を超過すると、ALARM 状態に移行します。詳細については、*Amazon CloudWatch ユーザーガイド* の[アラームを評価する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation)を参照してください。

1. [Missing data treatment (不足しているデータの扱い)] で、いずれかのオプションを選択します (または、デフォルトの [Treat missing data as missing (不足しているデータを不足として扱う)] のままにします)。********詳細については、*Amazon CloudWatch ユーザーガイド*の「[CloudWatch アラームが欠落データを処理する方法の設定](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data)」を参照してください。

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

1. (オプション) スケーリングイベントの通知を受け取る場合は、[通知] で、通知を受け取るために使用する Amazon SNS トピックを選択または作成できます。****それ以外の場合は、通知を削除し、必要に応じて後で追加できます。

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

1. **[名前と説明の追加]** にアラームの名前と説明を入力し、**[次へ]** を選択してください。

1. [**アラームの作成**] を選択します。

**スポットフリートのステップスケーリングポリシーを設定するには**

1. Amazon EC2 コンソール ([https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)) を開きます。

1. ナビゲーションペインで、[**Spot Requests**] を選択してください。

1. スポットフリートリクエストを選択してください。

1. 画面の下部にある **[自動スケーリング]** タブを選択してください。スポットフリートのリンクを選択した場合、タブはありません。代わりに、**[自動スケーリング]** セクションまでスクロールします。

1. 自動スケーリングが設定されていない場合は、[**Configure**] を選択してください。

1. スポットフリートの最小容量および最大容量を設定するには、[**Scale capacity between**] を使用します。スケーリングポリシーにより、最小容量未満に、または最大容量を超えてフリートがスケールされることはありません。

1. **[スケーリングポリシー]** の **[ポリシータイプ]** で **[ステップスケーリングポリシー]** を選択してください。

1. 初期状態では、**[スケーリングポリシー]** には **ScaleUp** と **ScaleDown** という名前のステップスケーリングポリシーが含まれています。これらのポリシーは、完了するか、[Remove policy] を選択して削除できます。****[Add policy] を選択することもできます。****

1. ポリシーを定義するには、以下の作業を行います。

   1. [**Policy Name**] にこのポリシーの名前を入力してください。

   1. **[ポリシートリガー]** で、既存のアラームを選択するか、**[アラームを作成]** を選択して Amazon CloudWatch コンソールを開き、アラームを作成します。

   1. **[容量の変更]** では、スケーリングする量と、ステップ調整の下限と上限を指定します。特定の数のインスタンスまたは既存のグループサイズに対する割合を追加または削除したり、フリートを正確なサイズに設定したりできます。

      例えば、フリートのキャパシティを 30 パーセント増やすステップスケーリングポリシーを作成するには、**[追加]** を選択し、次のフィールドに **[30]** と入力して、**[パーセント]** を選択してください。デフォルトでは、[ポリシーを追加] の下限はアラームしきい値であり、上限は正 (\$1) の無限大です。デフォルトでは、[ポリシーを削除] の上限はアラームしきい値であり、下限は負 (-) の無限大です。

   1. (オプション) 別のステップを追加するには、**[ステップを追加]** を選択してください。

   1. **[クールダウン期間]** には、新しい値 (秒単位) を指定するか、デフォルトのままにします。

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

**AWS CLI を使用して、スポットフリートのステップスケーリングポリシーを設定するには**

1. [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) コマンドを使用して、スケーラブルなターゲットとしてスポットフリートリクエストを登録します。

1. [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) コマンドを使用して、スケーリングポリシーを作成します。

1. put-metric-alarm コマンドを使用してスケーリングポリシーをトリガーするアラームを作成します。[https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html)

# スケジュールされたスケーリング: スケジュールに従ってスポットフリートをスケールする
<a name="spot-fleet-scheduled-scaling"></a>

スケジュールに従ってフリートをスケールすると、予想可能な需要の変化に応じてアプリケーションをスケールすることができます。*スケジュールされたアクション*を作成することで、スポットフリートに特定の時刻にスケーリングアクティビティを実行するように指示できます。スケジュールされたアクションを作成するには、既存のスポットフリート、スケーリングアクティビティを実行する必要がある時刻、および必要な最小キャパシティと最大キャパシティを指定する必要があります。スケジュールされたアクションは、1 回または定期的なスケジュールでスケールされるように設定できます。変更が必要な場合は、スケジュールされたアクションを編集または削除できます。

**前提条件**
+ スケジュールされたアクションは、既存のスポットフリートに対してのみ作成できます。スケジュールされたアクションは、スポットフリートの作成時に作成することはできません。
+ スポットフリートリクエストには、タイプが `maintain` のリクエストが必要です。自動スケーリングはタイプ `request` のリクエストではサポートされていません。
+ [スポットフリートの自動スケーリングに必要な IAM のアクセス許可](spot-fleet-auto-scaling-IAM.md) を設定します。
+ 「[考慮事項](spot-fleet-automatic-scaling.md#considerations-for-spot-fleet-automatic-scaling)」を確認します。

**1 回のアクションを作成するには**

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

1. ナビゲーションペインで、[**Spot Requests**] を選択してください。

1. スポットフリートリクエストを選択してください。

1. 画面の下部にある **[スケジュールされたスケーリング]** タブを選択してください。スポットフリートのリンクを選択した場合、タブはありません。代わりに、**[スケジュールされたスケーリング]** セクションまでスクロールします。

1. **[スケジュールされたアクションの作成]** を選択してください。

1. [名前] に、予定アクションの名前を指定します。****

1. [最小容量]、[最大容量]、または両方の値を入力してください。********

1. [繰り返し] で、[1 回] を選択してください。********

1. (オプション) [**開始時刻**]、[**終了時刻**]、またはその両方の日付と時刻を選択してください。

1. [**Create**] (作成) を選択してください。

**定期的なスケジュールされたアクションを作成するには**

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

1. ナビゲーションペインで、[**Spot Requests**] を選択してください。

1. スポットフリートリクエストを選択してください。

1. 画面の下部にある **[スケジュールされたスケーリング]** タブを選択してください。スポットフリートのリンクを選択した場合、タブはありません。代わりに、**[スケジュールされたスケーリング]** セクションまでスクロールします。

1. [名前] に、予定アクションの名前を指定します。****

1. [最小容量]、[最大容量]、または両方の値を入力してください。********

1. [繰り返し] で、事前定義済みのスケジュール (例えば、[毎日]) のいずれかを選択するか、[カスタム] を選択して cron 式を入力してください。************スケジュールされたスケーリングでサポートされる cron 式の詳細については、「*Amazon EventBridge ユーザーガイド*」の「[Cron expressions](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html#eb-cron-expressions)」を参照してください。

1. (オプション) [**開始時刻**]、[**終了時刻**]、またはその両方の日付と時刻を選択してください。

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

**スケジュールされたアクションを編集するには**

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

1. ナビゲーションペインで、[**Spot Requests**] を選択してください。

1. スポットフリートリクエストを選択してください。

1. 画面の下部にある **[スケジュールされたスケーリング]** タブを選択してください。スポットフリートのリンクを選択した場合、タブはありません。代わりに、**[スケジュールされたスケーリング]** セクションまでスクロールします。

1. スケジュールされたアクション を選択して、[Actions]、[Edit] の順に選択してください。********

1. 必要な変更を加えて、[Submit] を選択してください。****

**スケジュールされたアクションを削除するには**

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

1. ナビゲーションペインで、[**Spot Requests**] を選択してください。

1. スポットフリートリクエストを選択してください。

1. 画面の下部にある **[スケジュールされたスケーリング]** タブを選択してください。スポットフリートのリンクを選択した場合、タブはありません。代わりに、**[スケジュールされたスケーリング]** セクションまでスクロールします。

1. スケジュールされたアクションを選択して、[アクション]、[削除] の順に選択してください。********

1. 確認を求めるメッセージが表示されたら、[削除] を選択してください。****

**AWS CLI を使用してスケジュールされたスケーリングを管理するには**

次のコマンドを使用します。
+ put-scheduled-action[https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html)
+ describe-scheduled-actions[https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scheduled-actions.html](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scheduled-actions.html)
+ delete-scheduled-action[https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scheduled-action.html](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scheduled-action.html)