Service Connect - Amazon Elastic Container Service

Service Connect

Amazon ECS Service Connect는 서비스 간 통신 관리를 Amazon ECS 구성으로 제공합니다. Amazon ECS에서 서비스 검색과 서비스 메시를 모두 구축하여 이를 수행합니다. 이를 통해 사용자가 서비스 배포, Amazon VPC DNS 구성에 의존하지 않는 네임스페이스 내에서 서비스를 참조하는 통합된 방법, Amazon ECS의 모든 애플리케이션을 모니터링하기 위한 표준화된 지표 및 로그로 관리하는 각 Amazon ECS 서비스 내부에 완전한 구성이 제공됩니다. Amazon ECS Service Connect는 Amazon ECS 서비스만 상호 연결합니다.

다음 다이어그램에서는 VPC의 서브넷 2개와 서비스 2개가 있는 서비스 연결 네트워크 예제를 보여줍니다. 클라이언트 서비스는 각 서브넷에서 1개 작업으로 WordPress를 실행합니다. 서버 서비스는 각 서브넷에서 1개 작업으로 MySQL을 실행합니다. 각 서비스가 2개의 서브넷에 분산된 여러 작업을 실행하므로 두 서비스 모두 가용성이 높고 작업 및 가용 영역 문제에 대한 복원력이 뛰어납니다. 실선 화살표는 WordPress에서 MySQL로의 연결을 나타냅니다. 예를 들어, mysql --host=mysql CLI 명령은 작업의 WordPress 컨테이너 내에서 IP 주소 172.31.16.1로 실행됩니다. 이 명령은 MySQL의 기본 포트에서 약식 이름 mysql을 사용합니다. 이 이름과 포트는 동일한 작업의 서비스 연결 프록시에 연결합니다. WordPress 작업의 프록시는 라운드 로빈 로드 밸런싱과 이상값 탐지의 이전 실패 정보를 사용하여 연결할 MySQL 작업을 선택합니다. 다이어그램에서 실선 화살표로 표시된 것처럼 프록시는 IP 주소 172.31.16.2를 사용하여 MySQL 작업의 두 번째 프록시에 연결합니다. 두 번째 프록시는 동일한 작업의 로컬 MySQL 서버에 연결합니다. 두 프록시 모두 Amazon ECS 및 Amazon CloudWatch 콘솔에서 그래프로 확인할 수 있는 연결 성능을 보고하므로 동일한 방법으로 모든 종류의 애플리케이션에서 성능 지표를 얻을 수 있습니다.

최소 HA 서비스를 표시하는 서비스 연결 네트워크 예제
Service Connect 구성 단계 개요

다음 단계를 따라 관련 서비스 그룹에 대해 Service Connect를 구성합니다.

