機械学習ワークロードCapacity Blocksに を使用する - Amazon EC2 Auto Scaling

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

機械学習ワークロードCapacity Blocksに を使用する

Capacity Blocks は、短期間の機械学習 (ML) ワークロードをサポートするために、需要の高い GPU インスタンスを将来予約するのに役立ちます。

の概要Capacity Blocksと仕組みについては、「Amazon EC2 Capacity Blocks ユーザーガイド」の「 for ML」を参照してください。 Amazon EC2

の使用を開始するにはCapacity Blocks、特定のアベイラビリティーゾーンにキャパシティ予約を作成します。 Capacity Blocksは、単一のアベイラビリティーゾーンにtargetedキャパシティ予約として配信されます。起動テンプレートを作成するときは、キャパシティブロックの予約 ID とインスタンスタイプを指定します。次に、作成した起動テンプレートとキャパシティブロックのアベイラビリティーゾーンを使用するように Auto Scaling グループを更新します。キャパシティブロックの予約が開始されたら、スケジュールされたスケーリングを使用して、キャパシティブロックの予約と同じ数のインスタンスを起動します。

重要

Capacity Blocks は、特定の Amazon EC2 インスタンスタイプ および でのみ使用できます AWS リージョン。詳細については、Amazon EC2 ユーザーガイド」の「前提条件」を参照してください。

操作のガイドライン

以下は、Auto Scaling グループでキャパシティブロックを使用するに従うべき操作の基本的なガイドラインです。

  • キャパシティブロックの予約終了時刻の 30 分以上前に、Auto Scaling グループをゼロにスケールインします。Amazon EC2 は、キャパシティブロックの終了時刻の 30 分前に、実行中のインスタンスを終了します。

  • スケジュールされたスケーリングを使用して、適切な予約時間にスケールアウト (インスタンスの追加) およびスケールイン (インスタンスの削除) することをお勧めします。詳細については、「Amazon EC2 Auto Scaling のスケジュールされたスケーリング」を参照してください。

  • 必要に応じてライフサイクルフックを追加し、スケールインの際にインスタンス内でアプリケーションを正常にシャットダウンします。キャパシティブロックの予約終了時刻の 30 分前に Amazon EC2 がインスタンスの強制終了を開始するまでに、ライフサイクルアクションが完了できるよう十分な時間を確保してください。詳細については、「Amazon EC2 Auto Scaling のライフサイクルフック」を参照してください。

  • Auto Scaling グループが、予約期間全体を通して正しいバージョンの起動テンプレートを指定していることを確認してください。$Default または $Latest バージョンではなく、特定のバージョンの起動テンプレートを指定することをお勧めします。

注記

予約が終了するまでキャパシティブロックインスタンスを実行したままにし、Amazon EC2 がそれを再利用した場合、Auto Scaling グループのスケーリングアクティビティは、キャパシティブロックの最後に意図的に再利用された場合でもtaken out of service in response to an EC2 health check that indicated it had been terminated or stopped、「」と表示されます。同様に、Amazon EC2 Auto Scaling は、ヘルスチェックに失敗したインスタンスの場合と同じ方法でインスタンスの置き換えを試みます。詳細については、「Auto Scaling グループ内のインスタンスのヘルスチェック」を参照してください。

起動テンプレートでキャパシティブロックを指定する

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

Console
起動テンプレートでキャパシティブロックを指定するには (コンソール)
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. 上部のナビゲーションバーで、キャパシティブロックを作成した AWS リージョン を選択します。

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

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

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

  6. 購入オプション でキャパシティブロック を選択します。

  7. [キャパシティ予約][ID 別のターゲット] を選択し、[キャパシティ予約 - ID ごとのターゲット] で、既存のキャパシティブロックのキャパシティ予約 ID を選択します。

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

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

AWS CLI
起動テンプレートでキャパシティブロックを指定するには (AWS CLI)

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

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

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

config.json の内容。

{ "ImageId": "ami-04d5cc9b88example", "InstanceType": "p4d.24xlarge", "SecurityGroupIds": [ "sg-903004f88example" ], "KeyName": "MyKeyPair", "InstanceMarketOptions": { "MarketType": "capacity-block" }, "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationId": "cr-02168da1478b509e0" } } }

以下は出力例です。

{ "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b724example", "LaunchTemplateName": "my-template-for-capacity-block", "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-capacity-block \ --region us-east-2

以下は、キャパシティブロックの予約を指定する起動テンプレートの出力例です。

{ "LaunchTemplateVersions": [ { "LaunchTemplateId": "lt-068f72b724example", "LaunchTemplateName": "my-template-for-capacity-block", "VersionNumber": 1, "CreateTime": "2023-10-27T15:12:44.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersion": true, "LaunchTemplateData": { "ImageId": "ami-04d5cc9b88example", "InstanceType": "p5.48xlarge", "SecurityGroupIds": [ "sg-903004f88example" ], "KeyName": "MyKeyPair", "InstanceMarketOptions": { "MarketType": "capacity-block" }, "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationId": "cr-02168da1478b509e0" } } } } ] }

制限事項

  • のサポートCapacity Blocksは、Auto Scaling グループに互換性のある設定がある場合にのみ使用できます。混合インスタンスグループおよびウォームプールはサポートされていません。

  • 一度にターゲットにできるキャパシティブロックは 1 つだけです。