Auto Scaling
오토 스케일링이란 CPU, 메모리, 디스크, 네트워크 트래픽과 같은 시스템 자원들의 메트릭(Metric) 값을 모니터링하여 서버 사이즈를 자동으로 조절하는 기술이다.
- 클라우드의 유연성을 돋보이게 하는 핵심기술
오토 스케릴링 장점
오토스케일링은 △ 주기적으로 특정 시간대에 트래픽이 집중하는 서비스(혹은 서버 리소스가 적게 필요한 경우), △ 일괄 작업, 주기적 분석과 같은 패턴의 서비스, △ 특정 기간에 급증하는 트래픽 패턴 등 일 또는 주 단위로 트래픽 흐름이 변화하는 서비스에 유용
- 시시각각 변화하는 워크로드의 요구사항에 즉각 대응할 수 있어 비즈니스 특성에 부합하는 응용솔루션을 효율적으로 운영할 수 있도록 함
- 시스템 리소스를 수분 내에 제어할 수 있고 응용 서비스 패턴에 맞추어 트래픽을 유연하게 배분하여 서비스 성능 및 가용성 보장
- 초기 서버 사양을 과도하게 높게 잡을 필요가 없어[1] 비용 절감 효과
동작 방식
- 스케일 업/다운
- 서버 구성 파트(CPU, 메모리 등)의 업그레이드, 다운그레이드 방식 확장 및 축소
- 데이터베이스 서버에 적합함
- 스케인 아웃/인
- 동일 규격 서버의 수량을 증설하는 방식의 확장 및 축소
- 로드 밸런서를 이용하여 실시간 증설 및 부하 분산
정책
- 시간 예약
- 특정 시간대에 규칙적으로 트래픽이 몰리거나, 리소스 증가가 너무 갑작스러워 예측 대응이 어려운 경우
- 리소스 모니터링
- 최근 몇 분간(시간 조정 가능) 평균 사용량에 따라 대응
- 복합적 예측
- 설정값 및 반복적 학습의 결과에 따라 리소스 사용량 변동에 빠르게 대응
구성
- 오토스케일링 그룹(Auto-Scaling Group)
- 자동 조절 정책(Auto-Scaling Policy)
주요 설정 및 메트릭
오토 스케일링 그룹 설정 항목
속성 | 설명 |
---|---|
Desired | 오토스케일링 시 서버 수 지정 |
Launch Configuration | 오토스케일링 그룹에서 생성될 서버의 사양/설정 정의 |
MinSize | 오토스케일링 그룹의 최소 유지 서버 수 (Desired > = MinSize) |
MaxSize | 오토스케일링 그룹의 최대 보유 서버 수 (Desired < = MaxSize) |
Health Check Type | 오토스케일링 그룹의 서비스에 대한 정상 구동 여부 체크 방식 지정
- 서버 정상 구동 여부 체크 방식 - 로드밸런서(Load Balancer)에 의한 URL 헬스 체크 방식 |
Health Check Grace Time | 오토스케일링 그룹에서 신규 생성된 서버가 정상적인 서비스를 실행하기 위해 필요한 초기 준비 시간(이 시간 동안은 헬스 체크 대상에서 제외) |
Cool Down Time | 오토스케일링에 의해 서버가 확장 및 축소될 때 서비스가 안정화 되기까지의 워밍업 시간(모니터링 서비스에서 발생한 알람이 무시되며 서버 확장 후 그룹 내 서비스가 정확한 부하분산을 할 수 있을 때까지 대기) |
오토 스케일링 모니터링 메트릭
모니터링 항목 | 상세 항목 |
---|---|
CPU | used (%) |
Network | in/out (bytes) |
in/out (packets) | |
Disk I/O | read/write |
read/write operations | |
Load Average | 1분, 5분, 15분, 1시간, 6시간 단위 |
참고 문헌
각주
- ↑ 기존엔 서버의 피크 타임 기준 자원 사용량을 고려하여 서버의 사양을 평소 사용량 대비 매우 높게 설정