

# Amazon ECS マネージドインスタンスのキャパシティプロバイダーを作成する
<a name="create-capacity-provider-managed-instances"></a>

Amazon ECS マネージドインスタンスは、キャパシティプロバイダを使用してワークロードのコンピューティングキャパシティを管理します。デフォルトでは、Amazon ECS は、最もコスト最適化された汎用インスタンスタイプを自動的に選択するデフォルトのキャパシティプロバイダーを提供します。ただし、カスタムキャパシティプロバイダーを作成して、インスタンスタイプ、CPU 製造元、アクセラレータータイプ、その他の要件などのインスタンス属性を指定することもできます。

カスタムキャパシティプロバイダーは、属性ベースのインスタンスタイプの選択を使用しており、一連の属性としてインスタンス要件を表現できます。これらの要件は、一致するすべての Amazon EC2 インスタンスタイプに自動的に変換されるため、インスタンスタイプ設定の作成とメンテナンスが簡素化されます。インスタンスの要件と属性ベースの選択の詳細については、「*Amazon EC2 ユーザーガイド*」の「[Amazon EC2 Fleet の属性ベースのインスタンスタイプの選択](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html)」ドキュメントを参照してください。

## 前提条件
<a name="create-capacity-provider-managed-instances-prerequisites"></a>

