기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
HyperPod 추론 모델 배포에 대한 요청 제한 구성
Amazon SageMaker HyperPod 추론 모델 배포에서 요청 제한을 구성하여 각 포드가 수락하는 동시 요청 수를 제어할 수 있습니다. 한도에 도달하면 초과 요청은 구성 가능한 HTTP 오류 응답을 수신하여 장애 조치 동작을 활성화하고 로드 밸런서가 트래픽을 다른 포드로 리디렉션하도록 허용합니다.
요청 제한은 모델 컨테이너와 함께 실행되는 nginx 사이드카 프록시에 의해 적용됩니다. 이렇게 하려면 배포에서 지표를 활성화해야 합니다.
사전 조건
요청 제한을 구성하기 전에 다음을 확인합니다.
-
지표는 배포(
metrics.enabled: true)에서 활성화됩니다. 요청 제한을 적용하는 nginx 사이드카 프록시는 지표가 활성화된 경우에만 생성됩니다.
배포 YAML에서 요청 제한 구성
worker InferenceEndpointConfig YAML의 아래에 requestLimits 섹션을 추가합니다. 다음 예제에서는 각 포드를 대기열이 5인 동시 요청 10개로 제한하여 제한이 초과되면 HTTP 503을 반환합니다.
apiVersion: inference.sagemaker.aws.amazon.com/v1 kind: InferenceEndpointConfig metadata: name: my-model namespace: ns-team-a spec: modelName: my-model-name instanceType: ml.g5.8xlarge invocationEndpoint: invocations modelSourceConfig: modelSourceType: s3 s3Storage: bucketName: my-model-bucket region: us-east-2 modelLocation: models/my-model worker: image: my-model-image:latest modelInvocationPort: containerPort: 8080 name: http modelVolumeMount: mountPath: /opt/ml/model name: model-weights resources: limits: nvidia.com/gpu: "1" requests: cpu: "4" memory: "32Gi" nvidia.com/gpu: "1" requestLimits: maxConcurrentRequests: 10 maxQueueSize: 5 overflowStatusCode: 503 metrics: enabled: true tlsConfig: tlsCertificateOutputS3Uri: "s3://my-tls-bucket/certs"
필드 설명
maxConcurrentRequests(선택 사항, 정수)-
nginx 사이드카 프록시가 포드당 수락하는 동시 요청의 최대 수입니다. 한도에 도달하면 새 요청이 대기열에 추가되거나(
maxQueueSize이 구성된 경우) 오버플로 상태 코드와 함께 즉시 거부됩니다. 최소값: 1 설정하지 않거나 0으로 설정하면 동시성 제한이 적용되지 않습니다. maxQueueSize(선택 사항, 정수)-
동시 요청 한도에 도달하면 대기열에 추가할 최대 요청 수입니다. 대기 중인 요청은 진행 중인 요청이 완료될 때까지 대기합니다. 대기열이 가득 차면 새 요청은 오버플로 상태 코드 응답을 받습니다. 최소값: 0 설정하지 않거나 0으로 설정하면 대기열이 적용되지 않습니다. 동시 요청 한도에 도달하면 요청이 즉시 거부됩니다.
overflowStatusCode(선택 사항, 정수)-
요청 한도를 초과할 때 반환되는 HTTP 상태 코드입니다. 400에서 599 사이여야 합니다. 기본값: 429(요청이 너무 많음). 공통 값:
-
429- 요청이 너무 많습니다(기본값). 속도 제한을 위한 표준 HTTP 상태입니다. -
503- 서비스를 사용할 수 없습니다. 로드 밸런서가 다른 포드에서 재시도하도록 하려는 경우에 유용합니다.
-
요청 제한 작동 방식
추론 요청이 nginx 사이드카 프록시에 도착하면:
-
활성 요청 수가 미만이면
maxConcurrentRequests요청이 모델 컨테이너로 전달됩니다. -
한도에 도달하고
maxQueueSize가 0보다 크면 요청이 대기열에 추가되고 활성 슬롯을 사용할 수 있을 때까지 대기(최대 60초)합니다. -
대기열이 가득 찼거나(또는 대기열이 구성되지 않은 경우) 구성된
overflowStatusCode및 JSON 오류 응답과 함께 요청이 즉시 거부됩니다.{ "error": "Too many concurrent requests", "max_concurrent": 10, "max_queue_size": 5, "current": 10 }
예제
대기열이 없는 엄격한 동시성 제한
대기열에 추가하지 않고 초과 요청을 즉시 거부하려면:
requestLimits: maxConcurrentRequests: 5 overflowStatusCode: 429
대기열에 동시성 제한
거부하기 전에 작은 대기열을 허용하려면:
requestLimits: maxConcurrentRequests: 10 maxQueueSize: 5 overflowStatusCode: 503
이 구성에서는 최대 10개의 요청이 동시에 처리됩니다. 11번째~15번째 요청이 도착하면 대기열에 추가되고 활성 슬롯을 기다립니다. 16번째 이상 요청은 HTTP 503을 수신합니다.