Amazon EC2 Auto Scaling이란 무엇인가요?
Amazon EC2 Auto Scaling이란 무엇인가요?
트래픽이 몰릴 때는 서버를 늘리고, 한산해지면 서버를 줄이고 싶은 건 누구나 있는 바람이에요. Amazon EC2 Auto Scaling은 그 바람을 자동으로 실현시켜주는 서비스예요. 애플리케이션 부하를 처리하기에 충분한 EC2 인스턴스를 항상 확보해주는 게 핵심 목표예요. EC2 인스턴스를 **Auto Scaling 그룹(Auto Scaling group)**이라는 단위로 묶어 관리하는데, 그룹마다 최소·최대·희망 인스턴스 수를 지정하고 스케일링 정책을 걸어두면 수요에 맞춰 인스턴스를 자동으로 실행하거나 종료해요.
Auto Scaling 그룹이란?
Auto Scaling 그룹은 스케일링과 관리를 위해 EC2 인스턴스를 논리적인 단위로 묶은 컬렉션이에요. 예를 들어 어떤 그룹이 최소 4개, 희망 6개, 최대 12개로 설정돼 있다면, 이 사이의 범위 안에서 정의한 스케일링 정책이 인스턴스 수를 조절해요. 그룹이 EC2 인스턴스를 만들 때는 시작 템플릿(launch template) 또는 **시작 구성(launch configuration)**을 구성 템플릿으로 사용해요.
주요 기능
- 실행 중 인스턴스의 헬스 모니터링 — EC2 헬스 체크로 인스턴스의 상태·가용성을 자동으로 모니터링하고, 종료되거나 손상된 인스턴스를 대체해 희망 용량을 유지해요.
- 커스텀 헬스 체크 — 내장 헬스 체크뿐 아니라 애플리케이션 특화 커스텀 헬스 체크를 정의해 응답이 정상인지 확인할 수 있어요. 실패한 인스턴스는 자동으로 교체돼요.
- 가용 영역 간 용량 균형 — 여러 가용 영역(AZ)을 지정하면 그룹이 스케일링할 때 인스턴스를 영역별로 고르게 분산해요. 단일 장소의 장애로부터 애플리케이션을 보호해 고가용성·복원력을 제공해요.
- 여러 인스턴스 타입과 구매 옵션 — 하나의 그룹 안에서 여러 인스턴스 타입과 구매 옵션(Spot, On-Demand)을 실행할 수 있어요. Spot 인스턴스를 써서 비용을 최적화하고, Reserved Instance·Savings Plans 할인도 조합할 수 있어요.
- Spot 인스턴스 자동 대체 — 그룹에 Spot 인스턴스가 있으면 중단됐을 때 대체 Spot 용량을 자동으로 요청할 수 있어요. Capacity Rebalancing으로 중단 위험이 높은 Spot 인스턴스를 선제적으로 교체할 수도 있어요.
- 로드 밸런싱 — Elastic Load Balancing과 결합해 정상 인스턴스에 애플리케이션 트래픽을 고르게 분배해요. 인스턴스가 실행·종료될 때 로드 밸런서에 자동 등록·등록 해제돼요.
- 확장성 — 피크 부하에 대비해 용량을 늘리고 수요가 낮아지면 용량을 줄여 가용성을 유지하고 비용을 절감해요. 필요에 따라 그룹 크기를 수동으로 조절할 수도 있어요.
- 인스턴스 리프레시(Instance refresh) — AMI나 시작 템플릿을 업데이트하면 인스턴스를 롤링 방식으로 갱신해요. 카나리(canary) 배포처럼 소수의 인스턴스에 먼저 테스트한 뒤 전체 그룹으로 확산하는 단계적 접근도 가능해요.
- 라이프사이클 후크(Lifecycle hooks) — 새 인스턴스가 실행될 때나 인스턴스가 종료되기 전에 커스텀 작업을 정의할 수 있어요. 이벤트 기반 아키텍처를 만드는 데 특히 유용해요.
- 상태 유지 워크로드 지원 — 라이프사이클 후크로 종료 시 상태를 보존하고, scale-in 보호나 커스텀 종료 정책을 사용해 오래 실행되는 프로세스가 있는 인스턴스가 일찍 종료되지 않게 방지할 수 있어요.
요금
Amazon EC2 Auto Scaling 자체에는 추가 요금이 없어요. 여러분은 그룹을 만들기 위해 사용하는 AWS 리소스 — EC2 인스턴스, EBS 볼륨, CloudWatch 알람 등 — 에 대해서만 비용을 지불하면 돼요. 비용 부담 없이 바로 시작해보기 좋은 구조죠.
Auto Scaling 그룹을 다루는 인터페이스
- AWS Management Console — 로그인 후 내비게이션 검색 상자에서 Auto Scaling groups을 검색해 접근할 수 있는 웹 인터페이스예요.
- AWS CLI — 명령줄에서 그룹을 관리할 수 있어요. 자세한 명령어는
autoscaling섹션의 AWS CLI Command Reference에서 확인할 수 있어요. - AWS Tools for Windows PowerShell — PowerShell 환경에서 스크립트로 관리할 수 있어요.
- AWS SDK — 언어별 API로 관리하며 서명 계산·요청 재시도·오류 처리를 대신 처리해줘요.
- Query API — HTTPS 요청으로 호출하는 저수준 API 액션으로 직접 접근할 수 있어요.
- AWS CloudFormation — CloudFormation 템플릿으로 Auto Scaling 그룹을 만들 수 있어요.