

# VPC Lattice를 사용하는 서비스 생성
<a name="ecs-vpc-lattice-create-service"></a>

AWS Management Console 또는 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) 섹션을 참조하세요.
**참고**  
듀얼 스택 서비스 엔드포인트를 사용하면 AWS CLI, SDK 및 Amazon ECS API에서 IPv4 및 IPv6 모두를 통해 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 Management Console에서 VPC Lattice를 사용하는 서비스 생성
<a name="ecs-lattice-create-console"></a>

다음과 같은 단계에 따라 AWS Management Console을 사용하여 VPC Lattice로 서비스를 생성합니다.

1. [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)에서 콘솔을 엽니다.

1. 탐색 페이지에서 **Clusters**(클러스터)를 선택합니다.

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. **대상 그룹**에서 대상 그룹 또는 그룹을 선택합니다. 대상 그룹을 하나 이상 선택해야 하며 최대 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 서비스에는 여러 대상 그룹이 있을 수 있지만, 각 대상 그룹은 하나의 서비스에만 추가할 수 있습니다.
IPv6 전용 구성으로 서비스를 생성하려면 IP 주소 유형이 `IPv6`인 대상 그룹을 선택합니다.

1. 이제 VPC Lattice 콘솔로 이동하여 설정을 계속합니다. 여기에서는 리스너 기본 작업 또는 기존 VPC Lattice 서비스의 규칙에 새 대상 그룹을 포함합니다.

   자세한 내용은 [VPC Lattice 서비스를 위한 리스너 규칙](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로 서비스를 생성합니다. {{user input placeholder}}를 사용자의 정보로 바꿉니다.

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 파일은 Amazon ECS 서비스를 VPC Lattice 대상 그룹에 연결하는 데 사용하는 예제입니다. 다음 예제의 `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}}
   ```