Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

EC2 フリート の管理

EC2 フリート を使用するには、合計ターゲット容量、オンデマンド容量、スポット容量、インスタンスの 1 つ以上の起動仕様、希望上限価格などを指定したリクエストを作成します。フリートリクエストには、フリートがインスタンスの起動に必要とする情報 (AMI、インスタンスタイプ、サブネットまたはアベイラビリティーゾーン、そして 1 つ以上のセキュリティグループ) を定義する起動テンプレートを含める必要があります。お客様は、インスタンスタイプ、サブネット、アベイラビリティーゾーン、支払い上限価格の起動条件オーバーライドを指定でき、各起動条件オーバーライドに加重容量を割り当てることができます。

フリートに スポットインスタンス が含まれている場合、Amazon EC2 はスポット料金の変更に応じてフリートのターゲット容量を維持しようと試みることができます。

EC2 フリート リクエストは、期限切れになるかお客様によって削除されるまで、アクティブのままになります。フリートを削除するときは、削除によってそのフリートのインスタンスを終了するかどうかを指定できます。

EC2 フリート リクエストの状態

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

  • submitted – EC2 フリート リクエストは評価中です。Amazon EC2 はターゲット数のインスタンスを起動する準備をしています。これには、オンデマンドインスタンス と スポットインスタンス のどちらか、または両方が含まれる場合があります。

  • active – EC2 フリート リクエストは検証済みです。Amazon EC2 は実行中のインスタンスをターゲット数分、確保しようとしています。リクエストは、変更または削除されるまで、この状態のままになります。

  • modifying – EC2 フリート リクエストは変更中です。リクエストは、変更が完全に処理されるか、リクエストが削除されるまで、この状態のままになります。maintain リクエストタイプのみ、変更できます。この状態はその他のリクエストタイプには適用されません。

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

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

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

次の図は、EC2 フリート リクエストの状態の遷移を示しています。フリートの制限を超えた場合、リクエストはすぐに削除されます。


					EC2 フリート リクエストの状態

EC2 フリート の前提条件

EC2 フリート を作成するには、以下の前提条件を設定する必要があります。

起動テンプレート

起動テンプレートには、インスタンスタイプ、アベイラビリティーゾーン、支払い上限価格など、起動するインスタンスの情報が含まれています。詳細については、「起動テンプレートからのインスタンスの起動」を参照してください。

EC2 フリート 用のサービスにリンクされたロール

AWSServiceRoleForEC2Fleet ルールは、自分の代わりにインスタンスをリクエスト、起動、終了、タグ付けするアクセス許可を EC2 フリート に付与します。Amazon EC2 は、このサービスにリンクされたロールを使用して以下のアクションを実行します。

  • ec2:RequestSpotInstances – スポットインスタンス をリクエストします。

  • ec2:TerminateInstances – スポットインスタンス を終了します。

  • ec2:DescribeImages – スポットインスタンス の Amazon Machine Image (AMI) を表示します。

  • ec2:DescribeInstanceStatus – スポットインスタンス のステータスを表示します。

  • ec2:DescribeSubnets – スポットインスタンス のサブネットを表示します。

  • ec2:CreateTags - スポットインスタンス へのシステムタグの追加

AWS CLI または API を使って EC2 フリート を作成する前にこのロールが存在していることを確認します。ロールを作成するには、IAM コンソールを次のように使用します。

EC2 フリート の IAM ロールを作成するには

  1. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。

  2. ナビゲーションペインで [ロール]、[ロールの作成] の順に選択します。

  3. [Select type of trusted entity (信頼されたエンティティのタイプの選択)] で、[AWS サービス] を選択します。

  4. [このロールを使用するサービスを選択] で、[EC2 - Fleet] を選択後、[Next: Permissions]、[Next: Tags]、[Next: Review] の順に選択します。

  5. [確認] ページで、[ロールの作成] を選択します。

EC2 フリート を使用する必要がなくなった場合は、[AWSServiceRoleForEC2Fleet] ロールを削除することをお勧めします。このロールがアカウントから削除された後で、別のフリートを作成した場合はロールを再度作成できます。

EC2 フリート ユーザーと IAM ユーザー

IAM ユーザーが EC2 フリート を作成または管理する場合、必ず次のようにして必要なアクセス許可を付与してください。

