View a markdown version of this page

キャパシティ予約でインスタンスを起動するように Auto Scaling グループを設定する - Amazon EC2 Auto Scaling

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

キャパシティ予約でインスタンスを起動するように Auto Scaling グループを設定する

Amazon EC2 キャパシティ予約と Capacity Blocks for ML でインスタンスを起動するように Auto Scaling グループを設定するには、アプローチに一致する手順を選択します。

キャパシティ予約の仕様を使用する

新しい Auto Scaling グループを作成するときに、次のいずれかの方法を使用してキャパシティ予約の仕様を設定します。

Console
新しいグループでキャパシティ予約の仕様を設定するには (コンソール)
  1. ステップ 2 までAmazon EC2 起動ウィザードを使用して Auto Scaling グループを作成する、「」のステップに従います。

  2. 「インスタンス起動オプションの選択」ページの「追加のキャパシティ設定」で、キャパシティ予約設定を選択します。必要に応じて、キャパシティ予約ターゲットを選択します。詳細については、「キャパシティ予約の詳細設定」および「キャパシティ予約ターゲット」を参照してください。

  3. ウィザードの残りのステップに進みます。

AWS CLI

create-auto-scaling-group コマンドに --capacity-reservation-specification パラメータを追加します。パラメータは、設定とオプションのターゲットを受け入れます。詳細については、「キャパシティ予約の詳細設定」および「キャパシティ予約ターゲット」を参照してください。

次の例では、 を優先capacity-reservations-onlyし、特定のキャパシティ予約をターゲットとする Auto Scaling グループを作成します。

aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateName=my-launch-template \ --min-size 1 --max-size 10 --desired-capacity 5 \ --vpc-zone-identifier "subnet-abc1234a,subnet-abc1234b" \ --capacity-reservation-specification '{ "CapacityReservationPreference": "capacity-reservations-only", "CapacityReservationTarget": { "CapacityReservationIds": ["cr-1234567890abcdef1"] } }'

既存の Auto Scaling グループを更新する

既存の Auto Scaling グループのキャパシティ予約の仕様を変更するには、次のいずれかの方法を使用します。

Console
既存のグループのキャパシティ予約の仕様を変更するには (コンソール)
  1. で Amazon EC2 コンソールを開きhttps://console.aws.amazon.com/ec2/、ナビゲーションペインから Auto Scaling Groups を選択します。

  2. 上部のナビゲーションバーから、Auto Scaling グループ AWS リージョン が配置されている を選択します。

  3. Auto Scaling グループの横にあるチェックボックスを選択します。ページの下部に分割ペインが開きます。

  4. [詳細] タブの [キャパシティ予約の詳細設定] で、[編集] を選択します。

  5. キャパシティ予約設定を選択し、オプションでキャパシティ予約ターゲットを選択します。

  6. [更新] を選択します。

AWS CLI

update-auto-scaling-group コマンドに --capacity-reservation-specification パラメータを追加します。

次の例では、Auto Scaling グループを更新して、 を優先してキャパシティ予約リソースグループをターゲットとして使用しますcapacity-reservations-first

aws autoscaling update-auto-scaling-group \ --auto-scaling-group-name my-asg \ --capacity-reservation-specification '{ "CapacityReservationPreference": "capacity-reservations-first", "CapacityReservationTarget": { "CapacityReservationResourceGroupArns": ["arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-group"] } }'

起動テンプレートからのターゲットCapacity Blocksまたは割り込み可能なキャパシティ予約

Launchlaunch-template-basedターゲティングを使用して、Auto Scaling グループからキャパシティ予約を消費Capacity Blocksまたは中断できます。このアプローチでは、起動テンプレートで市場タイプを設定し、Auto Scaling グループのターゲットとしてキャパシティ予約 ID を指定する必要があります。

Auto Scaling グループが混合インスタンスポリシーを使用している場合は、代わりに分散セグメントを使用することをお勧めします。これにより、Auto Scaling グループの 1 か所でキャパシティ予約を設定できます。Auto Scaling グループが単一のインスタンスタイプを使用する場合は、Launch-template-basedターゲティングが必要です。

起動テンプレートを設定する

起動テンプレートで、以下を設定します。

  • インスタンスマーケットタイプ (InstanceMarketOptions.MarketType) をcapacity-block、割り込み可能なキャパシティ予約Capacity Blockinterruptible-capacity-reservationの場合は に設定します。

  • キャパシティ予約ターゲット (CapacityReservationSpecification.CapacityReservationTarget.CapacityReservationId) をキャパシティ予約 ID に設定します。

