AWS 오토 스케일링(Auto Scaling)?
스케일링으로 클라우드 자원을 동적으로 확장하거나 축소하여 클라우드 자원의 규모를 조정한다.
AWS 오토 스케일링 기능으로 클라우드 자원 규모를 조정하는 대상에는
EC2, ECS, DynamoDB의 테이블 및 인덱스, Aurora의 복제본 등이 있다.
EC2 인스턴스 대상으로 하는 EC2 오토 스케일링이 가장 많이 사용되는 서비스이며 무료 제공 서비스다.
오토스케일링은 수직/수평 스케일링으로 나뉜다.
수직 스케일링: IT 자원의 용량을 확장하거나 축소하는 기능 (스케일 업/다운)
수평 스케일링: IT 자원의 수량을 확장하거나 축소하는 기능 (스케일 아웃/인)
EC2 오토 스케일링(Auto Scaling)이란?
EC2 오토 스케일링은 애플리케이션의 워크로드에 따라 EC2 인스턴스 수를 자동으로 조정하는 기능이다.
트래픽이 증가하면 인스턴스를 추가하고, 감소하면 불필요한 인스턴스를 종료하여 비용을 절감하고
애플리케이션의 안정성을 유지할 수 있다.
오토 스케일링을 사용하면 오토 스케일링 그룹(Auto Scaling Group, ASG) 이라는 인스턴스 그룹을 생성하며,
최소, 최대, 원하는 인스턴스 수를 설정하여 자동으로 관리할 수 있다.
EC2 오토 스케일링 구성 요소
- 오토 스케일링 그룹(ASG)
- EC2 인스턴스를 논리적으로 그룹화하여 관리
- 최소/최대 인스턴스 수 및 원하는 인스턴스 수를 설정 가능
- 인스턴스가 비정상적으로 종료되면 자동으로 새 인스턴스를 시작하여 가용성을 유지
- 구성 템플릿(Launch Template 또는 Launch Configuration)
- 새 인스턴스를 생성할 때 사용할 AMI, 인스턴스 유형, 키 페어, 보안 그룹 등의 설정을 포함한 템플릿
- Launch Template이 최신 기능을 지원하므로, 가능하면 Launch Configuration 대신 Launch Template을 사용하는 것이 권장
- 조정 정책(Scaling Policies)
- 오토 스케일링 그룹의 크기를 조정하는 방법을 정의
- 다양한 조정 방식이 있으며, 대표적인 방식은 아래와 같음
- 동적 스케일링(Dynamic Scaling): CPU 사용률, 네트워크 트래픽 등의 모니터링 지표를 기준으로 자동 조정
- 예측 스케일링(Predictive Scaling): 기계 학습을 활용해 향후 트래픽 패턴을 예측하고 미리 인스턴스를 조정
- 스케줄링(Scheduled Scaling): 특정 시간이나 요일에 맞춰 자동으로 조정
EC2 오토 스케일링의 인스턴스 생명 주기
EC2 오토 스케일링에서 인스턴스는 일반적인 EC2 인스턴스와는 다른 특정한 생명 주기를 따른다.
이 생명 주기는 인스턴스가 시작될 때부터 종료될 때까지의 과정을 의미한다.
인스턴스 확장(스케일 아웃) 과정
- 사용자가 오토 스케일링 그룹의 크기를 직접 증가시키는 경우
- 조정 정책(Scaling Policy) 에 의해 자동으로 인스턴스를 추가하는 경우 (예: CPU 사용률 증가)
- 예약된 작업(Scheduled Scaling) 에 따라 특정 시간에 인스턴스를 추가하는 경우
확장 프로세스
- 오토 스케일링은 Launch Template(또는 Launch Configuration) 을 사용해 새로운 인스턴스를 시작
- 새 인스턴스는 먼저 대기(Pending) 상태로 시작
- 인스턴스가 완전히 구성되면 실행(Running) 상태로 전환
- 로드 밸런서가 연결되어 있다면, 오토 스케일링이 로드 밸런서에 인스턴스를 자동으로 등록
인스턴스 축소(스케일 인) 과정
- 사용자가 오토 스케일링 그룹의 크기를 직접 감소시키는 경우
- 조정 정책(Scaling Policy) 에 의해 자동으로 인스턴스를 제거하는 경우 (예: 트래픽 감소)
- 예약된 작업(Scheduled Scaling) 에 따라 특정 시간에 인스턴스를 종료하는 경우
축소 프로세스
- 오토 스케일링은 종료할 인스턴스를 결정(종료 정책에 따라 선택)
- 선택된 인스턴스는 종료 중(Terminating) 상태로 변경되며, 다시 실행 불가
- 로드 밸런서가 연결되어 있다면, 오토 스케일링은 로드 밸런서에서 해당 인스턴스를 먼저 제거한 후 종료
- 인스턴스가 완전히 종료되면 오토 스케일링 그룹에서 삭제
- 드레이닝(Draining) 상태?
- 인스턴스를 종료하기 전에, 기존 요청을 모두 처리할 시간을 주기 위해 일정 시간 동안 대기하는 상태
- 예를 들어, 인스턴스에서 파일을 다운로드 중인 경우, 해당 요청이 끝날 때까지 기다렸다가 종료
- 드레이닝 상태에서는 새로운 연결을 받지 않지만, 기존 연결은 정상적으로 마무리
EC2 오토 스케일링 조정 옵션
인스턴스 유지 | 인스턴스 개수를 항상 일정하게 유지 |
수동 조정 | 사용자가 직접 용량을 변경 |
동적 조정 - 대상 추적 조정 | 특정 지표(예: CPU 50%) 유지 |
동적 조정 - 단계 조정 | 여러 단계의 임곗값을 설정해 점진적 조정 예시: CPU 60% 초과 → 1개 추가, 80% 초과 → 3개 추가 |
동적 조정 - 단순 조정 | 설정한 임곗값 발생 시 고정된 개수만큼 증감 예시: CPU 70% 초과 → 항상 2개 추가 |
예약된 조정 | 특정 시간에 맞춰 조정 |
예측 조정 | 과거 트래픽을 분석해 자동으로 조정 |
'Cloud' 카테고리의 다른 글
Cloud_AWS AutoScaling 실습 (0) | 2025.03.10 |
---|---|
Cloud_AWS IAM 서비스 (0) | 2025.03.07 |
Cloud_AWS CloudFront & Route53을 이용해 CDN 서비스 환경 구축 실습 (0) | 2025.03.06 |
Cloud_AWS 고급 네트워킹 서비스 (1) | 2025.03.06 |
Cloud_AWS RDS 실습 (0) | 2025.02.28 |