IAM ユーザーに EC2 フリート のアクセス許可を付与するには

  1. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。

  2. ナビゲーションペインで、[Policies (ポリシー)] を選択します。

  3. [Create policy] を選択します。

  4. [Create policy] ページで、[JSON] タブを選択し、テキストを以下に置き換えて [Review policy] を選択します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:ListRoles", "iam:PassRole", "iam:ListInstanceProfiles" ], "Resource": "*" } ] }

    ec2:* は、IAM ユーザーにすべての Amazon EC2 API アクションを呼び出すアクセス許可を付与します。特定の Amazon EC2 API アクションに制限するには、代わりにこれらのアクションを指定します。

    IAM ユーザーは、既存の IAM ロールを列挙する iam:ListRoles アクション、EC2 フリート ロールを指定する iam:PassRole アクション、および既存のインスタンスプロファイルを列挙する iam:ListInstanceProfiles アクションを呼び出すには、アクセス許可が必要です。

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

    • iam:AddRoleToInstanceProfile

    • iam:AttachRolePolicy

    • iam:CreateInstanceProfile

    • iam:CreateRole

    • iam:GetRole

    • iam:ListPolicies

  5. [ポリシーの確認] ページでポリシー名と説明を入力し、[ポリシーの作成] を選択します。

  6. ナビゲーションペインで [Users] を選択し、ユーザーを選択します。

  7. [Permissions] タブで、[Add permissions] を選択します。

  8. [Attach existing policies directly] を選択します。以前に作成したポリシーを選択し、[Next: Review] を選択します。

  9. [Add permissions] を選択します。

EC2 フリート ヘルスチェック

EC2 フリート は、2 分ごとにフリートのインスタンスのヘルスステータスをチェックします。インスタンスのヘルスステータスは healthy または unhealthy です。フリートは Amazon EC2 によって提供されるステータスチェックを使用して、インスタンスのヘルスステータスを判断します。インスタンスステータスチェックとシステムヘルスチェックのいずれかのステータスが、連続した 3 回のヘルスチェックで impaired である場合、インスタンスのヘルスステータスは unhealthy になります。それ以外の場合、ヘルスステータスは healthy になります。詳細については、「インスタンスのステータスチェック」を参照してください。

異常なインスタンスは置き換えるよう EC2 フリート を設定できます。ヘルスチェックの置換を有効にすると、ヘルスステータスが unhealthy と報告された後でインスタンスが置き換えられます。異常なインスタンスを置き換えている間、数分間にわたりフリートがターゲット容量を下回る場合があります。

要件

  • ヘルスチェックの置換は、1 回限りのフリートではなく、ターゲット容量を維持する EC2 フリート でのみサポートされます。

  • 作成時のみ異常なインスタンスを置き換えるよう EC2 フリート を設定できます。

  • IAM ユーザーは、ec2:DescribeInstanceStatus アクションを呼び出すアクセス許可を持っている場合のみ、ヘルスチェックの置換を使用できます。

EC2 フリート JSON 設定ファイルの生成

EC2 フリート を作成するには、起動テンプレート、合計ターゲット容量、デフォルトの購入オプションがオンデマンドとスポットのどちらであるかのみ指定する必要があります。パラメータを指定しない場合、フリートはデフォルト値を使用します。フリート設定パラメータの詳細なリストを見るには、JSON ファイルを次のように作成できます。

