

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

# チュートリアル: Amazon ECS マネージドインスタンスを使用してマネージドコンピューティング環境を作成する
<a name="create-compute-environment-ecs-managed-instances"></a>

このチュートリアルでは、Amazon ECS マネージドインスタンスを使用する AWS Batch コンピューティング環境を作成する方法について説明します。Amazon ECS はユーザーに代わって Amazon EC2 インスタンスを管理します。最大容量とオプションのインスタンス制約を指定し、Amazon ECS はプロビジョニング、スケーリング、終了を処理します。

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

Amazon ECS Managed Instances コンピューティング環境を作成する前に、次のものが必要です。
+ **Amazon ECS インフラストラクチャロール** — Amazon ECS がユーザーに代わって Amazon EC2 インスタンスを管理するために引き受ける IAM ロール。ロールには、 の信頼ポリシーが必要です`ecs.amazonaws.com`。詳細については、[「Amazon Elastic Container Service デベロッパーガイド」の「Amazon ECS インフラストラクチャ IAM ロール](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure-iam-roles.html)」を参照してください。 **
+ **Amazon EC2 インスタンスプロファイル** — `AmazonECSInstanceRolePolicyForManagedInstances`管理ポリシーを使用するインスタンスプロファイル。信頼ポリシーでは、 `ec2.amazonaws.com`がロールを引き受けることを許可する必要があります。
+ IAM プリンシパルには、 条件のインフラストラクチャロールに対する`iam:PassRole`アクセス許可が必要です`iam:PassedToService: ecs.amazonaws.com`。
+ アウトバウンドインターネットアクセス (パブリック IP 割り当てまたは NAT ゲートウェイ) を持つサブネットを持つ VPC。

## Amazon ECS マネージドインスタンスのコンピューティング環境の作成 (コンソール)
<a name="create-ce-ecs-managed-instances-console"></a>

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

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

1. 左側のナビゲーションペインで、**環境**を選択します。

1. **「環境の作成**」を選択し、**「コンピューティング環境の作成**」を選択します。

1. **コンピューティング環境タイプで**、**ECS マネージドインスタンス**を選択します。

1. **Compute 環境名**には、一意の名前を入力します。名前は最大 128 文字で、大文字と小文字、数字、ハイフン (-)、アンダースコア (\_) を含めることができます。

1. **最大 vCPUs**、コンピューティング環境がスケーリングできる vCPUsの最大数を入力します。

1. **インフラストラクチャロール**で、前提条件として作成した Amazon ECS インフラストラクチャロールを選択します。

1. **インスタンスプロファイル**で、前提条件として作成した Amazon EC2 インスタンスプロファイルを選択します。

1. **ネットワーク**セクションで、次の操作を行います。

   1. **VPC** の場合は、インスタンスを起動する VPC を選択します。

   1. **サブネット**で、1 つ以上のサブネットを選択します。サブネットには、アウトバウンドのインターネットアクセスが必要です。

   1. **セキュリティグループ**で、インスタンスに関連付けるセキュリティグループを 1 つ以上選択します。

1. (オプション) **キャパシティタイプ**で、**スポット**を選択して、耐障害性のあるワークロードのコスト削減のためにスポットインスタンスを使用します。デフォルトは**オンデマンド**です。

1. (オプション) **許可されたインスタンスタイプ**で、Amazon ECS が起動できるインスタンスタイプを指定します。を指定しない場合、使用可能なすべてのインスタンスタイプが対象になります。

1. **[コンピューティング環境の作成]** を選択します。

## Amazon ECS マネージドインスタンスのコンピューティング環境の作成 (AWS CLI)
<a name="create-ce-ecs-managed-instances-cli"></a>

`create-compute-environment` コマンドを使用して、Amazon ECS Managed Instances コンピューティング環境を作成します。

### 基本的な の例
<a name="create-ce-ecs-managed-instances-cli-basic"></a>

次の の例では、必要最小限の設定でコンピューティング環境を作成します。Amazon ECS は、使用可能な任意のインスタンスタイプを使用できます。

