Spot Fleet 자동 확장 이해하기
Spot Fleet 자동 확장 이해하기 (Understand automatic scaling for Spot Fleet)
중요 Spot Fleet은 예정된 투자가 없는 레거시 API를 사용해요. EC2 Fleet이나 Auto Scaling 그룹을 대신 사용할 것을 권장해요. 자세한 내용은 '어떤 플릿 방법이 가장 좋은가?'를 참고하세요.
자동 확장은 Spot Fleet이 수요에 따라 대상 용량을 늘리거나 줄일 수 있게 해줘요. 자동 확장을 사용하면 Spot Fleet은 하나 이상의 확장 정책에 응답해 지정된 범위 내에서 인스턴스를 시작(scale out)하거나 종료(scale in)할 수 있어요.
Spot Fleet의 자동 확장은 Amazon EC2, Amazon CloudWatch, Application Auto Scaling API의 조합으로 가능해요. Spot Fleet 요청은 Amazon EC2로, 경보는 CloudWatch로, 확장 정책은 Application Auto Scaling으로 만들어요.
자동 확장 유형 (Types of automatic scaling)
Spot Fleet은 다음 유형의 자동 확장을 지원해요.
- 대상 추적 확장 (Target tracking scaling) – 특정 지표의 값을 목표로 해 플릿의 현재 용량을 늘리거나 줄여요. 이는 온도조절기(thermostat)가 집의 온도를 유지하는 방식과 비슷해요 — 원하는 온도를 선택하면 온도조절기가 나머지를 해요.
- 단계 확장 (Step scaling) – 경보 위반의 크기에 따라 달라지는 단계 조정(step adjustments)이라고 하는 일련의 확장 조정을 기반으로 플릿의 현재 용량을 늘리거나 줄여요.
- 예약 확장 (Scheduled scaling) – 날짜와 시간에 따라 플릿의 현재 용량을 늘리거나 줄여요.
고려 사항 (Considerations)
Spot Fleet에 자동 확장을 사용할 때 다음을 고려하세요.
- 인스턴스 가중치 (Instance weighting) – 인스턴스 가중치를 사용한다면 Spot Fleet이 필요에 따라 대상 용량을 초과할 수 있다는 점을 기억하세요. 충족 용량(fulfilled capacity)은 부동소수점 수가 될 수 있지만 대상 용량은 정수여야 하므로, Spot Fleet은 다음 정수로 올림해요. 경보가 트리거될 때 확장 정책의 결과를 볼 때 이러한 동작을 고려해야 해요. 예를 들어 대상 용량이 30이고 충족 용량이 30.1이며 확장 정책이 1을 뺀다고 가정해요. 경보가 트리거되면 자동 확장 프로세스가 30.1에서 1을 빼 29.1을 만든 뒤 30으로 올림하므로 확장 조치가 취해지지 않아요. 또 다른 예로, 가중치 2, 4, 8과 대상 용량 10을 선택했지만 가중치 2 인스턴스를 사용할 수 없어 Spot Fleet이 가중치 4와 8 인스턴스를 프로비저닝해 충족 용량이 12가 됐다고 가정해요. 확장 정책이 대상 용량을 20% 줄이고 경보가 트리거되면, 자동 확장 프로세스가 12에서 12*0.2를 빼 9.6을 만든 뒤 10으로 올림하므로 확장 조치가 취해지지 않아요.
- 쿨다운 기간 (Cooldown period) – Spot Fleet용으로 만드는 확장 정책은 쿨다운 기간을 지원해요. 이것은 확장 활동이 완료된 후 이전 트리거 관련 확장 활동이 향후 확장 이벤트에 영향을 줄 수 있는 시간(초)이에요. 확장(scale-out) 정책의 경우 쿨다운 기간이 적용되는 동안, 쿨다운을 시작한 이전 확장 이벤트가 추가한 용량이 다음 확장의 원하는 용량의 일부로 계산돼요. 의도는 지속적이지만 과도하지 않게 확장하는 것이에요. 축소(scale-in) 정책의 경우 쿨다운 기간은 만료될 때까지 후속 축소 요청을 차단하는 데 사용돼요. 의도는 애플리케이션의 가용성을 보호하기 위해 보수적으로 축소하는 것이에요. 그러나 축소 후 쿨다운 기간 동안 다른 경보가 확장 정책을 트리거하면 자동 확장이 확장 가능한 대상을 즉시 확장해요.
- 상세 모니터링 사용 (Use detailed monitoring) – 활용도 변화에 더 빠르게 대응할 수 있도록 1분 주기의 인스턴스 지표를 기반으로 확장할 것을 권장해요. 5분 주기의 지표로 확장하면 응답 시간이 느리고 오래된 지표 데이터로 확장할 수 있어요. 인스턴스의 지표 데이터를 1분 주기로 CloudWatch에 보내려면 상세 모니터링을 명시적으로 활성화해야 해요. 자세한 내용은 'EC2 인스턴스 상세 모니터링 관리하기'와 '정의된 매개변수로 Spot Fleet 요청 만들기'를 참고하세요.
- AWS CLI – AWS CLI로 Spot Fleet 확장을 구성한다면
application-autoscaling명령을 사용하게 돼요.