Amazon ECS Service Connect와 공유 AWS Cloud Map 네임스페이스 사용

Amazon ECS Service Connect와 공유 AWS Cloud Map 네임스페이스 사용

Service Connect용 공유 AWS Cloud Map 네임스페이스를 설정하는 과정은 다음과 같은 단계로 이루어집니다. 이 글에서는 공유 네임스페이스를 만들고 서비스에 사용하는 방법을 알아봅니다.

출처: 문서

본문

Service Connect용 공유 AWS Cloud Map 네임스페이스를 설정하는 과정은 다음 단계로 이루어집니다: 네임스페이스 소유자가 네임스페이스를 만들고, AWS Resource Access Manager(AWS RAM)를 통해 공유하며, 소비자(consumer)가 리소스 공유를 수락하고, 소비자가 Service Connect가 공유 네임스페이스를 사용하도록 구성합니다.

1단계: AWS Cloud Map 네임스페이스 생성 (Step 1: Create the AWS Cloud Map namespace)

네임스페이스 소유자는 다른 계정과 공유할 AWS Cloud Map 네임스페이스를 만듭니다.

AWS Management Console을 사용해 공유용 네임스페이스를 만들려면

  1. https://console.aws.amazon.com/cloudmap/ 에서 AWS Cloud Map 콘솔을 엽니다.
  2. Create namespace를 선택합니다.
  3. Namespace name을 입력합니다. 이 이름은 모든 참여 계정의 서비스에서 사용됩니다.
  4. Namespace type에서 사용 사례에 적합한 유형을 선택합니다:
    • API calls — DNS 기능 없이 서비스 검색을 위한 HTTP 네임스페이스.
    • API calls and DNS queries in VPCs — VPC에서 프라이빗 DNS 쿼리로 서비스 검색을 위한 프라이빗 DNS 네임스페이스.
    • API calls and public DNS queries — 퍼블릭 DNS 쿼리로 서비스 검색을 위한 퍼블릭 DNS 네임스페이스.
  5. Create namespace를 선택합니다.

2단계: AWS RAM을 사용해 네임스페이스 공유 (Step 2: Share the namespace using AWS RAM)

네임스페이스 소유자는 AWS RAM을 사용해 네임스페이스를 다른 AWS 계정과 공유합니다.

AWS RAM 콘솔을 사용해 네임스페이스를 공유하려면

  1. https://console.aws.amazon.com/ram/ 에서 AWS RAM 콘솔을 엽니다.
  2. Create resource share를 선택합니다.
  3. Name에 리소스 공유에 대한 설명적인 이름을 입력합니다.
  4. Resources 섹션에서:
    • Resource type에서 Cloud Map Namespaces를 선택합니다.
    • 이전 단계에서 만든 네임스페이스를 선택합니다.
  5. Managed permissions 섹션에서 AWSRAMPermissionCloudMapECSFullPermission을 지정합니다.
    • 중요: 네임스페이스와 함께 Service Connect가 제대로 작동하려면 AWSRAMPermissionCloudMapECSFullPermission 관리형 권한을 사용하여 네임스페이스를 공유해야 합니다.
  6. Principals 섹션에서 네임스페이스를 공유할 AWS 계정을 지정합니다. 계정 ID나 조직 단위(OU) ID를 입력할 수 있어요.
  7. Create resource share를 선택합니다.

3단계: 리소스 공유 수락 (Step 3: Accept the resource share)

네임스페이스 소비자 계정은 공유 네임스페이스를 사용하려면 리소스 공유 초대를 수락해야 합니다.

AWS RAM 콘솔을 사용해 리소스 공유 초대를 수락하려면

  1. 소비자 계정에서 https://console.aws.amazon.com/ram/ 에서 AWS RAM 콘솔을 엽니다.
  2. 탐색 창에서 Shared with me, 그다음 Resource shares를 선택합니다.
  3. 리소스 공유 초대를 선택하고 Accept resource share를 선택합니다.
  4. 수락한 후 리소스 세부 정보에서 공유 네임스페이스 ARN을 기록합니다. Service Connect 서비스를 구성할 때 이 ARN을 사용합니다.

4단계: 공유 네임스페이스로 Amazon ECS 서비스 구성 (Step 4: Configure an Amazon ECS service with the shared namespace)

공유 네임스페이스를 수락한 후 네임스페이스 소비자는 Amazon ECS 서비스가 공유 네임스페이스를 사용하도록 구성할 수 있어요. 구성은 일반 네임스페이스 사용과 유사하지만, 이름 대신 네임스페이스 ARN을 지정해야 합니다. 자세한 서비스 생성 절차는 Amazon ECS 롤링 업데이트 배포 생성 문서를 참고하세요.

AWS Management Console을 사용해 공유 네임스페이스로 서비스를 만들려면

  1. 콘솔을 https://console.aws.amazon.com/ecs/v2 에서 엽니다.
  2. Clusters 페이지에서 서비스를 만들 클러스터를 선택합니다.
  3. Services 아래에서 Create를 선택합니다.
  4. 워크로드에 따라 다른 세부 정보를 입력한 후 Service Connect 섹션에서 Use Service Connect를 선택합니다.
  5. Namespace에 공유 네임스페이스의 전체 ARN을 입력합니다. ARN 형식은 arn:aws:servicediscovery:region:account-id:namespace/namespace-id 입니다.
  6. 서비스 유형(클라이언트 또는 클라이언트-서버)에 필요한 나머지 Service Connect 설정을 구성합니다.
  7. 서비스 생성 프로세스를 완료합니다.

또한 serviceConnectConfiguration의 namespace 파라미터에 공유 네임스페이스 ARN을 지정하여 AWS CLI 또는 AWS SDK로 서비스를 구성할 수도 있습니다.

aws ecs create-service \
    --cluster my-cluster \
    --service-name my-service \
    --task-definition my-task-def \
    --service-connect-configuration '{
        "enabled": true,
        "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcdef1234567890",
        "services": [{
            "portName": "web",
            "discoveryName": "my-service",
            "clientAliases": [{
                "port": 80,
                "dnsName": "my-service"
            }]
        }]
    }'

더 알아보기 (Learn more)

  • Service Connect 구성에 대한 자세한 내용은 AWS 개발자 가이드의 관련 문서를 참고하세요.