아래의 예시에서는 service A가 두 개의 Task를 운영하고 있다.
이 때, 유저가 접속하면 CPU Usage는 매우 부족한 상황이라 가정하자.
Auto scaling을 설치하면 많은 유저가 service에 접속할 경우 특정 CPU 이상 사용하게 될 경우
CloudWatch Metric이 CloudWatch Alarm을 트리거 할 것이며 이에 의해 Auto scaling이 ECS service를 자동으로 조정해 새로운 task를 launch할 것이다.
- 이는 Fargate와 EC2 launch type 모두에 적용 가능하다.
이 경우, 가끔 EC2 instance에 새로운 task를 시작할 공간이 부족할 수 있기 때문에 instance 자체에 조정이 필요할 수도 있다.
- 따라서, 우리는 EC2 instance의 ECS cluster를 ECS Capacity Providers를 통해 최대 규모로 조정할 수 있다(이는 선택사항이다!). 이를 통해 더 많은 EC2 instance를 추가할 수 있다.
만약 우리가 SQS Queue로부터 메시지를 읽어올 수 있는 service를 가지고 있다면 이를 통해 메시지를 가져오게 될 것이다(poll for messages).
v1에서 v2로 업데이트를 할 때 몇 개의 tasks를 어떤 순서로 실행 시키고 중단 시킬 지를 결정할 수 있다.
ECS service update screen에서 Minimum healthy percent와 Maximum percent를 지정할 수 있다.
예를 들어,
Min 50%, Max 100%이며 시작 tasks의 숫자가 4개라고 가정해 보자.
1. 그러면 tasks는 2개로만 가동 할 수 있기 때문에 2개는 종료한다(50%).
2. 이후 업데이트 하면 v2 두 개가 추가 되고(100%) v1 두 개는 종료 된다(50%).
3. 그 다음 v2 두 개가 추가로 업데이트 되어 100%가 된다.