ASG (Auto Scaling Group)
- AWS에서 EC2 인스턴스 생성 API 호출을 통해 빠르게 서버를 생성하고 제거 가능
- 이를 자동화하는 기능
- ASG 목표
- 스케일 아웃 (EC2 인스턴스 추가)을 통한 증가된 부하 감당
- 스케일 인 (EC2 인스턴스 제거)를 통한 감소된 부하에 대해 자원 세이브
- 최소/최대 EC2 인스턴스 개수 설정 가능
- 새로운 EC2 인스턴스를 LB에 자동으로 등록 가능
- 비정상적인 EC2 인스턴스를 새로운 EC2 인스턴스로 교체 가능
- 무료
- CloudWatch와 연동하여 스케일링 가능
- ex) CloudWatch에서 평균 CPU Utilization이 특정 값을 넘어 경보가 전달되면 EC2 인스턴스 추가
스케일링 정책
- 동적 스케일링 정책 (Dynamic Scaling Policies)
- Target Tracking Scaling
- 단순, 설정 쉬움
- ex) 모든 ASG의 EC2 인스턴스의 평균 CPU 사용률이 40%가 되도록 정책 설정
- Simple / Step Scaling
- CloudWatch 경보 설정
- ex) 전체 ASG에 대한 CPU 사용률이 70%를 초과하는 알림 발생 시 EC2 2개 추가
- ex) 전체 ASG에 대한 CPU 사용률이 30% 미만인 알림 발생 시 EC2 1개 제거
- 한번에 추가/제거 될 unit 수를 정해야함
- Scheduled Action
- 사용패턴을 바탕으로 스케일링 예상
- ex) 매주 금요일 오후 5시 이벤트에 대비해 매주 금요일 오후 5시마다 자동으로 EC2 10개 추가
- 스케일링의 필요를 미리 알고 있을 때 예약된 작업 설정
- Target Tracking Scaling
- 예측 스케일링 (Predictive Scaling)
- 부하를 보고 다음 스케일링을 예측
- 시간에 걸쳐 과거 부하를 분석, 예측 데이터 생성
- 해당 예측을 머신러닝 기반으로 사전 스케일링 작업이 예약
- 예측 지표
- CPU 사용률 (CPUUtilization)
- 대상 별 요청 수 (RequestCountPerTarget)
- EC2는 하나 타겟 당 1000개 요청까지만 stable하게 작동
- 평균 네트워크 I/O (애플리케이션이 네트워크 위주인 경우 유용)
- 커스텀 지표 (CloudWatch 등)
- Scaling Cooldowns (스케일링 휴지)
- 새로운 인스턴스의 안정화 및 새로운 지표의 생성 및 분석을 위해 스케일링 작업 이후 특정 시간동안 추가/삭제를 하지 않는 것
- AMI를 통해 구성 시간을 단축해 요청을 신속히 처리하는 것이 좋음
- 즉시 적용이 가능하므로 휴지시간이 짧아져 더 많은 동적 스케일링 가능
- 지표에 대한 빠른 업데이트를 통해 예측 스케일링의 적중률 증대
- Instance Refresh (인스턴스 새로고침)
- 새로 업데이트 한 launch template을 모든 EC2에 적용하기 위해 모든 EC2를 새로 띄워야 하는 상황에서 유용
- 점진적으로 기존 EC2를 제거하고 New Launch Template을 적용한 EC2를 띄우는 방식
Reference
Udemy - AWS Certified Developer Associate 시험 합격을 위한 모든 것!