コマンドラインを使用して使用可能なすべての EC2 フリート パラメータを含む JSON ファイルを生成するには

  • create-fleet (AWS CLI) コマンドと --generate-cli-skeleton パラメータを使用して、EC2 フリート JSON ファイルを生成します。

    aws ec2 create-fleet --generate-cli-skeleton

    以下の EC2 フリート パラメータが利用可能です。

    { "DryRun": true, "ClientToken": "", "SpotOptions": { "AllocationStrategy": "lowestPrice", "InstanceInterruptionBehavior": "hibernate", "InstancePoolsToUseCount": 0 }, "OnDemandOptions": { "AllocationStrategy": "prioritized" }, "ExcessCapacityTerminationPolicy": "termination", "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "", "LaunchTemplateName": "", "Version": "" }, "Overrides": [ { "InstanceType": "t2.micro", "MaxPrice": "", "SubnetId": "", "AvailabilityZone": "", "WeightedCapacity": null, "Priority": null } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 0, "OnDemandTargetCapacity": 0, "SpotTargetCapacity": 0, "DefaultTargetCapacityType": "spot" }, "TerminateInstancesWithExpiration": true, "Type": "maintain", "ValidFrom": "1970-01-01T00:00:00", "ValidUntil": "1970-01-01T00:00:00", "ReplaceUnhealthyInstances": true, "TagSpecifications": [ { "ResourceType": "fleet", "Tags": [ { "Key": "", "Value": "" } ] } ] }

EC2 フリート JSON 設定ファイルリファレンス

注記

すべてのパラメータ値に小文字を使用してください。そうしないと、Amazon EC2 が JSON ファイルを使用して EC2 フリート を起動するときにエラーが表示されます。

AllocationStrategy (SpotOptions 用)

(オプション) EC2 フリート により指定された スポットインスタンス プール間で スポットインスタンス ターゲット容量をどのように配分するかを指定します。有効な値は、lowestPrice および diversified です。デフォルト: lowestPrice。ニーズを満たす配分戦略を指定します。詳細については、「スポットインスタンス の配分戦略」を参照してください。

InstanceInterruptionBehavior

(オプション) スポットインスタンス が中断された場合の動作。有効な値は、hibernatestopterminate です。デフォルトでは、スポットサービスは中断されると スポットインスタンス を削除します。フリートタイプが maintain である場合、中断時に スポットインスタンス を休止または停止するように指定できます。

InstancePoolsToUseCount

ターゲットスポット容量を割り当てる先のスポットプールの数。スポットの AllocationStrategylowestPrice に設定されている場合にのみ有効です。EC2 フリート は、最低価格のスポットプールを選択し、指定した数のスポットプールに均等にターゲットスポット容量を割り当てます。

AllocationStrategy (OnDemandOptions 用)

オンデマンド容量を達成するために使用する起動テンプレートの上書きの順序。lowestPrice を指定すると、EC2 フリート は料金に従って順序を決定し、最低価格を最初に起動します。優先度を指定すると、EC2 フリート は、各起動テンプレートの上書きに割り当てられた優先度に従って、最も高い優先度を最初に起動します。値を指定しないと、EC2 フリート はデフォルトで lowestPrice に従います。

ExcessCapacityTerminationPolicy

(オプション) EC2 フリート の合計ターゲット容量が EC2 フリート の現在のサイズより小さくなった場合、実行中のインスタンスが終了されるかどうかを示します。有効な値は、no-termination および termination です。

LaunchTemplateId

使用する起動テンプレートの ID。起動テンプレート ID または起動テンプレート名を指定する必要があります。起動テンプレートでは、Amazon Machine Image (AMI) を指定する必要があります。起動テンプレート作成の詳細については、「起動テンプレートからのインスタンスの起動」を参照してください。

LaunchTemplateName

使用する起動テンプレートの名前。起動テンプレート ID または起動テンプレート名を指定する必要があります。起動テンプレートでは、Amazon Machine Image (AMI) を指定する必要があります。詳細については、「起動テンプレートからのインスタンスの起動」を参照してください。

Version

起動テンプレートのバージョン番号。

InstanceType

(オプション) インスタンスタイプ。入力した場合、この値は起動テンプレートより優先されます。インスタンスタイプは、必要最小限のハードウェア仕様 (vCPU、メモリ、ストレージ) が必要です。

MaxPrice

(オプション) お客様が スポットインスタンス に対して支払ってもよいと考えるユニット時間あたりの上限価格。入力した場合、この値は起動テンプレートより優先されます。デフォルトの上限料金 (オンデマンド価格) を使用するか、支払う予定の上限料金を指定することができます。上限価格が、指定したインスタンスタイプのスポット料金より低い場合、スポットインスタンス は起動されません。

SubnetId

(オプション) インスタンスを起動するサブネットの ID。入力した場合、この値は起動テンプレートより優先されます。

新しい VPC を作成するには、Amazon VPC コンソールにアクセスします。完了したら、JSON ファイルに戻って新しいサブネット ID を入力します。

AvailabilityZone

(オプション) インスタンスを起動するアベイラビリティーゾーン。デフォルトでは AWS によりスポットインスタンスのゾーンが選択されます。希望する場合には、特定のゾーンを設定できます。入力した場合、この値は起動テンプレートより優先されます。

1 つ以上のアベイラビリティーゾーンを指定します。ゾーンに複数のサブネットがある場合、適切なサブネットを指定します。サブネットを追加するには、Amazon VPC コンソールにアクセスします。完了したら、JSON ファイルに戻って新しいサブネット ID を入力します。

WeightedCapacity

(オプション) 単位数は、指定のインスタンスタイプによって提供されます。入力した場合、この値は起動テンプレートより優先されます。

優先度

起動テンプレートの上書きの優先度。AllocationStrategyprioritized に設定すると、EC2 フリート は優先度に従って、オンデマンド容量を達成するために最初に使用する起動テンプレートの上書きを決定します。最も高い優先度が最初に起動されます。有効な値は 0 から始まる整数です。数値が小さいほど、優先度が高くなります。数値を設定しないと、上書きの優先度は最低になります。

TotalTargetCapacity

起動するインスタンスの数。アプリケーションのワークロードに重要なインスタンスまたはパフォーマンスのプロパティ (vCPU、メモリ、ストレージなど) を選択できます。リクエストタイプが [maintain] の場合、ターゲット容量を 0 に指定して後で容量を追加できます。

OnDemandTargetCapacity

(オプション) 起動する オンデマンドインスタンス の数。この数は TotalTargetCapacity 未満にする必要があります。

SpotTargetCapacity

(オプション) 起動する スポットインスタンス の数。この数は TotalTargetCapacity 未満にする必要があります。

DefaultTargetCapacityType

TotalTargetCapacity の値が OnDemandTargetCapacitySpotTargetCapacity を組み合わせた値より大きい場合、その差が、ここで指定されたインスタンス購入オプションとして起動されます。有効な値は on-demand または spot です。

TerminateInstancesWithExpiration

(オプション) デフォルトでは、EC2 フリート リクエストの有効期限が切れると Amazon EC2 がインスタンスを終了します。デフォルト値は true です。リクエストの期限が切れた後に実行を継続するには、このパラメータの値を入力しないでください。

タイプ

(オプション) EC2 フリート が、希望する容量の同期ワンタイムリクエストを送信 (instant) するか、希望する容量に非同期ワンタイムリクエスト (希望する容量を維持しようとしない) を送信するか、容量が利用できない場合に代替容量プールでリクエストを送信 (request) するか、非同期のワンタイムリクエストを送信し、中断された スポットインスタンス を自動的に補充して、容量の維持を継続 (maintain) するかを示します。有効な値は、instantrequestmaintain です。デフォルト値は maintain です。詳細については、「EC2 フリート のリクエストタイプ」を参照してください。

ValidFrom

(オプション) 特定の期間中だけ有効なリクエストを作成するには、開始日に入力します。

ValidUntil

(オプション) 特定の期間中だけ有効なリクエストを作成するには、終了日に入力します。

ReplaceUnhealthyInstances

(オプション) フリートの maintain が設定された EC2 フリート で正常でないインスタンスを置き換えるには、true と入力します。それ以外の場合、このパラメータは空にしてください。

TagSpecifications

(オプション) 作成時に EC2 フリート リクエストをタグ付けするためのキーと値のペアです。ResourceType の値を fleet にしないと、フリートリクエストが失敗します。起動時にインスタンスをタグ付けする場合は、起動テンプレートでタグを指定します。起動後のタグ付けについては「リソースにタグを付ける」をご覧ください。

EC2 フリートを作成する

EC2 フリート を作成するとき、インスタンスタイプ、アベイラビリティーゾーン、支払い上限価格など、起動するインスタンスの情報を含む起動テンプレートを指定する必要があります。

起動テンプレートをオーバーライドする複数の起動条件を含む EC2 フリート を作成できます。起動条件は、インスタンスタイプ、アベイラビリティーゾーン、サブネット、上限価格によって異なり、異なる加重容量が含まれていることがあります。

EC2 フリート を作成するときは、JSON ファイルを使用して起動するインスタンスについての情報を指定します。詳細については、「EC2 フリート JSON 設定ファイルリファレンス」を参照してください。

EC2 フリート の作成に使用できるのは、AWS CLI のみです。

EC2 フリート (AWS CLI) を作成するには

  • 次の create-fleet (AWS CLI) コマンドを使用して EC2 フリート を作成します。

aws ec2 create-fleet --cli-input-json file://file_name.json

設定ファイルの例については、「EC2 フリート 設定例」を参照してください。

タイプ request または maintain のフリートの出力例を次に示します。

{ "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE" }

ターゲット容量を起動したタイプ instant のフリートの出力例を次に示します。

{ "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE", "Errors": [], "Instances": [ { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c5.large", "AvailabilityZone": "us-east-1a" } }, "Lifecycle": "on-demand", "InstanceIds": [ "i-1234567890abcdef0", "i-9876543210abcdef9" ], "InstanceType": "c5.large", "Platform": null }, { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c4.large", "AvailabilityZone": "us-east-1a" } }, "Lifecycle": "on-demand", "InstanceIds": [ "i-5678901234abcdef0", "i-5432109876abcdef9" ], "InstanceType": "c4.large", "Platform": null }, ] }

