나의 공부기록

[AWS] 36. Auto Scaling Group(ASG) & Scaling Policies(크기 조정 정책) 본문

자격증/AWS

[AWS] 36. Auto Scaling Group(ASG) & Scaling Policies(크기 조정 정책)

나의 개발자 2025. 4. 12. 18:47

Auto Scaling Group(ASG)

 

  • 웹 사이트/애플리케이션의 변동하는 부하(load)에 따라 EC2 인스턴스를 자동으로 늘리고 줄이는 기능
  • 목표
    • Scale Out : 부하 증가 시, 인스턴스 추가
    • Scale In : 부하 감소 시, 인스턴스 제거
    • Min/Max/Desired 개수 유지
    • 인스턴스가 죽으면 자동으로 새로 생성
    • 로드 밸런서와 연동해 자동 등록

👉ASG는 무료! EC2 사용량만 과금

 

핵심 구성 요소

구성 요소 설명
Launch Template AMI, 인스턴스 타입, 보안 그룹, 키페어 등 포함
Min/Max/Desired Capacity 최소 / 최대 / 초기 인스턴스 수
로드 밸런서 연동 ALB/NLB와 연결하여 트래픽 분산 및 상태 체크
VPC/서브넷 정보 어떤 네트워크에서 인스턴스 생성할지 결정
IAM Role EC2 인스턴스에 할당할 권한 설정
EC2 User Data 인스턴스 초기 설정 스크립트

 

확장 방식(Scaling Policies)

1️⃣ Dynamic Scaling

  • Target Tracking Scaling : 목표 기준에 따라 자동 조절
    👉 EX) CPU 40%
  • Simple/Step Scaling : 알람 기준으로 정해진 수만큼 증가
    👉 EX) CPU > 70% ➡️ +2 인스턴스, CPU < 30% ➡️ -1 인스턴스

2️⃣ Scheduled Scaling

  • 특정 시간에 확장/축소
    👉 EX) 매주 금요일 5시 ➡️ 최소 인스턴스 10개

3️⃣ Predictive Scaling

  •  기계 학습 기반 예측으로 자동 스케줄링 확장
  • 미리 부하 예측해서 사전 확장

Predictive Scaling

CloudWatch와 연동

  • CloudWatch Alarm으로 특정 조건 발생 시, 확장/축소 트리거
  • 자주 사용하는 지표
    • CPUUtilization : 평균 CPU 사용률
    • RequestCountPerTarget : 인스턴스 당 요청 수
    • NetworkIn / NetworkOut
    • 커스텀 메트릭도 가능

Cooldown Period

  • 확장/축소 후 기본 300초 대기 시간
  • 그동안 추가 확장/축소 작업 금지
  • 준비된 AMI를 사용하면 인스턴스가 더 빨리 응답하고 cooldown 줄일 수 있음

로드 밸런서와의 연동

  • ASG에서 생성된 인스턴스는 ALB/NLB에 자동 등록
  • 로드 밸런서가 헬스체크 수행 ➡️ 비정상 시, 인스턴스 교체 가능

AutoScaling Group 실습

1. Auto Scaling Group 생성

 

2. 시작 템플릿 선택

  • 시작 템플릿 생성

 

3. 네트워크 선택

  • 가용영역 선택

 

4. 로드밸런서 선택

 

 

5. 원하는 용량 & 크기 선택

  • 원하는 용량 : 유지되었으면 좋겠는 크기

 

6. Auto Scaling 그룹 생성 확인

  • 활동 - EC2 생성 및 활동 내역 확인 가능

  • EC2 생성 & Healthy 확인

x

 

7. ALB 접속 시, EC2 접속 확인


AutoScaling Group - Scaling Policies 실습

1️⃣ 동적 크기 조정 정책 - Dynamic Scaling Policies

1. 동적 크기 조정 정책 생성

1-1. 단순 크기 조정

  • CloudWatch 경보에 따른 작업 수행
    ➡️ 인스턴스 추가/삭제(경보에 따른 단일 작업)

1-2. 단계 크기 조정

  • 경보 단계별 작업 설정 가능
    ➡️ 다수의 작업 설정 가능

1-3. 대상 추적 크기 조정 - 🌟본 실습에서는 '대상 추적 크기 조정'을 사용

 

2. 동적 크기 조정 정책 생성 확인

 

3. ASG의 크기 조정 한도 수정

 

4. EC2 인스턴스에 부하

  • ASG에 포함된 인스턴스에 부하를 주어 CPU가 40% 이상 사용하여 정책에 의해 EC2 인스턴스가 생성되는지 확인

4-1. 인스턴스 연결

 

4-2. stress 패키지 설치

[ec2-user@ip-172-31-16-56 ~]$ sudo amazon-linux-extras install epel -y
[ec2-user@ip-172-31-16-56 ~]$ sudo yum install stress -y

 

4-3. 부하 주기

[ec2-user@ip-172-31-16-56 ~]$ stress -c 4

 

5. ASG의 모니터링 > EC2 인스턴스의 CPU 사용량 확인

 

6. 인스턴스 증가 확인

  • Scale Out : 1 ➡️ 2

 

7. CloudWatch 경보 확인

 

 

8. 부하 멈춤

 

9. ASG의 모니터링 > 인스턴스 CPU 사용량 감소 확인

 

10.  Scaling Policies를 통해 Scale In 된 것을 확인 가능

 

 

2️⃣ 예측된 크기 조정 정책 - Predictive Scaling Policies

  • Machine Learning 기반

 

3️⃣ 예약된 작업 - Scheduled Actions

  • 향후 스케일링 작업을 예약 가능