Amazon ECS 작업 크기 모범 사례 - Amazon Elastic Container Service

Amazon ECS 작업 크기 모범 사례

컨테이너와 작업 크기 모두 규모 조정 및 용량 계획에 필수적입니다. Amazon ECS에서 CPU 및 메모리는 용량에 사용되는 두 가지 리소스 지표입니다. CPU는 전체 vCPU의 1/1,024 단위로 측정됩니다(여기서 1,024 단위는 전체 vCPU 1개와 같음). 메모리는 메가바이트 단위로 측정됩니다. 태스크 정의에서 리소스 예약 및 제한을 구성할 수 있습니다.

예약을 구성하는 경우 작업에 필요한 최소 리소스 크기를 설정하는 것입니다. 작업은 적어도 요청된 리소스 크기를 수신합니다. 애플리케이션은 선언한 예약보다 더 많은 CPU 또는 메모리를 사용할 수 있습니다. 하지만 이 경우 함께 선언한 모든 제한에 종속됩니다. 예약 크기를 초과하여 사용하는 것을 버스팅이라고 합니다. Amazon ECS에서는 예약이 보장됩니다. 예를 들어 Amazon EC2 인스턴스를 사용하여 용량을 제공하는 경우 Amazon ECS는 예약을 이행할 수 없는 인스턴스에 작업을 배치하지 않습니다.

제한은 컨테이너 또는 작업에서 사용할 수 있는 CPU 단위 또는 메모리의 최대 크기입니다. 이 제한보다 많은 CPU를 사용하려고 하면 제한이 발생합니다. 이때 메모리를 더 사용하려고 하면 컨테이너가 중지됩니다.

이 값을 선택하는 것은 어려울 수 있습니다. 애플리케이션에 가장 적합한 값은 애플리케이션의 리소스 요구 사항에 따라 크게 달라지기 때문입니다. 성공적인 리소스 요구 사항 계획을 수립하고 애플리케이션의 요구 사항을 더 잘 이해하기 위해서는 애플리케이션 부하 테스트가 매우 중요합니다.

상태 비저장 애플리케이션

로드 밸런서 이면의 애플리케이션과 같이 수평적으로 규모를 조정하는 상태 비저장 애플리케이션의 경우 먼저 애플리케이션이 요청을 처리할 때 소비하는 메모리 크기를 결정하는 것이 좋습니다. 이를 위해CloudWatch Container Insights와 같은 모니터링 솔루션 또는 기존 도구(ps 또는 top)를 사용할 수 있습니다.

CPU 예약을 결정할 때는 비즈니스 요구 사항에 맞게 애플리케이션 규모를 조정하는 방법을 고려합니다. 256개의 CPU 단위(또는 1/4 vCPU)와 같은 더 작은 CPU 예약을 사용하여 비용을 최소화하는 세분화된 방식으로 스케일 아웃할 수 있습니다. 하지만 급증하는 수요를 감당할 만큼 빠르게 규모가 조정되지 않을 수도 있습니다. 더 큰 CPU 예약을 사용하면 보다 빠르게 스케일 인 및 스케일 아웃할 수 있으므로 수요 급증에 더 빠르게 대응할 수 있습니다. 하지만 CPU 예약이 커지면 비용이 증가합니다.

기타 애플리케이션

싱글톤 작업자 또는 데이터베이스 서버와 같이 수평적으로 규모가 조정되지 않는 애플리케이션의 경우 사용 가능한 용량과 비용이 가장 중요한 고려 사항입니다. 서비스 수준 목표를 달성하기 위해 트래픽을 처리하려면 부하 테스트에서 표시하는 필요한 수준에 따라 메모리와 CPU 크기를 선택해야 합니다. Amazon ECS는 적절한 용량을 갖춘 호스트에 애플리케이션을 배치하도록 보장합니다.