ターゲット容量の一部を起動し、起動されなかったインスタンスにエラーのあるタイプ instant のフリートの出力例を次に示します。

{ "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE", "Errors": [ { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c4.xlarge", "AvailabilityZone": "us-east-1a", } }, "Lifecycle": "on-demand", "ErrorCode": "InsufficientInstanceCapacity", "ErrorMessage": "", "InstanceType": "c4.xlarge", "Platform": null }, ], "Instances": [ { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c5.large", "AvailabilityZone": "us-east-1a" } }, "Lifecycle": "on-demand", "InstanceIds": [ "i-1234567890abcdef0", "i-9876543210abcdef9" ], "InstanceType": "c5.large", "Platform": null }, ] }

インスタンスを起動していないタイプ instant のフリートの出力例を次に示します。

{ "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE", "Errors": [ { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c4.xlarge", "AvailabilityZone": "us-east-1a", } }, "Lifecycle": "on-demand", "ErrorCode": "InsufficientCapacity", "ErrorMessage": "", "InstanceType": "c4.xlarge", "Platform": null }, { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c5.large", "AvailabilityZone": "us-east-1a", } }, "Lifecycle": "on-demand", "ErrorCode": "InsufficientCapacity", "ErrorMessage": "", "InstanceType": "c5.large", "Platform": null }, ], "Instances": [] }

