EC2 Auto Scaling による中断可能なキャパシティ予約 - Amazon EC2 Auto Scaling

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

EC2 Auto Scaling による中断可能なキャパシティ予約

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

開始するには、アカウント内のオンデマンドキャパシティ予約から未使用のキャパシティを割り当てることで、割り込み可能な予約を作成します。次に、起動テンプレートを作成し、割り込み可能なキャパシティ予約 ID と適切な市場タイプを指定します。最後に、作成した起動テンプレートを使用するように Auto Scaling グループを作成します。

注記
  • 混合インスタンスグループは、割り込み可能なキャパシティ予約ではサポートされていません。

  • 割り込み可能なキャパシティ予約がアカウントに表示され、新しい属性が にinterruptible設定されますtrue

操作のガイドライン

以下は、Auto Scaling グループで中断可能なキャパシティ予約を使用する際に従うべき基本的な運用ガイドラインです。

  • 割り込み可能なキャパシティ予約から起動されたインスタンスは、キャパシティが再利用されたときに 2 分間の通知で終了できます。正常なシャットダウンを処理するようにアプリケーションを設計します。

  • Amazon EC2 は、インスタンスを終了する 2 分前に EventBridge 通知を送信します。Auto Scaling はこれらのイベントに自動的に反応しませんが、中断通知に応答するようにカスタムオートメーションを設定できます。

  • 容量の再利用が原因でインスタンスが終了すると、Auto Scaling のヘルスチェッカーは終了を検出し、グループの設定に従って代替インスタンスを自動的に起動します。

  • 整合性を確保するために、 $Defaultまたは バージョンではなく、起動テンプレートの特定$Latestのバージョンをポイントします。

注記

割り込み可能なキャパシティ予約インスタンスが再利用されると、Auto Scaling グループのスケーリングアクティビティは と表示されますtaken out of service in response to an Amazon EC2 health check that indicated it had been terminated or stopped。Auto Scaling は、ヘルスチェックに失敗したインスタンスの場合と同じ方法でインスタンスの置き換えを試みます。

起動テンプレートで中断可能なキャパシティ予約を指定する

Auto Scaling グループの特定の中断可能なキャパシティ予約をターゲットとする起動テンプレートを作成するには、次のいずれかの方法を使用します。

Console
起動テンプレートで中断可能なキャパシティ予約を指定するには (コンソール)
  1. Amazon EC2 コンソールの https://console.aws.amazon.com/ec2/ を開いてください。

  2. 上部のナビゲーションバーで、割り込み可能なキャパシティ予約がある AWS リージョン を選択します。

  3. ナビゲーションペインで、[インスタンス] の [テンプレートの起動] を選択します。

  4. [起動テンプレートの作成] を選択し、起動テンプレートを作成します。必要に応じて、AMI の ID、インスタンスタイプ、およびその他の起動テンプレート設定を含めます。

  5. [高度な詳細] セクションを展開して、詳細設定を表示します。

  6. 購入オプションで、中断可能なキャパシティ予約を選択します。

  7. キャパシティ予約 では、ID でターゲットを選択し、キャパシティ予約 - ID でターゲット では、既存の割り込み可能なキャパシティ予約のキャパシティ予約 ID を選択します。

  8. 完了したら、[起動テンプレートの作成] を選択します。

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

AWS CLI
起動テンプレートで中断可能なキャパシティ予約を指定するには (AWS CLI)

次の create-launch-template コマンドを使用して、既存の割り込み可能なキャパシティ予約 ID を指定する起動テンプレートを作成します。各ユーザー入力プレースホルダーを独自の情報に置き換えます。

aws ec2 create-launch-template --launch-template-name my-template-for-interruptible-cr \ --version-description AutoScalingVersion1 --region us-east-2 \ --launch-template-data file://config.json
ヒント

このコマンドがエラーをスローする場合は、 を AWS CLI ローカルで最新バージョンに更新していることを確認してください。

config.json の内容:

{ "ImageId": "ami-04d5cc9b88example", "InstanceType": "t3.nano", "SecurityGroupIds": [ "sg-903004f88example" ], "KeyName": "MyKeyPair", "InstanceMarketOptions": { "MarketType": "interruptible-capacity-reservation" }, "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationId": "cr-02168da1478b509e0" } } }

出力例を次に示します。

{ "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b724example", "LaunchTemplateName": "my-template-for-interruptible-cr", "CreateTime": "2023-10-27T15:12:44.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

次の describe-launch-template-versions コマンドを使用して、起動テンプレートに関連付けられた割り込み可能なキャパシティ予約 ID を確認できます。

aws ec2 describe-launch-template-versions --launch-template-names my-template-for-interruptible-cr \ --region us-east-2
Auto Scaling グループレベルの設定

オプションで Auto Scaling グループレベルでキャパシティ予約設定を指定して、起動テンプレート設定を上書きできます。

  • キャパシティ予約設定: capacity-reservations-only 割り込み可能なキャパシティ予約でのみサポートされます。capacity-reservations-first 設定はサポートされていません。

  • ターゲット仕様: グループレベルで別の割り込み可能なキャパシティ予約 ID を指定して、起動テンプレート設定を上書きできます。

制限事項

  • 混合インスタンスポリシーは、割り込み可能なキャパシティ予約ではサポートされていません。

  • 起動テンプレートで、キャパシティ予約 ID とともに正しい市場タイプ (interruptible-capacity-reservation) を指定する必要があります。