🚀 AWS ECS와 Auto Scaling: 컨테이너 확장 최적화
1️⃣ AWS Auto Scaling이란?
Auto Scaling은 시스템 부하에 따라 자동으로 리소스를 확장하거나 축소하는 AWS의 관리형 서비스다.
- 필요할 때만 리소스를 추가하여 비용 절감
- 수요 변화에 따른 자동 대응
- 안정적인 서비스 운영 가능
✅ ECS와 EC2의 Auto Scaling 차이
Auto Scaling은 ECS 태스크(Task) 단위와 EC2 인스턴스 단위로 나눠진다.
| ECS Auto Scaling | EC2 Auto Scaling |
---|
대상 | ECS 태스크 (컨테이너 개수) | EC2 인스턴스 |
확장 방식 | 태스크 개수 조정 | 인스턴스 개수 조정 |
활용 서비스 | ECS Service Auto Scaling | EC2 Auto Scaling Group |
예시 | 트래픽 증가 시 컨테이너 추가 | 서버 CPU 사용량 급증 시 EC2 추가 |
💡 ECS는 태스크(Task) 개수를 조절하고, EC2는 인스턴스 개수를 조절한다.
2️⃣ ECS Auto Scaling의 동작 방식
ECS에서 태스크를 확장하는 방식은 크게 3가지다.
🔹 1. 타겟 스케일링 (Target Tracking Scaling)
- 특정 메트릭(CPU, 메모리 등)을 기준으로 자동 확장
- 예: CPU 사용량 70% 초과 시 태스크 자동 증가
🔹 2. 스텝 스케일링 (Step Scaling)
- 특정 임계값을 기준으로 단계적으로 확장/축소
- 예: CPU 사용률 50% 이상 → 태스크 1개 추가, 80% 이상 → 태스크 2개 추가
🔹 3. 스케줄링 스케일링 (Scheduled Scaling)
- 정해진 시간에 맞춰 태스크 개수 조정
- 예: 오전 9시 트래픽 증가 예상 → 태스크 미리 추가
3️⃣ ECS Auto Scaling 예제
📌 예제: CPU 사용량에 따른 ECS 태스크 확장
1️⃣ ECS 서비스에 2개의 태스크(Task 1, Task 2)가 실행 중이다.
2️⃣ CPU 사용량 급증 → CloudWatch가 Alarm 발생
3️⃣ Auto Scaling 정책이 작동하여 ECS 태스크 개수 증가
4️⃣ 부하 감소 시, 불필요한 태스크 자동 제거
✅ 활용 사례
- 웹 서비스 → 트래픽 증가 시 자동 확장하여 안정적인 서비스 제공
- 데이터 처리 파이프라인 → 데이터가 몰릴 때만 태스크 확장
- 이벤트 기반 처리 → 특정 시간대에만 태스크 증가
4️⃣ EC2 기반 ECS vs Fargate 기반 ECS Auto Scaling
| EC2 기반 ECS | Fargate 기반 ECS |
---|
오토 스케일링 방식 | EC2 Auto Scaling 활용 | ECS 태스크만 조정 |
서버 관리 필요 | 필요 (EC2 인스턴스 관리) | 불필요 (완전 서버리스) |
비용 | 사용량에 따라 변동 | 사용한 만큼만 과금 |
💡 Fargate를 활용하면 인프라 관리 없이도 ECS Auto Scaling을 사용할 수 있다.
✅ 마무리
- AWS Auto Scaling을 사용하면 ECS 태스크 개수를 자동으로 조정 가능
- EC2 기반 ECS는 인스턴스 Auto Scaling, Fargate는 태스크 Auto Scaling 활용
- 트래픽 급증 시 대응 & 비용 절감 효과
- CloudWatch + Auto Scaling 조합으로 완전 자동화 가능