EC2 フリート のタグを付ける

EC2 フリート リクエストを分類および管理しやすくするため、カスタムメタデータでタグ付けすることができます。詳細については、「Amazon EC2 リソースにタグを付ける」を参照してください。

EC2 フリート タグは、作成時または作成後にリクエストに割り当てることができます。フリートリクエストに指定されているタグは、フリートが起動するインスタンスには割り当てられていません。

新しい EC2 フリートリクエストにタグを付ける

作成時に EC2 フリート リクエストをタグ付けするには、フリートを作成するために使用した JSON ファイルでキーと値のペアを指定します。ResourceType の値は fleet にする必要があります。別の値で指定すると、フリートリクエストは失敗します。

EC2 フリート が起動したインスタンスにタグを付ける

フリートが起動した場合にインスタンスをタグ付けするには、EC2 フリート リクエストで参照される起動テンプレートでタグを指定します。

既存の EC2 フリート リクエストとインスタンスにタグを付けるには (AWS CLI)

既存のリソースにタグを追加するには、以下の create-tags コマンドを使用します。

aws ec2 create-tags --resources fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE i-1234567890abcdef0 --tags Key=purpose,Value=test

EC2 フリート のモニタリング

EC2 フリート は、使用可能な容量があるときは オンデマンドインスタンス を起動し、上限価格がスポット料金を超えていて容量が利用可能なときは スポットインスタンス を起動します。オンデマンドインスタンス は、終了されるまで実行され、スポットインスタンス は中断されるか終了されるまで実行されます。

実行中のインスタンスの返されるリストは定期的に更新されますが、古い可能性もあります。

EC2 フリート を監視するには (AWS CLI)

EC2 フリート の詳細を表示するには、以下の describe-fleets コマンドを使用します。

aws ec2 describe-fleets

出力例を次に示します。

{ "Fleets": [ { "Type": "maintain", "FulfilledCapacity": 2.0, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "Version": "2", "LaunchTemplateId": "lt-07b3bc7625cdab851" } } ], "TerminateInstancesWithExpiration": false, "TargetCapacitySpecification": { "OnDemandTargetCapacity": 0, "SpotTargetCapacity": 2, "TotalTargetCapacity": 2, "DefaultTargetCapacityType": "spot" }, "FulfilledOnDemandCapacity": 0.0, "ActivityStatus": "fulfilled", "FleetId": "fleet-76e13e99-01ef-4bd6-ba9b-9208de883e7f", "ReplaceUnhealthyInstances": false, "SpotOptions": { "InstanceInterruptionBehavior": "terminate", "InstancePoolsToUseCount": 1, "AllocationStrategy": "lowestPrice" }, "FleetState": "active", "ExcessCapacityTerminationPolicy": "termination", "CreateTime": "2018-04-10T16:46:03.000Z" } ] }

