View a markdown version of this page

チュートリアル: キャパシティ予約に対してインスタンスを起動するように EC2 フリートを設定する - Amazon Elastic Compute Cloud

チュートリアル: キャパシティ予約に対してインスタンスを起動するように EC2 フリートを設定する

このチュートリアルでは実行すべきステップを段階的に解説しています。これらのステップを実行すると、EC2 フリートが中断可能なキャパシティ予約に対してインスタンスを起動します。

中断可能なキャパシティ予約は、AWS 組織内のオンデマンドキャパシティ予約の所有者によって貸与された予備のキャパシティを表します。これらの予約では、キャパシティ所有者が 2 分間の中断通知でいつでもキャパシティを再利用できるため、中断可能なワークロードに適しています。その後、EC2 はインスタンスを終了します。中断可能なキャパシティ予約の詳細については、「中断可能なキャパシティ予約」を参照してください。

EC2 フリートリクエストのターゲットキャパシティは、ターゲットとする中断可能なキャパシティ予約の使用可能なキャパシティ以下でなければなりません。ターゲットキャパシティリクエストが中断可能なキャパシティ予約の使用可能なキャパシティを超えると、EC2 フリートはできるだけ多くのインスタンスを起動し、起動されたインスタンスを API レスポンスで報告します。

中断可能なキャパシティ予約で実行されているインスタンスは、手動で停止または終了するか、キャパシティ所有者がキャパシティを再利用するまで実行され続けます。キャパシティ所有者がキャパシティを再利用すると、Amazon EC2 はインスタンス終了の 2 分前に Amazon EventBridge 通知を送信します。

考慮事項

  • キャパシティ予約へのインスタンスの起動については、instant タイプの EC2 フリートリクエストのみがサポートされます。

  • OnDemandTargetCapacity または SpotTargetCapacity を使用する際にさらに reserved-capacityDefaultTargetCapacityType として 設定することはサポートされていません。

  • それぞれが異なる中断可能なキャパシティ予約をターゲットとする複数の起動テンプレートを指定すると、EC2 フリートは一致するすべての予約にインスタンスをプロビジョニングします。

  • 中断可能なキャパシティ予約の場合、EC2 フリートは希望するターゲットキャパシティの残りをオンデマンドインスタンスまたはスポットインスタンスの起動にフォールバックしません。

アクセス許可の確認

EC2 フリート を作成する前に、必要なアクセス許可が含まれている IAM ロールがあることを確認します。詳細については、「EC2 フリートの前提条件」を参照してください。

中断可能なキャパシティ予約に対してインスタンスを起動するには、次の手順を実行する必要があります。

ステップ 1: 起動テンプレートを作成する

create-launch-template コマンドを使用して、ターゲットにする中断可能なキャパシティ予約が指定される起動テンプレートを作成します。起動テンプレートで、MarketTypeinterruptible-capacity-reservation に設定し、中断可能なキャパシティ予約の CapacityReservationId を指定します。

起動テンプレート設定の例:

{ "LaunchTemplateName": "interruptible-cr-launch-template", "LaunchTemplateData": { "InstanceType": "m5.large", "ImageId": "ami-0abcdef1234567890", "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationId": "cr-0123456789abcdef0" } }, "InstanceMarketOptions": { "MarketType": "interruptible-capacity-reservation" } } }

出力の例

{ "LaunchTemplate": { "LaunchTemplateId": "lt-0123456789example", "LaunchTemplateName": "interruptible-cr-launch-template", "CreateTime": "2026-03-12T10:00:00.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Admin", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

詳細については、「Amazon EC2 起動テンプレートを作成する」を参照してください。

ステップ 2: EC2 フリートを設定する

起動テンプレートとターゲットキャパシティが指定されるように EC2 フリートの設定ファイルを作成します。次の設定では、ステップ 1 で作成した起動テンプレート interruptible-cr-launch-template を使用します。

reserved-capacityDefaultTargetCapacityType として使用する場合は、ReservationTypeinterruptible-capacity-reservation に設定されている ReservedCapacityOptions を指定する必要があります。

以下の内容で config.json という名前のファイルを作成します。

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "interruptible-cr-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType": "m5.large", "AvailabilityZone": "us-east-1a" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 10, "DefaultTargetCapacityType": "reserved-capacity" }, "ReservedCapacityOptions": { "ReservationType": ["interruptible-capacity-reservation"] }, "Type": "instant" }

主な設定パラメータ:

パラメータ 説明
DefaultTargetCapacityType リザーブドキャパシティに対してインスタンスを起動する必要があることを示すには、reserved-capacity に設定します。
ReservedCapacityOptions リザーブドキャパシティのタイプを指定します。中断可能なキャパシティ予約の場合は、ReservationType["interruptible-capacity-reservation"] に設定します。
Type instant に設定する必要があります。中断可能なキャパシティ予約では、インスタントフリートのみがサポートされています。

ステップ 3: フリートを起動して結果を表示する

create-fleet コマンドを使用してフリートを作成します。

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

上記の設定を使用して instant フリートを作成すると、EC2 フリートはターゲットキャパシティを満たすために、中断可能なキャパシティ予約に対して 10 個のインスタンスを起動します。

注記

フリートがターゲットキャパシティを完全には満たせない場合、レスポンスには、起動されたインスタンスと、満たされていないキャパシティに関するエラーが含まれます。

出力の例

{ "FleetId": "fleet-12345678-1234-1234-1234-123456789012", "Instances": [ { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0123456789example", "Version": "1" }, "Overrides": { "InstanceType": "m5.large", "AvailabilityZone": "us-east-1a" } }, "Lifecycle": "interruptible-capacity-reservation", "InstanceIds": [ "i-0123456789example1", "i-0123456789example2", "i-0123456789example3", "i-0123456789example4", "i-0123456789example5", "i-0123456789example6", "i-0123456789example7", "i-0123456789example8", "i-0123456789example9", "i-0123456789example0" ], "InstanceType": "m5.large", "Platform": "Linux/UNIX" } ], "Errors": [] }

詳細については、「EC2 フリートの作成」を参照してください。

クリーンアップ

料金の発生を防ぐため、不要になったインスタンスは終了させてください。また、キャパシティ所有者がキャパシティを再利用すると、EC2 は中断可能なキャパシティ予約に対して起動されたインスタンスを自動的に終了させるので注意してください。