作業を開始する前に、以下を完了していることを確認してください。
+ 使用するモニタリングのタイプを決定する。詳細については、「[Amazon ECS マネージドインスタンスの詳細なモニタリング](monitoring-managed-instances.md#detailed-monitoring-managed-instances)」を参照してください。
+ 既存のクラスターがあるか、クラスターを作成する予定である。詳細については、「[Amazon ECS マネージドインスタンスのクラスターを作成する](create-cluster-managed-instances.md)」を参照してください。
+ Amazon ECS マネージドインスタンスに必要な IAM ロールがあること。これには、以下が含まれます。
  + **インフラストラクチャロール** – Amazon ECS がユーザーに代わって AWS サービスを呼び出し、Amazon ECS マネージドインスタンスインフラストラクチャを管理できるようにします。

    詳細については、「[Amazon ECS インフラストラクチャ IAM ロール](infrastructure_IAM_role.md)」を参照してください。
  + **インスタンスプロファイル** – マネージドインスタンスで実行されている Amazon ECS コンテナエージェントと Docker デーモンへのアクセス許可を提供します。

    詳細については、「[Amazon ECS マネージドインスタンスのインスタンスプロファイル](managed-instances-instance-profile.md)」を参照してください。

インスタンスの選択方法を理解します。詳細については、「[Amazon ECS マネージドインスタンスにおけるインスタンス選択のベストプラクティス](managed-instances-instance-selection-best-practices.md)」を参照してください。

## コンソール手順
<a name="create-capacity-provider-managed-instances-console"></a>

**Amazon ECS マネージドインスタンスのキャパシティプロバイダーを作成するには (Amazon ECS コンソール)**

1. コンソール ([https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)) を開きます。

1. ナビゲーションバーから、使用するリージョンを選択します。

1. ナビゲーションペインで **[Clusters]** (クラスター) を選択してください。

1. **[クラスター]** ページでクラスターの名前を選択します。

1. クラスターのページで、**[インフラストラクチャ]** タブを選択します。

1. **[キャパシティプロバイダー]** セクションで、**[キャパシティプロバイダーを作成]** を選択します。

1. **[キャパシティプロバイダー設定]**で、以下を設定します。
   + **[キャパシティプロバイダー名]** に、一意のキャパシティプロバイダー名を入力します。
   + **[キャパシティプロバイダータイプ]** で、**[Amazon ECS マネージドインスタンス]** を選択します。

1. **[インスタンス設定]** で以下を設定します。
   + **[インスタンスプロファイル]** で、Amazon ECS マネージドインスタンス用に作成したインスタンスプロファイルロールを選択します。
   + **[インフラストラクチャロール]** で、Amazon ECS マネージドインスタンス用に作成したインフラストラクチャロールを選択します。

1. **[インスタンス要件]**で、インスタンスの属性を指定します。次の項目を任意で組み合わせて設定できます。
   + **[vCPU カウント]** – vCPU の数を指定します (`4` など。`8-16` のように範囲指定も可)。
   + **[メモリ (MiB)]** – メモリの量を MiB 単位で指定します (`8192` など。`16384-32768` のように範囲指定も可)。
   + **[インスタンスタイプ]** – 特定のインスタンスタイプを指定します (`m5.large,m5.xlarge,c5.large` など)。
   + **[CPU メーカー]** – `intel`、`amd`、`amazon-web-services` から選択します。
   + **[アクセラレーターのタイプ]** – `gpu`、`fpga`、`inference` などのアクセラレータータイプを指定します。
   + **[アクセラレーター数]** – アクセラレーターの数を指定します (`1` など。`2-4` のように範囲指定も可)。

1. **[詳細設定]** で、次のいずれかのモニタリングオプションを選択します。
   + CloudWatch でステータスチェックメトリクスを送信する場合は、**[基本]** を選択します。
   + CloudWatch ですべてのメトリクスを送信する場合は、**[詳細]** を選択します。

1. (オプション) キャパシティプロバイダーを識別しやすくするには、**[タグ]** を展開し、タグを設定します。

   キャパシティプロバイダーからマネージドリソース (キャパシティプロバイダーから起動されたインスタンスなど) へのタグの伝播を有効にするには、**[タグの伝播元]** で **[キャパシティプロバイダー]** を選択します。

   [タグの追加] [**タグの追加**] を選択して、以下を実行します。
   + [**キー**] にはキー名を入力します。
   + [**値**] にキー値を入力します。

1. **[作成]** を選択します。

## AWS CLI の手順
<a name="create-capacity-provider-managed-instances-cli"></a>

AWS CLI を使用して、Amazon ECS マネージドインスタンスのキャパシティプロバイダーを作成できます。AWS CLI の最新バージョンを使用する。最新のバージョンにアップグレードする方法については、「[AWS CLI の最新バージョンをインストールまたは更新](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)」を参照してください。

**Amazon ECS マネージドインスタンスのキャパシティプロバイダーを作成するには (AWS CLI)**

1. 次のコマンドを実行します。

   ```
   aws ecs create-capacity-provider --cli-input-json file://capacity-provider-definition.json
   ```

   以下のように、`capacity-provider-definition.json` を使用して、基本的なインスタンス要件、インスタンスストレージサイズを指定し、タグ伝播を有効にすることができます。

   ```
   {
       "name": "my-managed-instances-provider",
       "cluster": "my-cluster",
       "tags": [ 
           { 
               "key": "version",
               "value": "test"
           }
       ],    
       "managedInstancesProvider": {
           "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole",
           "instanceLaunchTemplate": {
               "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceRole",
               "instanceRequirements": {
                   "vCpuCount": {
                       "min": 4,
                       "max": 8
                   },
                   "memoryMiB": {
                       "min": 8192,
                       "max": 16384
                   }
               },
               "networkConfiguration": {
                   "subnets": [
                       "subnet-abcdef01234567",
                       "subnet-bcdefa98765432"
                   ],
                   "securityGroups": [
                       "sg-0123456789abcdef"
                   ]
               },
               "storageConfiguration": {
                   "storageSizeGiB": 100
               },
               "monitoring": "basic"
           },
           "propagateTags": "CAPACITY_PROVIDER"
       }
   }
   ```

1. キャパシティプロバイダーが正常に作成されたことを確認します。

   ```
   aws ecs describe-capacity-providers \
       --capacity-providers my-managed-instances-provider
   ```

## 次のステップ
<a name="capacity-provider-managed-instances-next-steps"></a>

キャパシティプロバイダーの作成後は、サービスの作成時またはタスクの実行時に使用できます。
+ サービスでキャパシティプロバイダーを使用する場合は、「[Amazon ECS のローリング更新デプロイの作成](create-service-console-v2.md)」を参照してください。
+ スタンドアロンタスクでキャパシティプロバイダーを使用する場合は、「[Amazon ECS タスクとしてのアプリケーションの実行](standalone-task-create.md)」を参照してください。