機械学習ワークロードにはキャパシティブロックを使用してください。 - Amazon EC2 Auto Scaling

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

機械学習ワークロードにはキャパシティブロックを使用してください。

キャパシティブロックは、短期間の機械学習(ML)ワークロードをサポートするために、需要の高い GPU インスタンスをfuture 予約するのに役立ちます。

キャパシティブロックの概要とその仕組みについては、Linux インスタンス用 Amazon EC2 ユーザーガイドの「ML 用キャパシティブロック」を参照してください。

キャパシティブロックは次の EC2 AWS リージョンインスタンスタイプと以下で使用できます。

インスタンスのタイプ リージョン
p5.48xlarge 米国東部 (オハイオ)、米国東部 (バージニア北部)
p4d.24xlarge 米国東部 (オハイオ)、米国西部 (オレゴン)

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

操作のガイドライン

以下は、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 グループのインスタンスのHealth チェック」を参照してください。

起動テンプレートにキャパシティブロックを指定します。

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. 終了したら、「起動テンプレートの作成」を選択します。

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

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

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" } } } } ] }

制限事項

  • キャパシティブロックのサポートは、Auto Scaling グループに互換性のある設定がされている場合にのみ利用できます。混合インスタンスグループおよびウォームプールはサポートされていません。

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