중요
  • Amazon ECS Service Connect에서 사용자 계정에 AWS Cloud Map 서비스를 생성합니다. 인스턴스를 수동으로 등록/등록 취소하거나, 인스턴스 속성을 변경하거나, 서비스를 삭제하여 이러한 AWS Cloud Map 리소스를 수정하면 애플리케이션 트래픽 또는 후속 배포에서 예상치 못한 동작이 발생할 수 있습니다.

  • Amazon ECS Service Connect는 작업 정의에서 링크를 지원하지 않습니다.

  1. 작업 정의의 포트 매핑에 포트 이름을 추가합니다. 또한 애플리케이션의 계층 7 프로토콜을 식별하여 추가 지표를 얻을 수 있습니다.

  2. AWS Cloud Map 네임스페이스로 ECS 클러스터를 생성하거나 네임스페이스를 별도로 생성합니다. 간단한 구성을 위해 네임스페이스에 원하는 이름을 사용하여 Amazon ECS 클러스터를 생성하고 네임스페이스에 대해 동일한 이름을 지정합니다. 이 경우 Amazon ECS는 필요한 구성으로 새 HTTP 네임스페이스를 생성합니다. Amazon ECS Service Connect는 Amazon Route 53에서 DNS 호스팅 영역을 사용하거나 생성하지 않습니다.

  3. 네임스페이스 내에 Service Connect 엔드포인트를 생성하도록 서비스를 구성합니다.

  4. 서비스를 배포하여 엔드포인트를 생성합니다. Amazon ECS는 각 작업에 Service Connect 프록시 컨테이너를 추가하고 AWS Cloud Map에 Service Connect 엔드포인트를 생성합니다. 이 컨테이너는 작업 정의에 구성되어 있지 않고, 작업 정의를 수정하지 않고 재사용하여 동일한 네임스페이스 또는 여러 네임스페이스에 여러 서비스를 생성할 수 있습니다.

  5. 엔드포인트에 연결할 클라이언트 앱을 서비스로 배포합니다. Amazon ECS는 각 작업에서 Service Connect 프록시를 통해 이를 Service Connect 엔드포인트에 연결합니다.

    애플리케이션은 프록시를 서비스 연결 엔드포인트에 연결하는 데에만 사용합니다. 프록시를 사용하기 위한 추가 구성은 없습니다. 프록시는 라운드 로빈 로드 밸런싱, 이상값 탐지 및 재시도를 수행합니다. 프록시에 대한 자세한 내용은 Service Connect 프록시를 참조하세요.

  6. Amazon CloudWatch의 Service Connect 프록시를 통해 트래픽을 모니터링합니다.

Service Connect 사용 가능 리전

Amazon ECS Service Connect는 다음 AWS 리전에서 사용할 수 있습니다.

리전 이름 리전

미국 동부(오하이오)

us-east-2

미국 동부(버지니아 북부)

us-east-1

미국 서부(캘리포니아 북부)

us-west-1

미국 서부(오레곤)

us-west-2

아프리카(케이프타운)

af-south-1

아시아 태평양(홍콩)

ap-east-1

아시아 태평양(자카르타)

ap-southeast-3

아시아 태평양(뭄바이)

ap-south-1

아시아 태평양(하이데라바드)

ap-south-2

아시아 태평양(오사카)

ap-northeast-3

아시아 태평양(서울)

ap-northeast-2

아시아 태평양(싱가포르)

ap-southeast-1

아시아 태평양(시드니)

ap-southeast-2

아시아 태평양(멜버른)

ap-southeast-4

아시아 태평양(도쿄)

ap-northeast-1

캐나다(중부)

ca-central-1

캐나다 서부(캘거리)

ca-west-1

중국(베이징)

cn-north-1(참고: 이 리전에서는 TLS for Service Connect를 사용할 수 없음)

중국(닝샤)

cn-northwest-1(참고: 이 리전에서는 TLS for Service Connect를 사용할 수 없음)

유럽(프랑크푸르트)

eu-central-1

유럽(아일랜드)

eu-west-1

유럽(런던)

eu-west-2

유럽(파리)

eu-west-3

유럽(밀라노)

eu-south-1

유럽(스페인)

eu-south-2

유럽(스톡홀름)

eu-north-1

유럽(취리히)

eu-central-2

이스라엘(텔아비브)

il-central-1

중동(바레인)

me-south-1

중동(UAE)

me-central-1

남아메리카(상파울루)

sa-east-1