次の例では、create-launch-template コマンドを使用して、 をターゲットとする起動テンプレートを作成しますCapacity Block。割り込み可能なキャパシティ予約の場合は、 MarketType 値を に置き換えますinterruptible-capacity-reservation

aws ec2 create-launch-template \ --launch-template-name my-cr-launch-template \ --launch-template-data '{ "ImageId": "ami-0abcdef1234567890", "InstanceType": "p5.48xlarge", "InstanceMarketOptions": { "MarketType": "capacity-block" }, "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationId": "cr-1234567890abcdef1" } } }'

起動テンプレートの作成の詳細については、Amazon EC2 ユーザーガイド」の「起動テンプレート」を参照してください。

Auto Scaling グループを作成する

起動テンプレートを使用する Auto Scaling グループを作成します。Auto Scaling グループは、キャパシティ予約と同じアベイラビリティーゾーンのサブネットで設定する必要があります。

次の例では、前のステップで作成した起動テンプレートを使用する Auto Scaling グループを作成します。

aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name my-cr-asg \ --launch-template LaunchTemplateName=my-cr-launch-template \ --min-size 0 --max-size 4 --desired-capacity 4 \ --vpc-zone-identifier "subnet-abc1234a"

詳細については、「起動テンプレートを使用して Auto Scaling グループを作成する」を参照してください。

操作のガイドライン

起動テンプレートベースのターゲティングを使用する場合は、次の運用ガイドラインを考慮してください。

  • 起動テンプレートバージョン – Auto Scaling グループを、 $Defaultまたは バージョンではなく特定の起動テンプレート$Latestバージョンにポイントします。これにより、予約期間中の一貫性が確保されます。

  • インスタンスの置き換え – の有効期限Capacity Blockが切れるか、中断可能なキャパシティ予約が再利用されると、Amazon EC2 はそこで実行されているインスタンスを終了します。Auto Scaling ヘルスチェッカーは終了を検出し、ヘルスチェックに失敗したインスタンスと同じ方法で代替インスタンスを起動しようとします。これらの終了のスケーリングアクティビティは、終了または停止されたことを示す Amazon EC2 ヘルスチェックに応答してサービスが停止されたことを示します。

  • の場合 Capacity Blocks – Capacity Block 予約終了時刻の 30 分以上前に Auto Scaling グループをゼロにスケールします。Amazon EC2 は、終了時刻の 30 分前に残りのインスタンスの終了を開始します。スケジュールされたスケーリングを使用して、予約の開始時にスケールアウトし、終了前にスケールインします。必要に応じてライフサイクルフックを追加して、強制終了ウィンドウの前にアプリケーションを適切にシャットダウンします。

  • 中断可能なキャパシティ予約の場合 – インスタンスは、キャパシティ所有者がキャパシティを再利用したときに 2 分間の通知で終了できます。正常なシャットダウンを処理するようにアプリケーションを設計します。Amazon EC2 は終了の 2 分前に通知を送信し、これらの通知に応答するようにカスタムオートメーションを設定できます。

Auto Scaling グループレベルでキャパシティ予約設定を上書きする

Auto Scaling グループでキャパシティ予約設定とターゲットを設定して、起動テンプレートの設定を上書きできます。キャパシティ予約の仕様の詳細については、「」を参照してくださいAuto Scaling グループからのターゲットキャパシティ予約

考慮事項

  • 混合インスタンスポリシー – Capacity Blocksまたは割り込み可能なキャパシティ予約のLaunch-template-basedターゲティングは、混合インスタンスポリシーではサポートされていません。これらの予約タイプを混合インスタンスポリシーで使用するには、「」を参照してくださいディストリビューションセグメントを使用して複数のキャパシティ予約タイプをターゲットにする

  • ウォームプール – 起動テンプレートが Capacity Blockまたは割り込み可能なキャパシティ予約をターゲットとしている場合、ウォームプールはサポートされません。

  • 起動テンプレートごとに 1 つのキャパシティ予約タイプ – 起動テンプレートは 1 つのキャパシティ予約タイプのみをターゲットにできます。1 つの Auto Scaling グループで複数のキャパシティ予約タイプをターゲットにするには、分散セグメントを使用します。