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 상태