Service Connect 고려 사항

  • Service Connect를 사용하려면 Fargate에서 실행되는 작업이 Fargate Linux 플랫폼 버전 1.4.0 이상을 사용해야 합니다.

  • 컨테이너 인스턴스의 ECS 에이전트 버전은 1.67.2 이상이어야 합니다.

  • 서비스 연결을 사용하려면 컨테이너 인스턴스가 Amazon ECS 최적화 Amazon Linux 2023 AMI 버전 20230428 이상 또는 Amazon ECS 최적화 Amazon Linux 2 AMI 버전 2.0.20221115를 실행해야 합니다. 이러한 버전에는 Amazon ECS 컨테이너 에이전트 외에 서비스 연결 에이전트가 있습니다. 서비스 연결 에이전트에 대한 자세한 내용은 GitHub의 Amazon ECS Service Connect Agent를 참조하세요.

  • 컨테이너 인스턴스에 리소스 arn:aws:ecs:region:0123456789012:task-set/cluster/*에 대한 ecs:Poll 권한이 있어야 합니다. ecsInstanceRole을 사용하는 경우에는 권한을 더 추가할 필요가 없습니다. AmazonEC2ContainerServiceforEC2Role 관리형 정책에 필요한 권한이 있습니다. 자세한 내용은 Amazon ECS 컨테이너 인스턴스 IAM 역할 단원을 참조하십시오.

  • 롤링 배포를 사용하는 서비스만 Service Connect에서 지원됩니다.

  • 작업 정의는 Service Connect를 사용하는 작업 메모리 제한을 설정해야 합니다. 자세한 내용은 Service Connect 프록시 단원을 참조하십시오.

  • 작업 메모리 제한을 설정하는 대신 모든 컨테이너에 대해 컨테이너 메모리 제한을 설정하는 작업 정의는 지원되지 않습니다.

    컨테이너에 컨테이너 메모리 제한을 설정할 수 있지만 작업 메모리 제한을 컨테이너 메모리 제한의 합보다 큰 값으로 설정해야 합니다. 컨테이너 제한에 할당되지 않은 작업 제한의 추가 CPU 및 메모리는 Service Connect 프록시 컨테이너 및 컨테이너 제한을 설정하지 않은 다른 컨테이너에서 사용됩니다. 자세한 내용은 Service Connect 프록시 단원을 참조하십시오.

  • 동일한 AWS 계정의 동일한 AWS 리전에서 AWS Cloud Map 네임스페이스를 사용하도록 서비스에서 Service Connect를 구성할 수 있습니다.

  • 각 Amazon ECS 서비스는 하나의 네임스페이스에만 속할 수 있습니다.

  • Amazon ECS 서비스에서 생성하는 작업만 지원됩니다.

  • 모든 엔드포인트는 네임스페이스 내에서 고유해야 합니다.

  • 모든 검색 이름은 네임스페이스 내에서 고유해야 합니다.

  • 기존 서비스를 재배포해야 해당 서비스의 애플리케이션이 새 엔드포인트를 확인할 수 있습니다. 최신 배포 후 네임스페이스에 추가된 새 엔드포인트는 작업 구성에 추가되지 않습니다. 자세한 내용은 배포 순서 단원을 참조하십시오.

  • 새 클러스터를 생성할 때 네임스페이스를 생성할 수 있습니다. Amazon ECS Service Connect는 클러스터가 삭제될 때 네임스페이스를 삭제하지 않습니다. 사용을 마친 네임스페이스는 AWS Cloud Map에서 직접 삭제해야 합니다.

  • Application Load Balancer 트래픽은 기본적으로 awsvpc 네트워크 모드에서 Service Connect 에이전트를 통해 라우팅됩니다. 서비스 이외의 트래픽이 Service Connect 에이전트를 우회하도록 하려면 Service Connect 서비스 구성에서 ingressPortOverride 파라미터를 사용합니다.

Service Connect는 다음을 지원하지 않습니다.
  • Windows 컨테이너

  • HTTP 1.0

  • 독립 실행형 작업

  • 블루/그린외부 배포 유형을 사용하는 서비스.

  • Amazon ECS Anywhere용 External 컨테이너 인스턴스는 Service Connect에서 지원되지 않습니다.

  • PPv2

Service Connect 콘솔 환경

새 네임스페이스를 생성하려면 Amazon ECS 콘솔을 사용하여 새 Amazon ECS 클러스터를 생성하고, 생성할 네임스페이스 이름을 지정하거나 AWS Cloud Map 콘솔을 사용합니다. Amazon ECS Service Connect는 모든 인스턴스 검색 유형의 AWS Cloud Map 네임스페이스를 사용할 수 있습니다. 추가 리소스를 최소한으로 만들려면 API 호출 유형을 사용하는 것이 좋습니다. Amazon ECS 콘솔에서 새 Amazon ECS 클러스터와 네임스페이스를 생성하려면 콘솔을 사용하여 Fargate 및 외부 시작 유형에 대한 클러스터 생성 섹션을 참조하세요.

선택한 AWS 리전에 있는 이 AWS 계정의 모든 AWS Cloud Map 네임스페이스가 Amazon ECS 콘솔의 Namespaces(네임스페이스)에 표시됩니다.

네임스페이스를 삭제하려면 AWS Cloud Map 콘솔을 사용합니다. 삭제하려면 네임스페이스가 비어 있어야 합니다.

새 Amazon ECS 작업 정의를 생성하거나 기존 작업 정의에 새 개정을 등록하고 Service Connect를 사용하려면 콘솔을 사용하여 작업 정의 생성 섹션을 참조하세요.

Service Connect를 사용하는 새 Amazon ECS 서비스를 생성하려면 콘솔을 사용하여 서비스 생성 섹션을 참조하세요.

Service Connect 요금

Amazon ECS Service Connect 요금은 AWS Fargate 또는 컨테이너식 워크로드를 호스팅하는 Amazon EC2 인프라의 사용 여부에 따라 달라집니다. AWS Outposts에서 Amazon ECS를 사용하는 경우 요금은 Amazon EC2를 직접 사용할 때와 동일한 모델을 따릅니다. 자세한 내용은 Amazon ECS 요금을 참조하세요.

Amazon ECS Service Connect를 통해 사용하는 경우 AWS Cloud Map 사용은 완전히 무료입니다.

Service Connect 파라미터

다음 파라미터에는 Service Connect를 사용할 때 추가 필드가 있습니다.

파라미터 위치 앱 유형 설명 필수?
태스크 정의 클라이언트 클라이언트 작업 정의에서 Service Connect에 사용할 수 있는 변경 사항이 없습니다. N/A
태스크 정의 클라이언트-서버 서버는 컨테이너의 portMappings에 있는 포트에 name 필드를 추가해야 합니다. 자세한 내용은 portMappings 단원을 참조하세요.
태스크 정의 클라이언트-서버 서버는 선택적으로 애플리케이션 프로토콜(예: HTTP)을 제공하여 서버 애플리케이션에 대한 프로토콜별 지표를 수신할 수 있습니다(예: HTTP 5xx). 아니요
서비스 정의 클라이언트 조인할 네임스페이스를 구성하려면 클라이언트 서비스에서 serviceConnectConfiguration을 추가해야 합니다. 이 네임스페이스에는 이 서비스가 검색해야 하는 모든 서버 서비스가 포함되어야 합니다. 자세한 내용은 serviceConnectConfiguration 단원을 참조하십시오.
서비스 정의 클라이언트-서버 서버 서비스에서 serviceConnectConfiguration을 추가하여 서비스에서 사용할 수 있는 DNS 이름, 포트 번호 및 네임스페이스를 구성해야 합니다. 자세한 내용은 serviceConnectConfiguration 단원을 참조하십시오.
클러스터 클라이언트 클러스터는 기본 Service Connect 네임스페이스를 추가할 수 있습니다. 클러스터의 새 서비스는 Service Connect가 서비스에서 구성된 경우 네임스페이스를 상속합니다. 자세한 내용은 Amazon ECS 클러스터를 참조하세요. 아니요
클러스터 클라이언트-서버 서버 서비스에 적용되는 클러스터의 Service Connect에 사용할 수 있는 변경 사항이 없습니다. 서버 작업 정의 및 서비스는 해당 구성을 설정해야 합니다. N/A