💝 EC2 오토 스케일링
✅ 오토 스케일링 그룹 (Auto Scaling Group)
✅ CloudWatch Alarm
✅ 스케일링 정책 / 동적 스케일링 정책
✅ 스케일링 지표
✅ 스케일링 휴지
🚨 오토 스케일링 그룹 (Auto Scaling Group)
✤ 클라우드에서 EC2 인스턴스를 자동으로 확장하고 축소하도록 조절하는 서비스
✤ ASG 목표
• 증가한 서버의 로드에 맞춰 확장 (EC2 인스턴스를 추가) - 스케일 아웃 (Scale Out)
• 감소한 서버의 로드에 맞게 축소 (EC2 인스턴스를 제거) - 스케일 인 (Scale In)
• 최소 및 최대 수의 EC2 인스턴스가 실행 중인지 확인한다
• 새 인스턴스를 로드 밸런서에 자동으로 등록
• 이전 인스턴스가 종료된 경우 EC2 인스턴스 재생성
• ASG 크기는 시간에 따라 변한다
• LB 와 페어링하는 경우 ASG 에 속한 모든 EC2 인스턴스가 LB 에 연결된다
• 한 인스턴스가 비정상이면 종료하고 이를 대체할 새 EC2 인스턴스를 생성한다
✤ ASG 는 무료. EC2 인스턴스에 대한 비용만 지불하면 된다
✤ AWS 에서의 ASG 동작 : 최소 용량, 희망 용량, 최대 용량 설정
✤ LB 와 함께 동작 → 좋은 조합이다
오토 스케일링 그룹 속성 (Auto Scaling Group Attributes)
• 인스턴스 속성을 기반으로 ASG 를 생성하려면 시작 템플릿을 생성해야 함
• 시작 템플릿 (A Launch Template)
- EC2 인스턴스를 시작하는 방법에 대한 정보 포함
- AMI + 인스턴스 타입
- EC2 사용자 데이터
- EBS 볼륨
- 보안 그룹
- SSH 키 쌍
- EC2 인스턴스에 대한 IAM 역할
- 네트워크 + 서브넷 정보
- 로드 밸런서 정보
• 최소 크기 / 최대 크기 / 초기 용량
• 스케일링 정책 (Scaling Policies)
🚨 CloudWatch Alarms & Scaling
✤ CloudWatch 경보를 기반으로 ASG 스케일 인/스케일 아웃 할 수 있다
✤ 지표(평균 CPU 또는 사용자 지정 지표)를 수집하고 모니터링한다
✤ 지표는 전체 ASG 인스턴스에 대해 계산된다
CloudWatch
• AWS 클라우드 리소스와 AWS 에서 실행되는 애플리케이션을 위한 모니터링 서비스
• 지표를 수집 및 추적하고 로그 파일을 수집 및 모니터링하고 경보 설정
🚨 ASG 스케일링 정책 (Scaling Policies)
✤ 오토 스케일링을 실행하기 위한 조건
✤ 항상 현재 인스턴스 수준 유지 관리
• 지정된 수의 실행 인스턴스를 항상 유지하도록 ASG 구성
✤ 수동 스케일링(조정)
• 최대, 최소 또는 원하는 용량의 변경 사항만 지정하는 경우 사용
✤ 일정을 기반으로 스케일링(조정)
• 확장 작업이 시간 및 날짜에 따라 자동으로 수행
✤ 온디맨드 기반 스케일링(조정)
• 수요 변화에 맞춰 ASG 크기를 동적으로 조정
✤ 예측 스케일링 (Predictive Scaling)
• 머신러닝을 사용하여 CloudWatch 의 기록 데이터를 기반으로 필요한 용량을 예측
• AWS 내 오토 스케일링 서비스를 활용하여 지속적으로 에측을 생성 가능
• 로드를 보고 다음 스케일링을 예측
🚨 ASG 동적 스케일링 정책 (Dynamic Scaling Policies)
✤ 동적 스케일 정책 3가지 유형
• 대상 추적 스케일링 (Target Tracking Scaling)
• 단순/단계 스케일링 (Simple/Step Scaling)
• 예약된 작업 (Scheduled Actions)
대상 추적 스케일링 (Target Tracking Scaling)
• 기본 기준선을 세우고 상시 가용이 가능하도록 ASG 를 확장하는 방식
• ex) 평균 ASG CPU 를 약 40% 로 유지하도록 설정하고, ASG 가 목표값을 초과하면 EC2 인스턴스 증가
단순/단계 스케일링 (Simple/Step Scaling)
• CloudWatch Alarm 의 지표를 기반으로 ASG 를 확장하는 방식
• ex) CPU 사용률이 70% 초과해서 CloudWatch 경보가 작동되면 EC2 인스턴스 2 단위 추가, CPU 사용률이 30% 미만으로 CloudWatch 경보가 작동되면 EC2 인스턴스 1 단위 감소
예약된 작업 (Scheduled Actions)
• 나와있는 사용패턴을 바탕으로 스케일링을 예상하는 방식
• ex) 금요일 오후 5시에 최소 용량을 10으로 증가
🚨 스케일링 기반이 되는 지표 (Good Metrics to Scale on)
✤ CPU 사용률 - 인스턴스 전체의 평균 CPU 사용률
✤ 대상별 요청의 수 - EC2 인스턴스 당 요청 수가 안정적인지 확인하기 위함
✤ 네트워크 입출력량 - 애플리케이션이 네트워크에 연결된 경우
✤ 커스텀 지표 - CloudWatch 에서 직접 지표 설정 가능
🚨 스케일링 휴지 (Scaling Cooldowns)
✤ EC2 인스턴스 증가 또는 감소하는 활동이 발생하면 휴지 기간(Cooldown Period) 을 가진다
✤ 스케일링 작업이 끝날 때마다 인스턴스의 추가 또는 삭제를 막론하고 기본적으로 5분 또는 300초의 휴지 기간을 갖는다
✤ 휴지 기간에는 ASG 가 추가 인스턴스를 실행 및 종료 할 수 없다
✤ 지표를 이용하여 새로운 인스턴스가 안정화될 수 있도록 하며 어떤 새로운 지표의 양상을 살펴보기 위함이다
✤ EC2 인스턴스가 안정적인 서비스 상태가 될 때까지 스케일링을 하지 않도록 차단하는 역할
✤ 기본적으로 설정된 휴지가 있는지 확인
✤ 활성화 시간이 빨라지면 → 휴지기간 단축 → ASG 상에서 더 많으 동적 스케일링 가능
• 즉시 사용 가능한 AMI 를 이용하여 EC2 인스턴스 구성 시간을 단축하고, 이를 통해 요청을 좀 더 신속히 처리하는 것이 좋다
- EC2 인스턴스 구성에 할애하는 시간이 적으면 즉시 적용이 가능하기 때문
'🌦 Cloud' 카테고리의 다른 글
[AWS/SAA-03] Aurora (0) | 2023.04.28 |
---|---|
[AWS/SAA-03] RDS (관계형 데이터베이스 서비스) (0) | 2023.04.25 |
[AWS/SAA-03] 로드 밸런서 (Load Balancer) (0) | 2023.04.23 |
[AWS/SAA-03] EC2 인스턴스 스토리지 (0) | 2023.04.21 |
[AWS/SAA-03] 탄력적 IP, 배치그룹, ENI, 절전모드 (0) | 2023.04.20 |