가용 영역 전체의 Amazon ECS 서비스 밸런싱
애플리케이션의 고가용성 달성에 도움이 되려면 여러 가용 영역에서 실행되도록 다중 태스크 서비스를 구성하는 것이 좋습니다. 첫 번째 배치 전략을 가용 영역 분산으로 지정하는 서비스의 경우 AWS에서는 사용 가능한 가용 영역에 서비스 태스크가 균등하게 분산되도록 최선을 다합니다. 그러나 한 가용 영역과 다른 가용 영역에서 실행되는 태스크 수가 동일하지 않은 경우가 있을 수 있습니다(예: 가용 영역 중단 후). 이 태스크 불균형이 해결되도록 가용 영역 리밸런싱 특성을 활성화할 수 있습니다. 가용 영역 리밸런싱을 통해 Amazon ECS에서는 각 서비스의 가용 영역 전체의 태스크 분산을 지속적으로 모니터링합니다. Amazon ECS에서는 균등하지 않은 태스크 분산이 감지되면 자동으로 가용 영역 사이에 워크로드가 리밸런싱되도록 조처합니다. 여기에는 태스크가 가장 적은 가용 영역에서 새 태스크를 시작하고 과부하가 걸린 가용 영역에서 태스크를 종료하는 것이 포함됩니다. 이 재분산은 장애 지점이 되는 가용 영역이 없어지므로 컨테이너화된 애플리케이션의 전체 가용성을 유지하는 데 도움이 됩니다. 자동 리밸런싱 프로세스를 통해 수동 개입 필요성이 제거되므로 이벤트 후 복구 시간이 단축됩니다.
다음은 가용 영역 리밸런싱 프로세스의 개요입니다.
-
Amazon ECS에서는 서비스의 상태가 안정되면 모니터링을 시작하고 각 가용 영역에서 실행되는 태스크 수를 조사합니다.
-
Amazon ECS에서는 각 가용 영역에서 실행되는 태스크 수에서 불균형이 탐지되면 다음과 같은 작업을 수행합니다.
-
가용 영역 리밸런싱이 시작되고 있음을 나타내는 서비스 이벤트를 보냅니다.
-
실행 중인 태스크 수가 가장 적은 가용 영역의 태스크를 시작합니다.
-
실행 중인 태스크 수가 가장 많은 가용 영역의 태스크를 중지합니다.
-
스케줄러에서는 과도하게 규모가 조정된 가용 영역의 태스크를 중지하기 전에 새로 시작된 태스크가
HEALTHY
및RUNNING
이 될 때까지 기다립니다. -
가용 영역 리밸런싱 결과가 있는 서비스 이벤트를 보냅니다.
-
가용 영역 리밸런싱에서는 Fargate 및 EC2 시작 유형을 지원합니다. Fargate의 경우 Amazon ECS에서는 사용 가능한 가용 영역 전체에 태스크를 자동으로 재분산하여 균형을 유지 관리합니다. EC2 시작 유형의 경우 Amazon ECS에서는 사용자가 정의한 배치 전략 및 제약 조건에 따라 기존 컨테이너 인스턴스 전체에 태스크를 리밸런싱합니다. 그러나 ECS에서는 리밸런싱 프로세스의 일부로 사용률이 낮은 가용 영역에서 새 인스턴스를 프로비저닝할 수 없으므로 기존 컨테이너 인스턴스로 리밸런싱이 제한됩니다.
가용 영역 리밸런싱은 다음과 같은 구성에서 작동합니다.
-
Replica
전략을 사용하는 서비스 -
가용 영역 분산을 첫 번째 태스크 배치 전략으로 지정하지 않거나 배치 전략을 지정하지 않는 서비스입니다.
다음과 같은 기준 중 하나라도 서비스에서 충족되면 가용 영역 리밸런싱을 사용할 수 없습니다.
-
Daemon
전략 사용 -
EXTERNAL
시작 유형 사용(ECS Anywhere) -
maximumPercent
값으로 100% 사용 -
Classic Load Balancer 사용
-
태스크 배치 제약 조건으로
attribute:ecs.availability-zone
사용
가용 영역 리밸런싱 포함 배치 전략 및 배치 제약 조건
배치 전략에 따라 Amazon ECS에서 태스크 배치를 종료할 컨테이너 인스턴스와 가용 영역을 선택하는 방식이 결정됩니다. 태스크 배치 제약 조건은 태스크가 특정 컨테이너 인스턴스에서 실행될 수 있는지 여부가 결정되는 규칙입니다. EC2 시작 유형의 경우 가용 영역 리밸런싱과 함께 배치 전략 및 배치 제약 조건을 사용할 수 있습니다. 그러나 가용 영역 리밸런싱이 작동하려면 지정된 첫 번째 전략이 가용 영역 분산 배치 전략이어야 합니다. 가용 영역 리밸런싱은 다양한 배치 전략 조합과 호환됩니다. 예를 들면, 가용 영역 전체에 균등하게 태스크를 분산한 다음에 각 가용 영역 내에서 메모리를 기준으로 태스크를 빈팩(bin pack)하는 전략을 생성할 수 있습니다. 이 경우 가용 영역 분산 전략이 먼저 지정되므로 가용 영역 리밸런싱이 작동합니다. 배치 전략 배열의 첫 번째 전략이 가용 영역 분산 구성 요소가 아닌 경우 가용 영역 리밸런싱이 작동하지 않는다는 점을 유의해야 합니다. 이 요구 사항에 따라 태스크 분산의 일차적인 초점이 고가용성에 매우 중요한 가용 영역 전체의 균형 유지 관리에 맞춰집니다. 태스크 배치 전략 및 제약 조건에 대한 자세한 내용은 Amazon ECS가 컨테이너 인스턴스에 작업을 배치하는 방법 단원을 참조하세요.
다음 예제 전략에서는 가용 영역 전체에 균등하게 태스크를 분산한 다음에 각 가용 영역 내에서 메모리를 기준으로 태스크를 빈팩(bin pack)합니다. 가용 영역 리밸런싱은 spread
전략이 첫 번째이므로 서비스와 호환됩니다.
"placementStrategy": [ { "field": "attribute:ecs.availability-zone", "type": "spread" }, { "field": "memory", "type": "binpack" } ]
가용 영역 리밸런싱 켜기
신규 및 기존 서비스에 대해 가용 영역 리밸런싱을 활성화해야 합니다.
콘솔, API 또는 AWS CLI를 사용하여 가용 영역 리밸런싱을 활성화 및 비활성화할 수 있습니다.
서비스 유형 | API | 콘솔 | CLI |
---|---|---|---|
기존 | UpdateService | 콘솔을 사용하여 Amazon ECS 서비스 업데이트 | update-service |
New | CreateService | 콘솔을 사용하여 Amazon ECS 서비스 생성 | create-service |