1 AWS EC2 Auto Scaling Warm Pool 이란?
- Warm Pool은 EC2 Auto Scaling Group을 위해 사전 초기화된 EC2 인스턴스 풀입니다.
- 애플리케이션이 스케일 아웃해야 할 때 Auto Scaling Group이 Warm Pool의 인스턴스를 활용할 수 있습니다.
- 새로운 인스턴스를 시작하는 대신 Warm Pool의 인스턴스를 사용하여 애플리케이션 트래픽을 빠르게 처리할 수 있습니다.
- 인스턴스가 애플리케이션 트래픽을 빠르게 처리할 수 있도록 준비된 상태를 유지합니다.
- 부팅 시간이 긴 애플리케이션의 지연 시간을 줄일 수 있습니다.
2 주의사항
- Warm Pool이 실제로 필요하지 않은 경우에 생성하면 불필요한 비용이 발생할 수 있습니다.
- 첫 번째 부팅 시간이 애플리케이션에 눈에 띄는 지연 문제를 일으키지 않는다면 Warm Pool은 필요하지 않을 수 있습니다.
- 혼합 인스턴스 정책이 있는 Auto Scaling 그룹에는 Warm Pool을 추가할 수 없습니다.
- Spot 인스턴스를 요청하는 시작 템플릿이나 시작 구성이 있는 Auto Scaling 그룹에도 추가할 수 없습니다.
3 Warm Pool의 기본 크기
- 기본적으로 Warm Pool의 크기는 Auto Scaling 그룹의 최대 용량과 원하는 용량의 차이로 계산됩니다.
- 예시:
- Auto Scaling 그룹의 원하는 용량이 6이고 최대 용량이 10인 경우
- Warm Pool을 처음 설정하고 초기화할 때 Pool의 크기는 4가 됩니다.
4 Warm Pool Size 설정
- MaxGroupPreparedCapacity 옵션을 사용하여 Warm Pool의 최대 용량을 별도로 지정할 수 있습니다.
- 그룹의 현재 용량보다 큰 사용자 지정 값을 설정해야 합니다.
- 사용자 지정 값을 제공하면 Warm Pool의 크기는 다음과 같이 계산됩니다:
- 사용자 지정 값과 그룹의 현재 원하는 용량의 차이
- 예시:
- Auto Scaling 그룹의 원하는 용량이 6
- 최대 용량이 20
- 사용자 지정 값이 8인 경우
- Warm Pool을 처음 설정하고 초기화할 때 Pool의 크기는 2가 됩니다.
5 Warm Pool 인스턴스 상태
- Warm Pool의 인스턴스는 세 가지 상태 중 하나로 유지할 수 있습니다:
- Stopped
- Running
- Hibernated
5.1 Stopped 상태
- 비용을 최소화하는 가장 효과적인 방법입니다.
- 사용하는 볼륨과 인스턴스에 연결된 Elastic IP 주소에 대해서만 비용을 지불합니다.
5.2 Hibernated 상태
- 메모리 내용(RAM)을 삭제하지 않고 인스턴스를 중지할 수 있습니다.
- 인스턴스가 최대 절전 모드일 때:
- 운영 체제에 RAM 내용을 Amazon EBS 루트 볼륨에 저장하도록 신호를 보냅니다.
- 인스턴스가 다시 시작되면 루트 볼륨이 이전 상태로 복원됩니다.
- RAM 내용이 다시 로드됩니다.
- 비용:
- EBS 볼륨 (RAM 내 용 저장 포함)
- 인스턴스에 연결된 Elastic IP 주소에 대해서만 비용 지불
5.3 Running 상태
- Warm Pool 내에서 인스턴스를 Running 상태로 유지하는 것도 가능합니다.
- 불필요한 요금이 발생할 수 있으므로 권장하지 않습니다.
- 인스턴스가 중지되거나 최대 절전 모드일 때는 인스턴스 자체 비용을 절약할 수 있습니다.
- 인스턴스가 실행 중일 때만 비용을 지불합니다.
5.4 상태별 비용 비교 예시 (m5.large 기준)
- 예시 구성:
- 인스턴스 유형: m5.large
- EBS 볼륨: 10GB
- 기간: 30일
Running 상태 비용
- 인스턴스 비용: $0.096/시간 * 24시간 * 30일 = $69.12
- EBS 볼륨 비용: $0.10/GB-월 * 10GB = $1.00
- 총 비용: $70.12/월
Stopped 상태 비용