EC2 워크로드용 Amazon ECS 용량 공급자
EC2 워크로드용 Amazon ECS 용량 공급자
용량에 Amazon EC2 인스턴스를 사용할 때는 Auto Scaling 그룹을 사용해 클러스터에 등록된 Amazon EC2 인스턴스를 관리합니다. Auto Scaling은 애플리케이션 부하를 처리하기 위해 올바른 수의 Amazon EC2 인스턴스를 사용할 수 있도록 보장해요. 관리형 확장(managed scaling) 기능을 사용해 Amazon ECS가 Auto Scaling 그룹의 scale-in·scale-out 작업을 관리하게 하거나, 확장 작업을 직접 관리할 수 있습니다. 자세한 내용은 클러스터 자동 확장으로 Amazon ECS 용량 자동 관리(Automatically manage Amazon ECS capacity with cluster auto scaling)를 참고하세요.
출처: 문서
본문
새로운 비어 있는 Auto Scaling 그룹을 만들 것을 권장해요. 기존 Auto Scaling 그룹을 사용한다면, 그 그룹에 연결되어 용량 공급자를 만드는 데 Auto Scaling 그룹이 사용되기 전에 이미 실행 중이었고 Amazon ECS 클러스터에 등록되어 있던 Amazon EC2 인스턴스는 용량 공급자에 제대로 등록되지 않을 수 있습니다. 이는 용량 공급자 전략에서 용량 공급자를 사용할 때 문제를 일으킬 수 있어요. DescribeContainerInstances를 사용해 컨테이너 인스턴스가 용량 공급자와 연결되어 있는지 확인하세요.
참고: 비어 있는 Auto Scaling 그룹을 만들려면 desired count를 0으로 설정하세요. 용량 공급자를 만들고 클러스터에 연결한 뒤에 scale out 할 수 있어요. Amazon ECS 콘솔을 사용하면 Amazon ECS가 CloudFormation 스택의 일부로 사용자를 대신해 Amazon EC2 런치 템플릿과 Auto Scaling 그룹을 만들어요. 이들은 EC2ContainerService-<ClusterName> 접두사로 시작합니다.
그 Auto Scaling 그룹을 그 클러스터의 용량 공급자로 사용할 수 있어요. 워크로드를 방해하지 않는 Amazon EC2 인스턴스의 안전한 종료를 위해 관리형 인스턴스 드레이닝(managed instance draining)을 사용할 것을 권장합니다. 이 기능은 기본적으로 켜져 있어요. 자세한 내용은 EC2 인스턴스에서 실행되는 Amazon ECS 워크로드 안전하게 중지하기(Safely stop Amazon ECS workloads running on EC2 instances)를 참고하세요.
콘솔에서 Auto Scaling 그룹 용량 공급자를 사용할 때 다음을 고려하세요:
- Auto Scaling 그룹은 scale out 하려면 MaxSize가 0보다 커야 해요.
- Auto Scaling 그룹은 인스턴스 가중치(instance weighting) 설정을 가질 수 없습니다.
- Auto Scaling 그룹이 실행 태스크 수를 수용하도록 scale out 할 수 없으면, 태스크는
PROVISIONING상태를 넘어 전환하지 못하고 실패해요. - 용량 공급자가 관리하는 Auto Scaling 그룹과 연결된 확장 정책 리소스를 수정하지 마세요.
- 용량 공급자를 만들 때 관리형 확장이 켜져 있으면 Auto Scaling 그룹 desired count를
0으로 설정할 수 있어요. 관리형 확장이 켜지면 Amazon ECS가 Auto Scaling 그룹의 scale-in·scale-out 작업을 관리합니다. - 용량 공급자 전략에 연결하기 전에 용량 공급자를 먼저 클러스터에 연결해야 해요.
- 용량 공급자 전략에는 최대 20개의 용량 공급자를 지정할 수 있습니다.
- Auto Scaling 그룹 용량 공급자를 사용하는 서비스를 Fargate 용량 공급자를 사용하도록 업데이트할 수 없어요. 그 반대도 마찬가지입니다.
- 용량 공급자 전략에서 콘솔에서 용량 공급자에 가중치 값이 지정되지 않으면 기본값
1이 사용돼요. API나 AWS CLI를 사용하면 기본값0이 사용됩니다. - 용량 공급자 전략에 여러 용량 공급자가 지정되면, 용량 공급자 중 하나 이상이 0보다 큰 가중치 값을 가져야 해요. 가중치가 0인 용량 공급자는 태스크 배치에 사용되지 않습니다. 전략에 모든 용량 공급자가 가중치 0으로 지정되어 있으면, 그 용량 공급자 전략을 사용하는
RunTask또는CreateService작업이 실패합니다. - 용량 공급자 전략에서 base 값을 정의할 수 있는 용량 공급자는 하나뿐이에요. base 값이 지정되지 않으면 기본값 0이 사용됩니다.
- 클러스터에는 Auto Scaling 그룹 용량 공급자와 Fargate 용량 공급자가 섞여 있을 수 있어요. 그러나 용량 공급자 전략에는 Auto Scaling 그룹 또는 Fargate 용량 공급자 중 하나만 포함될 수 있으며, 둘 다는 안 됩니다.
- 클러스터에는 용량 공급자와 런치 타입을 둘 다 사용하는 서비스와 독립 실행형 태스크가 섞여 있을 수 있어요. 서비스는 런치 타입 대신 용량 공급자 전략을 사용하도록 업데이트할 수 있습니다. 그러나 그렇게 할 때는 새 배포를 강제해야 해요.
- Amazon ECS는 Amazon EC2 Auto Scaling 웜 풀(warm pools)을 지원해요. 웜 풀은 서비스에 배치할 준비가 된 사전 초기화된 Amazon EC2 인스턴스 그룹입니다. 애플리케이션을 scale out 해야 할 때마다 Amazon EC2 Auto Scaling은 콜드 인스턴스를 시작하는 대신 웜 풀의 사전 초기화된 인스턴스를 사용해요. 이를 통해 인스턴스가 서비스에 배치되기 전에 최종 초기화 프로세스가 실행됩니다. 자세한 내용은 Auto Scaling 그룹용 사전 초기화 인스턴스 구성(Configuring pre-initialized instances for your Amazon ECS Auto Scaling group)을 참고하세요.
Amazon EC2 Auto Scaling 런치 템플릿 만들기에 대한 자세한 내용은 Amazon EC2 Auto Scaling 사용자 가이드의 Auto Scaling 런치 템플릿을, Amazon EC2 Auto Scaling 그룹 만들기에 대한 자세한 내용은 같은 가이드의 Auto Scaling 그룹을 참고하세요.