ECS 서비스에는 두 가지 수준의 스케일링이 존재 1) 서비스 스케일링 서비스에서 테스크가 두 개 실행되고 액세스하는 사용자는 하나일 때 CPU 사용량은 매우 낮지만 갑자기 오토 스케일링을 설정해서 여러 사용자가 서비스에 액세스할 수 있게 되면 CPU 사용량이 높아지게 됨 이를 위해 CloudWatch 지표를 ECS 서비스 평균 CPU 사용량으로 설정해 특정 임계값을 넘길 때 CloudWatch 경보 작동 설정 경보가 울릴 경우 ECS 서비스가 자동으로 스케일링되어 새로운 테스크를 시작함 2) 백엔드 EC2 인스턴스 스케일링 EC2 실행 유형을 사용하는 경우에만 때때로 새로운 테스크를 실행할 공간을 위해 EC2 인스턴스를 스케일링할 필요가 있음 이에 따라 EC2 인스턴스의 ECS 클러스터를 스케일링하려면 Amazon ECS의 Capacity Providers를 사용 즉,ECS 스케일링은 테스크를 실행할 충분한 용량이 없는 경우 해당 서비스를 지원하는 EC2 인스턴스의 오토 스케일링 그룹을 실행하고 ECS 클러스터에 EC2 인스턴스를 추가
Fargate와 EC2 실행 유형 모두 이렇게 작동하여 오토 스케일링 그룹과 굉장히 비슷한 과정을 가짐
ECS Scaling – SQS Queue Example
Amazon SQS 대기열을 사용해 ECS 서비스를 스케일링할 수 있음
SQS 대기열에는 메시지를 읽는 서비스가 있어서 메시지를 풀링할 수 있으며 ECS 서비스에 오토 스케일링을 설정해서 CloudWatch 지표의 대기열 길이를 보면 대기열에 메시지가 너무 많아 특정 임계값을 초과할 경우 CloudWatch 경보가 작동하고 ECS 서비스의 오토 스케일링 서비스가 스케일링되고 나면 새로운 테스크가 생성됨 즉, 사용 중인 ECS 인스턴스를 스케일링하고 싶다면 ECS Capacity Providers를 설정