엔드포인트 오토스케일링
엔드포인트 오토스케일링 (Autoscaling)
오토스케일링은 트래픽과 하드웨어 사용률에 따라 모델을 실행하는 엔드포인트 복제본(replica) 수를 동적으로 조정할 수 있게 해 줘요. 오토스케일링을 활용하면 다양한 워크로드를 매끄럽게 처리하면서 비용을 최적화하고 높은 가용성을 보장할 수 있어요.
엔드포인트의 오토스케일링 설정은 Inference Endpoint 카드의 "Settings" 탭에서 찾을 수 있어요. 이 문서에서 언급하는 모든 메트릭 추적 방법은 가이드의 Analytics 섹션에서 더 읽을 수 있어요.
Scale to Zero
스케일 투 제로(scale to zero)는 지정된 시간(기본 1시간) 동안 사용이 없으면 Inference Endpoint가 유휴 상태(idle)로 전환되는 것을 의미해요. 저비용을 최적화하고 싶거나 워크로드가 간헐적일 때 특히 유용합니다.
복제본을 0개로 스케일링하면 활동이 없는 동안 리소스 사용을 최소화해 비용을 아낄 수 있어요. 다만 엔드포인트가 새 요청을 받으면 콜드 스타트(cold start) 기간이 있다는 점을 알아야 해요. 새 복제본이 초기화되는 동안 프록시는 상태 코드 503로 응답합니다. 이를 피하려면 요청에 'X-Scale-Up-Timeout' 헤더를 추가할 수도 있어요. 이 헤더는 엔드포인트가 스케일링 중일 때 프록시가 복제본이 준비될 때까지 요청을 잡고 있게 하거나, 지정한 초만큼 후 타임아웃시키는 역할을 해요. 예를 들어 'X-Scale-Up-Timeout: 600'은 600초를 기다립니다.
모델에 따라 스케일업은 몇 분 걸릴 수 있어서, 애플리케이션이 응답성이 필요하다면 요청 1건에 0→1 스케일링을 쓰는 건 보통 권장하지 않아요.
복제본 수 (Number of replicas)
이 설정으로 복제본의 최대·최소 개수를 바꿀 수 있어요. 즉 비용의 상한과 하한을 직접 제어하는 거죠. 보통 최소값은 가장 낮은 트래픽에서도 사용자에게 수용 가능한 속도로 서빙할 수 있는 수준으로, 최대값은 예산 안에 들면서도 트래픽이 가장 많은 시점에도 사용자를 서빙할 수 있는 수준으로 설정해요.
scale to zero가 활성화되어 있으면 최소 복제본 수는 0이어야 한다는 점을 유의하세요.
오토스케일링 전략 (Autoscaling Strategy)
오토스케일링이 잘 동작하려면 언제 스케일업·다운할지 알려주는 신호가 필요해요. 두 가지 전략이 있어요.
하드웨어 사용률 기반 스케일링
오토스케일링 프로세스는 하드웨어 사용률 메트릭에 따라 트리거돼요. 스케일링 기준은 액셀러레이터 종류에 따라 달라집니다:
- CPU: 모든 복제본의 평균 CPU 사용률이 임계값(기본 80%)에 도달하면 새 복제본이 추가돼요.
- GPU: 모든 복제본의 1분 창 평균 GPU 사용률이 임계값(기본 80%)에 도달하면 새 복제본이 추가돼요.
스케일업은 매분, 스케일다운은 매 2분마다 일어난다는 점을 기억하세요. 이 주기는 응답성과 안정성의 균형을 보장하며, 스케일다운 후 300초의 안정화( stabilization) 시간을 가집니다.
하드웨어 사용률 메트릭은 Analytics 탭에서 추적하거나 여기에서 더 읽을 수 있어요.
대기 요청(pending requests) 기반 스케일링
어떤 경우엔 하드웨어 사용률이 충분히 '빠른' 메트릭이 아니에요. 하드웨어 메트릭은 실제 요청에 비해 항상 약간 뒤처지기 마련이거든요. 선행 지표에 가까운 메트릭은 대기 요청(pending requests)이에요.
- 대기 요청(pending requests) 은 아직 HTTP 상태를 받지 못한 요청이에요. 즉 진행 중(in-flight)인 요청과 현재 처리 중인 요청을 모두 포함해요.
- 기본적으로 지난 20초 동안 복제본당 대기 요청이 1.5개를 넘으면 오토스케일링 이벤트가 트리거되어 배포에 복제본을 하나 추가해요. Endpoint 설정에서 이 임계값을 요구사항에 맞게 조정할 수 있어요.
하드웨어 메트릭과 마찬가지로, 대기 요청도 Analytics 탭에서 추적하거나 여기에서 더 읽을 수 있어요.
더 알아보기 (Learn more)
출처: 공식문서