

# VPC Lattice を使用するサービスを作成する
<a name="ecs-vpc-lattice-create-service"></a>

AWS マネジメントコンソールまたは AWS CLI のいずれかを使用して、VPC Lattice でサービスを作成できます。

## 前提条件
<a name="create-ecs-vpc-lattice-prereqs"></a>

個のチュートリアルを開始する前に、次の前提条件を満たしていることを確認します。
+ AWS CLI の最新バージョンがインストールされ、設定されていること。詳細については、「[AWS Command Line Interface のインストール](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)」を参照してください。
**注記**  
デュアルスタックサービスエンドポイントを使用することで、IPv4 と IPv6 の両方を介して AWS CLI、SDK、および Amazon ECS API から Amazon ECS とやり取りできます。詳細については、「[Amazon ECS デュアルスタックエンドポイントの使用](dual-stack-endpoint.md)」を参照してください。
+ 「[Amazon ECS を使用するようにセットアップする](get-set-up-for-amazon-ecs.md)」で説明されているステップが完了しました。
+ IAM ユーザーに [AmazonECS\_FullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonECS_FullAccess) IAM ポリシー例で指定されている必要なアクセス権限があること。

## AWS マネジメントコンソールで VPC Lattice を使用するサービスを作成する
<a name="ecs-lattice-create-console"></a>

AWS マネジメントコンソールを使用して VPC Lattice でサービスを作成するには、次のステップに従います。

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

1. ナビゲーションページで、**[クラスター]** を選択します。

1. **[クラスター]** ページで、サービスを作成するクラスターを選択します。

1. **[Services]** (サービス) タブから、**[Create]** (作成) を選択します。

   以前にサービスを作成したことがない場合は、「[コンソールを使用した Amazon ECS サービスの作成](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service-console-v2.html)」のステップに従い、VPC Lattice セクションまで進んだら、これらのステップを続行します。

1. ボタンをオンにして **[VPC Lattice を有効にする]** ことを選択します。

1. 既存のロールを使用するには、**[Amazon ECS の ECS インフラストラクチャロール]** で、VPC Lattice ターゲットグループの作成時に使用する作成済みのロールを選択します。新しいロールを作成するには、**[ECS インフラストラクチャロールの作成]** を選択します。

1. **VPC** を選択します。

   **[VPC]** は、タスク定義を登録したときに選択したネットワークモードによって異なります。EC2 起動タイプで `host` または `network` のモードを使用する場合は、VPC を選択します。

   `awsvpc` モードでは、VPC は **[ネットワーク]** で選択した VPC に基づいて自動的に選択され、変更することはできません。

1. **[ターゲットグループ]** で、1 つまたは複数のターゲットグループを選択します。少なくとも 1 つのターゲットグループを選択する必要があります。最大 5 つのターゲットグループを選択できます。追加のターゲットグループを追加するには、**[ターゲットグループの追加]** を選択します。選択した各ターゲットグループの **[ポート名]**、**[プロトコル]**、および **[ポート]** を選択します。ターゲットグループを削除するには、**[削除]** を選択します。
**注記**  
既存のターゲットグループを追加する場合は、AWS CLI を使用する必要があります。AWS CLI を使用してターゲットグループを追加する方法については、「*AWS Command Line Interface リファレンス*」の「[register-targets](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/register-targets.html)」を参照してください。
VPC Lattice サービスは複数のターゲットグループを持つことができますが、各ターゲットグループは 1 つのサービスにのみ追加できます。
IPv6 専用設定でサービスを作成するには、IP アドレスタイプが `IPv6` のターゲットグループを選択します。

1. この時点で、VPC Lattice コンソールに移動してセットアップを続行します。ここでは、リスナーのデフォルトアクションまたは既存の VPC Lattice サービスのルールに新しいターゲットグループを含めます。

   詳細については、「[Listener rules for your VPC Lattice service](https://docs.aws.amazon.com/vpc-lattice/latest/ug/listener-rules.html)」を参照してください。

**重要**  
セキュリティグループにインバウンドルール `vpc-lattice` プレフィックスを許可しないと、タスクやヘルスチェックが失敗する可能性があります。

## AWS CLIで VPC Lattice を使用するサービスを作成する
<a name="ecs-lattice-create-cli"></a>

AWS CLI を使用して、VPC Lattice でサービスを作成します。各{{ユーザー入力プレースホルダー}}を独自の情報に置き換えます。

1. ターゲットグループ設定ファイルを作成します。以下の例は `tg-config.json` という名前です

   ```
   {
       "ipAddressType": "IPV4",
       "port": 443,
       "protocol": "HTTPS",
       "protocolVersion": "HTTP1",
       "vpcIdentifier": "{{vpc-f1663d9868EXAMPLE}}"
   }
   ```

1. 以下のコマンドを使用して、VPC Lattice ターゲットグループを作成します。

   ```
   aws vpc-lattice create-target-group \
       --name my-lattice-target-group-ip \
       --type IP \
       --config file://{{tg-config.json}}
   ```
**注記**  
IPv6 専用設定でサービスを作成するには、IP アドレスタイプが `IPv6` のターゲットグループを作成します。詳細については、「*AWS CLI コマンドリファレンス*」の「[create-log-group](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/create-target-group.html)」を参照してください。

   出力の例:

   ```
   {
       "arn": "arn:aws:vpc-lattice:us-east-2:123456789012:targetgroup/tg-0eaa4b9ab4EXAMPLE",
       "config": {
           "healthCheck": {
               "enabled": true,
               "healthCheckIntervalSeconds": 30,
               "healthCheckTimeoutSeconds": 5,
               "healthyThresholdCount": 5,
               "matcher": {
                   "httpCode": "200"
               },
               "path": "/",
               "protocol": "HTTPS",
               "protocolVersion": "HTTP1",
               "unhealthyThresholdCount": 2
           },
           "ipAddressType": "IPV4",
           "port": 443,
           "protocol": "HTTPS",
           "protocolVersion": "HTTP1",
           "vpcIdentifier": "vpc-f1663d9868EXAMPLE"
       },
       "id": "tg-0eaa4b9ab4EXAMPLE",
       "name": "my-lattice-target-group-ip",
       "status": "CREATE_IN_PROGRESS",
       "type": "IP"
   }
   ```

1. 以下の {{ecs-service-vpc-lattice.json}} という名前の JSON ファイルは、VPC Lattice ターゲットグループに Amazon ECS サービスをアタッチするために使用される例です。次の例の `portName` は、タスク定義の `portMappings` プロパティの `name` フィールドで定義したものと同じです。

   ```
   {
       "serviceName": "{{ecs-service-vpc-lattice}}",
       "taskDefinition": "{{ecs-task-def}}",
           "vpcLatticeConfigurations": [
           {
               "targetGroupArn": "arn:aws:vpc-lattice:{{us-west-2:123456789012}}:targetgroup/{{tg-0eaa4b9ab4EXAMPLE}}",
               "portName": "{{testvpclattice}}",
               "roleArn": "arn:aws:iam::{{123456789012}}:role/ecsInfrastructureRoleVpcLattice"
           }
       ],
       "desiredCount": {{5}},
       "role": "{{ecsServiceRole}}"
   }
   ```

   次のコマンドを使用して Amazon ECS サービスを作成し、前述の JSON の例を使用して VPC Lattice ターゲットグループにアタッチします。

   ```
   aws ecs create-service \
       --cluster {{clusterName}} \
       --serviceName {{ecs-service-vpc-lattice}} \
       --cli-input-json file://{{ecs-service-vpc-lattice.json}}
   ```