

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

# 機械学習ワークロードにCapacity Blocksを使用する
<a name="launch-template-capacity-blocks"></a>

Capacity Blocksを使用すると、短期間の機械学習 (ML) ワークロードをサポートするために、非常に需要の高い GPU インスタンスを将来の日付で予約できます。

Capacity Blocksとその仕組みの概要については、「*Amazon EC2 ユーザーガイド*」の「[ML 用のCapacity Blocks](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html)」を参照してください。

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

**重要**  
Capacity Blocks は、特定の Amazon EC2 インスタンスタイプ および でのみ使用できます AWS リージョン。詳細については、「*Amazon EC2 ユーザーガイド*」の「[前提条件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-blocks-using.html#capacity-blocks-prerequisites)」を参照してください。

**Topics**
+ [操作のガイドライン](#capacity-blocks-operational-guidelines)
+ [起動テンプレートでキャパシティブロックを指定する](#specify-a-capacity-block-in-your-launch-template)
+ [制限事項](#capacity-blocks-limitations)
+ [関連リソース](#capacity-blocks-related-resources)

## 操作のガイドライン
<a name="capacity-blocks-operational-guidelines"></a>

以下は、Auto Scaling グループでキャパシティブロックを使用するに従うべき操作の基本的なガイドラインです。
+ キャパシティブロックの予約終了時刻の 30 分以上前に、Auto Scaling グループをゼロにスケールインします。Amazon EC2 は、キャパシティブロックの終了時刻の 30 分前に、実行中のインスタンスを終了します。
+ スケジュールされたスケーリングを使用して、適切な予約時刻にスケールアウト (インスタンスの追加) およびスケールイン (インスタンスの削除) することをお勧めします。詳細については、「[Amazon EC2 Auto Scaling のスケジュールされたスケーリング](ec2-auto-scaling-scheduled-scaling.md)」を参照してください。
+ 必要に応じてライフサイクルフックを追加し、スケールインの際にインスタンス内でアプリケーションを正常にシャットダウンします。キャパシティブロックの予約終了時刻の 30 分前に Amazon EC2 がインスタンスの強制終了を開始する*までに*、ライフサイクルアクションが完了できるよう十分な時間を確保してください。詳細については、「[Amazon EC2 Auto Scaling のライフサイクルフック](lifecycle-hooks.md)」を参照してください。
+ 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 グループでのインスタンスのヘルスチェック](ec2-auto-scaling-health-checks.md)」を参照してください。

## 起動テンプレートでキャパシティブロックを指定する
<a name="specify-a-capacity-block-in-your-launch-template"></a>

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

------
#### [ Console ]

**起動テンプレートでキャパシティブロックを指定するには (コンソール）**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

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

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

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

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

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

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

   起動テンプレートを使用した Auto Scaling グループの作成について詳しくは、「[起動テンプレートを使用して Auto Scaling グループを作成する](create-asg-launch-template.md)」を参照してください。

------
#### [ AWS CLI ]

**起動テンプレートでキャパシティブロックを指定するには (AWS CLI）**  
次の [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html) コマンドを使用して、既存のキャパシティブロックの予約 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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-template-versions.html) コマンドを使用して、起動テンプレートに関連付けられたキャパシティブロックの予約 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"
                    }
                }
            }
        }
    ]
}
```

------

## 制限事項
<a name="capacity-blocks-limitations"></a>
+ Capacity Blocksのサポートは、Auto Scaling グループに互換性のある設定がされている場合にのみ利用できます。混合インスタンスグループおよびウォームプールはサポートされていません。
+ 一度にターゲットにできるキャパシティブロックは 1 つだけです。

## 関連リソース
<a name="capacity-blocks-related-resources"></a>
+ P5 インスタンスを使用するための前提条件と推奨事項については、「*Amazon EC2 ユーザーガイド*」の「[P5 インスタンスの使用を開始する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/p5-instances-started.html)」を参照してください。
+ Amazon EKS は、Amazon EKS クラスターでの短期間の機械学習 (ML) ワークロードをサポートするために、Capacity Blocksの使用をサポートしています。詳細については、「**Amazon EKS ユーザーガイド**」の「[ML 用のCapacity Blocks](https://docs.aws.amazon.com/eks/latest/userguide/capacity-blocks.html)」を参照してください。
+ Capacity Blocksは、サポートされているインスタンスタイプとリージョンで使用できます。ただし、オンデマンドキャパシティ予約では、その他のインスタンスタイプとリージョンのキャパシティを柔軟に予約できます。オンデマンドキャパシティ予約オプションの使用方法を示すチュートリアルについては、「[キャパシティ予約を使用して特定のアベイラビリティーゾーンでキャパシティを予約する](use-ec2-capacity-reservations.md)」を参照してください。