ECS 워크로드용 Consul 서비스 메시 요구 사항
ECS 워크로드용 Consul 서비스 메시 요구 사항
이 주제는 ECS 워크로드에서 Consul 서비스 메시를 사용하기 위한 지원되는 런타임과 환경을 설명해요. Fargate와 EC2 런타임, awsvpc 네트워크 모드, 그리고 각 컨테이너의 최대 리소스 사용량을 다룬답니다.
출처: 문서
본문
이 주제는 ECS 워크로드에서 Consul 서비스 메시를 사용하기 위한 지원되는 런타임과 환경을 설명합니다.
Terraform mesh-task 모듈을 사용해 Consul 서비스 메시를 배포하는 것과 관련된 요구 사항은 Deploy Consul with the Terraform module을 참조하세요. ECS 클러스터에 Consul 서비스 메시를 수동으로 배포하는 것과 관련된 요구 사항은 Deploy Consul manually을 참조하세요.
지원되는 환경 및 런타임
Consul on ECS는 다음 환경과 런타임을 지원합니다.
- 런치 유형: Fargate 및 EC2
- 네트워크 모드:
awsvpc - 서브넷: 프라이빗 및 퍼블릭 서브넷. 태스크는 이미지를 풀링하기 위해 Amazon ECR 또는 다른 퍼블릭 컨테이너 레지스트리에 네트워크 액세스가 있어야 합니다.
- Consul 서버: 가상 머신에서 실행되는 자체 Consul 서버를 사용할 수 있습니다.
- ECS 컨트롤러: ECS 컨트롤러는 상태를 Consul로 다시 동기화하는 것을 돕고 Consul 보안 기능을 용이하게 합니다.
- 관리 파티션: Enterprise. ACL을 활성화하고 ECS 컨트롤러가 관리 파티션을 사용하도록 구성하세요. 각 관리 파티션에 대해 하나의 컨트롤러를 배포해야 합니다.
- 네임스페이스: Enterprise. ACL을 활성화하고 ECS 컨트롤러가 네임스페이스를 사용하도록 구성하세요.
- Dataplane 컨테이너: Consul dataplane을 사용해 프록시를 관리하려면 Terraform
mesh-task모듈을 사용해 Consul 서비스 메시를 설치해야 합니다.
리소스 사용량 (Resource usage)
리소스 사용량을 측정하는 데 다음 절차를 사용했습니다.
- 다양한 크기의 클러스터를 배포하면서 성능 테스트를 실행했습니다. 배포 조건이 Consul on ECS 컴포넌트에 부담을 주도록 했습니다.
- 각 성능 테스트 세션 후 각 컴포넌트의 리소스 사용량을 기록하여 프로덕션 환경에서 최악의 시나리오 리소스 사용량을 결정했습니다.
- 성능 테스트 중 ECS에서 Fargate의 최소 허용 CPU(256 shares)와 메모리 설정(512 MB)을 사용하여 Consul on ECS와 애플리케이션 컨테이너가 가장 작은 ECS 태스크에서 실행될 수 있음을 입증했습니다.
다음 표는 이러한 테스트 조건에서 각 컨테이너에 대해 관찰된 최대 리소스 사용량을 설명합니다.
| 컨테이너 | CPU | 메모리 | | ECS controller | 5% | 43 MB | | Control plane | 6% | 35 MB | | Dataplane | 10% | 87 MB |
Consul on ECS가 추가하는 컨테이너는 ECS 태스크의 최소 CPU 및 메모리 한도보다 훨씬 낮은 리소스를 소비합니다. 애플리케이션 태스크에 추가 리소스가 필요하면 태스크 정의에 memory와 cpu 설정을 사용하세요.
각 컴포넌트에 대한 자세한 내용은 Architecture을 참조하세요.