Auto Scaling Group 서비스에 대해서 알아보기

Auto Scaling Group 서비스란?

AWS Auto Scaling Group(ASG)은 애플리케이션의 부하 변화에 따라 EC2 인스턴스를 자동으로 늘리거나 줄여주는 서비스입니다. 고가용성과 비용 최적화를 동시에 실현할 수 있게 해주는 핵심 기능 중 하나입니다.

📌 Auto Scaling Group이란?

ASG는 “하나 이상의 EC2 인스턴스를 묶어 관리하는 그룹”입니다.
지정한 조건에 따라 EC2 인스턴스를 자동으로 추가(Scale Out) 또는 제거(Scale In) 합니다.

🧩 구성요소

구성 요소설명
Launch Template / Launch Configuration어떤 AMI, 인스턴스 타입, 키페어 등을 사용할지 정의
Auto Scaling Group인스턴스 그룹 자체, 최소/최대 수, 원하는 수 등을 정의
Scaling PolicyCPU 사용률이나 요청 수 등에 따라 인스턴스를 자동으로 증감
Health Check인스턴스 상태를 주기적으로 확인하고 비정상일 경우 자동 교체
Lifecycle Hook인스턴스 시작/종료 전 후에 Lambda 등과 연동하여 작업 가능

⚙️ 동작 예시

  1. 최소 인스턴스 수 2, 최대 5로 설정한 ASG 구성
  2. CPU 사용률이 70%를 초과하면 Scale Out 정책으로 인스턴스를 1개 추가
  3. CPU가 30% 미만으로 떨어지면 Scale In 정책으로 인스턴스를 1개 제거
  4. 비정상 인스턴스는 자동으로 대체됨 (Auto Healing)

✅ 장점

장점설명
가용성 향상장애 인스턴스를 자동으로 대체함으로써 서비스 중단 방지
비용 최적화수요에 따라 인스턴스 수를 조절하여 불필요한 비용 절감
자동 복구Health Check 실패 시 자동으로 새 인스턴스로 교체
탄력적인 확장예기치 못한 트래픽 급증에도 자동 대응 가능

⚠️ 주의할 점

  • ELB와 연동 필수: 대부분의 경우, Auto Scaling Group은 Load Balancer(예: ALB)와 함께 사용해야 트래픽이 올바르게 분산됩니다.
  • 상태 비저장(stateless) 서비스에 적합: Auto Scaling 환경에서는 인스턴스가 갑자기 사라질 수 있기 때문에, 상태 저장 앱은 적절한 설계가 필요합니다.
  • EBS 루트 디스크는 삭제됨: 인스턴스 종료 시 디스크도 삭제되므로, 필요한 데이터는 S3, EFS 등에 보관해야 함

Fargate에는 Auto Scaling Group(ASG)를 직접 적용할 수 없습니다.

Auto Scaling Group은 EC2 인스턴스 기반의 스케일링 시스템입니다.
반면, Fargate는 EC2 인스턴스를 직접 사용하지 않고, AWS가 관리하는 서버리스 컨테이너 실행 환경이기 때문에,
EC2 인스턴스를 그룹으로 묶어 관리하는 ASG 개념이 적용되지 않습니다.

✅ 그럼 Fargate는 어떻게 확장하나요?

Fargate는 ECS 또는 EKS의 자체 스케일링 기능을 통해 확장합니다:

1. ECS + Fargate

  • Service Auto Scaling을 사용해 Task 수를 조절함
    (예: CPU 사용률 70% 이상 → Task 2개 → 4개로 증가)

2. EKS + Fargate

  • Horizontal Pod Autoscaler (HPA)를 Kubernetes에서 설정
    → Pod 수 증가 → Fargate가 자동으로 Pod당 컴퓨팅 자원 제공

🧩 ECS Fargate의 스케일링 예시

aws application-autoscaling register-scalable-target \
--service-namespace ecs \
--resource-id service/my-cluster/my-service \
--scalable-dimension ecs:service:DesiredCount \
--min-capacity 1 \
--max-capacity 10

🔄 비교 정리

항목EC2 + ASGECS Fargate
스케일링 대상EC2 인스턴스ECS Task / Kubernetes Pod
스케일링 방식Auto Scaling GroupService Auto Scaling (ECS) / HPA (EKS)
인프라 관리직접 관리AWS가 관리 (서버리스)
사용 용도상태 저장, 커스텀 구성 필요간단한 웹 앱, 마이크로서비스 등