```
$ aws batch create-compute-environment \
    --compute-environment-name {{my-managed-instances-ce}} \
    --type MANAGED \
    --state ENABLED \
    --compute-resources '{
      "type": "ECS_MANAGED_INSTANCES",
      "maxvCpus": 256,
      "managedInstancesProvider": {
        "infrastructureRoleArn": "arn:aws:iam::{{123456789012}}:role/{{ecsInfrastructureRole}}",
        "instanceLaunchTemplate": {
          "ec2InstanceProfileArn": "arn:aws:iam::{{123456789012}}:instance-profile/{{ecsInstanceProfile}}",
          "networkConfiguration": {
            "subnets": ["{{subnet-abcde012}}", "{{subnet-bcde012a}}"],
            "securityGroups": ["{{sg-abcde012}}"]
          }
        }
      }
    }'
```

### 特定のインスタンスタイプのスポット
<a name="create-ce-ecs-managed-instances-cli-spot"></a>

次の の例では、特定のインスタンスタイプに制限された Spot-backed コンピューティング環境を作成します。

```
$ aws batch create-compute-environment \
    --compute-environment-name {{my-spot-managed-instances-ce}} \
    --type MANAGED \
    --state ENABLED \
    --compute-resources '{
      "type": "ECS_MANAGED_INSTANCES",
      "maxvCpus": 1000,
      "managedInstancesProvider": {
        "infrastructureRoleArn": "arn:aws:iam::{{123456789012}}:role/{{ecsInfrastructureRole}}",
        "instanceLaunchTemplate": {
          "ec2InstanceProfileArn": "arn:aws:iam::{{123456789012}}:instance-profile/{{ecsInstanceProfile}}",
          "networkConfiguration": {
            "subnets": ["{{subnet-abcde012}}", "{{subnet-bcde012a}}"],
            "securityGroups": ["{{sg-abcde012}}"]
          },
          "instanceRequirements": {
            "allowedInstanceTypes": ["m5.large", "m5.xlarge", "m6i.large", "m6i.xlarge"]
          },
          "capacityOptionType": "SPOT"
        }
      }
    }'
```

出力:

```
{
    "computeEnvironmentName": "my-spot-managed-instances-ce",
    "computeEnvironmentArn": "arn:aws:batch:us-east-1:123456789012:compute-environment/my-spot-managed-instances-ce"
}
```

### キャパシティ予約あり
<a name="create-ce-ecs-managed-instances-cli-reservations"></a>

次の の例では、予測可能な容量のオンデマンドキャパシティ予約をターゲットとするコンピューティング環境を作成します。

```
$ aws batch create-compute-environment \
    --compute-environment-name {{my-reserved-managed-instances-ce}} \
    --type MANAGED \
    --state ENABLED \
    --compute-resources '{
      "type": "ECS_MANAGED_INSTANCES",
      "maxvCpus": 512,
      "managedInstancesProvider": {
        "infrastructureRoleArn": "arn:aws:iam::{{123456789012}}:role/{{ecsInfrastructureRole}}",
        "instanceLaunchTemplate": {
          "ec2InstanceProfileArn": "arn:aws:iam::{{123456789012}}:instance-profile/{{ecsInstanceProfile}}",
          "networkConfiguration": {
            "subnets": ["{{subnet-abcde012}}", "{{subnet-bcde012a}}"],
            "securityGroups": ["{{sg-abcde012}}"]
          },
          "instanceRequirements": {
            "allowedInstanceTypes": ["m5.xlarge", "m5.2xlarge"]
          },
          "capacityReservations": {
            "reservationGroupArn": "arn:aws:ec2:{{us-east-1}}:{{123456789012}}:capacity-reservation-group/{{my-reservation-group}}",
            "reservationPreference": "RESERVATIONS_FIRST"
          }
        }
      }
    }'
```

## 次の手順
<a name="create-ce-ecs-managed-instances-next-steps"></a>

コンピューティング環境を作成したら、次の手順を実行してジョブを実行します。

1. ジョブキューを作成し、Amazon ECS Managed Instances コンピューティング環境を関連付けます。詳細については、「[ジョブキューを作成する](create-job-queue.md)」を参照してください。

1. を `platformCapabilities`に設定`MANAGED_INSTANCES`し、 を使用してジョブ定義を作成します`ecsProperties`。詳細については、「[Amazon ECS マネージドインスタンスのジョブ定義](ecs-managed-instances-job-definitions.md)」を参照してください。

1. ジョブキューにジョブを送信します。詳細については、「[チュートリアル: ジョブを送信する](submit_job.md)」を参照してください。