指定した EC2 フリート のインスタンスの詳細を表示するには、以下の describe-fleet-instances コマンドを使用します。

aws ec2 describe-fleet-instances --fleet-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
{ "ActiveInstances": [ { "InstanceId": "i-09cd595998cb3765e", "InstanceHealth": "healthy", "InstanceType": "m4.large", "SpotInstanceRequestId": "sir-86k84j6p" }, { "InstanceId": "i-09cf95167ca219f17", "InstanceHealth": "healthy", "InstanceType": "m4.large", "SpotInstanceRequestId": "sir-dvxi7fsm" } ], "FleetId": "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" }

指定した EC2 フリート の指定期間の履歴を表示するには、以下の describe-fleet-history コマンドを使用します。

aws ec2 describe-fleet-history --fleet-request-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --start-time 2018-04-10T00:00:00Z
{ "HistoryRecords": [], "FleetId": "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", "LastEvaluatedTime": "1970-01-01T00:00:00.000Z", "StartTime": "2018-04-09T23:53:20.000Z" }

EC2 フリート の変更

状態が submitted または active の EC2 フリート を変更することができます。フリートを変更すると、そのフリートは modifying 状態に移行します。

EC2 フリート の以下のパラメータを変更できます。

  • target-capacity-specificationTotalTargetCapacityOnDemandTargetCapacity、および SpotTargetCapacity のターゲット容量を増やすか減らします。

  • excess-capacity-termination-policy – EC2 フリート の合計ターゲット容量がフリートの現在のサイズより小さくなった場合、実行中のインスタンスが終了されるかどうか。有効な値は、no-termination および termination です。

注記

Type=maintain の EC2 フリート のみ変更できます。

ターゲット容量を増やすと、EC2 フリート は DefaultTargetCapacityType で指定されたインスタンス購入オプション (オンデマンドインスタンス または スポットインスタンス) に従って追加のインスタンスを起動します。

DefaultTargetCapacityTypespot の場合、EC2 フリート はその配分戦略に従って追加の スポットインスタンス を起動します。配分戦略が lowestPrice の場合、フリートは、リクエストの最低価格の スポットインスタンス プールからインスタンスを起動します。配分戦略が diversified の場合、フリートは、リクエストのプールにインスタンスを分散します。

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

ターゲット容量が減ったために EC2 フリート によって スポットインスタンス が終了される場合、インスタンスは スポットインスタンス の中断通知を受け取ります。

EC2 フリート を変更するには (AWS CLI)

次の modify-fleet コマンドを使用して、指定する EC2 フリート のターゲット容量を更新します。

aws ec2 modify-fleet --fleet-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --target-capacity-specification TotalTargetCapacity=20

ターゲット容量を小さくしてもフリートの現在のサイズを保持する場合は、前のコマンドを以下のように変更できます。

aws ec2 modify-fleet --fleet-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --target-capacity-specification TotalTargetCapacity=10 --excess-capacity-termination-policy no-termination

EC2 フリート の削除

EC2 フリート が不要になった場合には、それを削除することができます。フリートを削除すると、新しいインスタンスは起動されません。

EC2 フリート のインスタンスを終了するかどうか指定する必要があります。フリートを削除するときにインスタンスを終了する必要があることを指定した場合、deleted_terminating 状態へ移行します。それ以外の場合は deleted_running 状態になり、インスタンスは中断または手動終了されるまで、引き続き実行されます。

EC2 フリート を削除するには (AWS CLI)

delete-fleets コマンドと --terminate-instances パラメータを使用し、指定された EC2 フリート を削除してインスタンスを終了します。

aws ec2 delete-fleets --fleet-ids fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --terminate-instances

出力例を次に示します。

{ "UnsuccessfulFleetDeletions": [], "SuccessfulFleetDeletions": [ { "CurrentFleetState": "deleted_terminating", "PreviousFleetState": "active", "FleetId": "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" } ] }

--no-terminate-instances パラメータを使用して前のコマンドを変更することで、インスタンスを終了せずに、指定した EC2 フリート を削除できます。

aws ec2 delete-fleets --fleet-ids fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --no-terminate-instances

出力例を次に示します。

{ "UnsuccessfulFleetDeletions": [], "SuccessfulFleetDeletions": [ { "CurrentFleetState": "deleted_running", "PreviousFleetState": "active", "FleetId": "fleet-4b8aaae8-dfb5-436d-a4c6-3dafa4c6b7dcEXAMPLE" } ] }