Amazon ECS에 대한 태스크 크기 결정 - Amazon Elastic Container Service

Amazon ECS에 대한 태스크 크기 결정

Amazon ECS에서 컨테이너를 배포할 때 가장 중요한 선택 사항 중 하나는 컨테이너와 태스크 크기입니다. 컨테이너와 태스크 크기 모두 규모 조정 및 용량 계획에 필수적입니다.

Amazon ECS는 CPU 및 메모리와 같이 용량에 대해 두 가지 리소스 지표를 사용합니다. Amazon ECS는 CPU를 전체 vCPU의 1/1,024 단위로 측정합니다(여기서 1,024 단위는 전체 vCPU 1개와 같음). Amazon ECS는 메모리를 메가바이트 단위로 측정합니다.

작업 정의에서 리소스 예약 및 제한을 선언할 수 있습니다.

예약을 선언하는 경우 태스크에 필요한 최소 리소스 크기를 선언합니다. 태스크는 적어도 요청한 리소스 크기를 수신합니다. 애플리케이션은 선언한 예약보다 더 많은 CPU 또는 메모리를 사용할 수 있습니다. 하지만 이 경우 함께 선언한 제한이 적용됩니다.

예약 크기를 초과하여 사용하는 것을 버스팅이라고 합니다. 버스팅은 애플리케이션이 예약한 것보다 더 많은 리소스를 사용하지만 선언된 제한 내에서 유지됨을 의미합니다. Amazon ECS는 예약을 보장합니다. 예를 들어 Amazon EC2 인스턴스를 사용하여 용량을 제공하는 경우 Amazon ECS는 예약을 충족할 수 없는 인스턴스에 태스크를 배치하지 않습니다.

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

이 값을 선택하는 것은 어려울 수 있습니다. 애플리케이션에 가장 적합한 값은 애플리케이션의 리소스 요구 사항에 따라 크게 달라집니다.

성공적인 리소스 요구 사항 계획을 수립하려면 애플리케이션 부하 테스트가 매우 중요합니다. 부하 테스트는 애플리케이션의 요구 사항을 더 잘 이해하는 데 도움이 됩니다.

상태 비저장 애플리케이션

로드 밸런서 이면의 애플리케이션과 같이 수평적으로 규모를 조정하는 상태 비저장 애플리케이션의 경우 먼저 애플리케이션이 요청을 지원할 때 소비하는 메모리 크기를 결정하는 것이 좋습니다.

이를 위해 ps 또는 top과 같은 기존 도구를 사용할 수 있습니다. CloudWatch Container Insights와 같은 모니터링 솔루션을 사용할 수도 있습니다.

CPU 예약을 결정할 때 비즈니스 요구 사항에 맞게 애플리케이션 규모를 조정하는 방법을 고려하세요.

256개의 CPU 단위(또는 1/4 vCPU)와 같은 더 작은 CPU 예약을 사용하여 비용을 최소화하는 세분화된 방식으로 스케일 아웃할 수 있습니다. 하지만 급증하는 수요를 감당할 만큼 빠르게 규모가 조정되지 않을 수도 있습니다.

더 큰 CPU 예약을 사용하면 보다 빠르게 스케일 인 및 스케일 아웃할 수 있습니다. 그러면 수요 급증에 더 빠르게 대응할 수 있습니다. 하지만 CPU 예약이 커지면 비용이 증가합니다.

기타 애플리케이션

싱글톤 작업자 또는 데이터베이스 서버와 같이 수평적으로 규모가 조정되지 않는 애플리케이션의 경우 사용 가능한 용량과 비용이 가장 중요한 고려 사항입니다.

서비스 수준 목표를 달성하기 위해 트래픽을 처리하려면 부하 테스트에서 표시하는 필요한 수준에 따라 메모리와 CPU 크기를 선택합니다. Amazon ECS는 적절한 용량을 갖춘 호스트에 애플리케이션을 배치하도록 보장합니다.