내용으로 건너뛰기

Amazon Bedrock 온디맨드 리소스를 사용할 때 발생하는 "ThrottlingException" 오류를 해결하려면 어떻게 해야 합니까?

4분 분량
0

Amazon Bedrock 온디맨드 리소스를 사용할 때 발생하는 "ThrottlingException"(429 HTTP 상태 코드) 오류를 해결하고 싶습니다.

간략한 설명

서비스 할당량을 초과하면 Amazon Bedrock이 요청을 거부합니다.

Amazon Bedrock에서 "ThrottlingException"(HTTPS 상태 코드: 429) 오류를 반환하고 클라이언트 측에서 다음 오류 메시지 중 하나가 나타납니다.

  • "Too many requests, please wait before trying again. You have sent too many requests. Wait before trying again."
  • "Your request rate is too high. Reduce the frequency of requests."
  • "Too many tokens, please wait before trying again."

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

AWS 서비스 할당량 모니터링

Amazon Bedrock 서비스 할당량을 검토하여 할당량을 초과하지 않는지 확인하십시오. Amazon CloudWatch 지표를 1분 단위로 확인하여 스로틀링 패턴을 파악하십시오. 피크 타임에 사용량이 할당량을 초과하면 이전에 일괄 처리에 성공했더라도 리소스 스로틀이 발생할 수 있습니다. 애플리케이션의 요청 볼륨이 할당량을 초과하지 않도록 하려면 Amazon Bedrock 런타임 지표 중에서 InputTokenCountInvocations를 모니터링하십시오.

일부 모델에는 Amazon Bedrock이 동시에 적용하는 분당 요청 수(RPM) 및 분당 토큰 수(TPM)에 대한 별도의 할당량이 있습니다.

최신 모델 버전은 이전 버전과 할당량이 다를 수 있습니다.

참고: 서비스 할당량 대시보드에는 구성된 할당량만 표시되고 실시간 사용량은 표시되지 않습니다. 실시간 사용량을 모니터링하려면 CloudWatch를 사용하십시오.

교차 리전 추론 프로필 사용

교차 리전 추론 프로필을 사용하여 트래픽을 여러 AWS 리전으로 동적으로 라우팅하여 각 요청에 대한 가용성을 최적화하고 사용량이 많은 기간에 성능을 개선하십시오. 각 리전은 독립적인 용량 풀을 유지합니다. 한 리전의 용량 풀에서 리소스 스로틀을 방지하려면 요청을 여러 리전으로 분산하십시오.

Anthropic Claude 3.5 Sonnet과 같은 일부 모델의 경우 특정 리전에서 교차 리전 추론 프로필이 필요합니다. Anthropic Claude 4.5 Sonnet과 같은 모델은 계획되지 않은 트래픽 버스트를 관리하는 데 도움이 되는 글로벌 추론 프로필도 제공합니다.

자세한 내용은 GitHub 웹사이트의 amazon-bedrock-workshop에서 교차 리전 간섭에 대한 코드 샘플을 참조하십시오.

참고: 추론 프로필을 사용하려면 Amazon Bedrock이 지원하는 리전 및 모델을 사용해야 합니다.

할당량 증가 요청

새 AWS 계정의 초기 할당량은 기본 할당량보다 낮을 수 있습니다. 일부 모델에는 조정 불가능한 고정 할당량이 있습니다. 워크로드 트래픽이 계정의 온디맨드 할당량을 초과하는 경우 AWS Support 또는 계정 관리자에게 문의하여 할당량 증가를 요청하십시오. AWS는 사용 패턴 또는 서비스 요구 사항에 따라 기본 할당량을 조정할 수 있습니다.

요청에 다음 정보를 포함하십시오.

  • 늘리려는 할당량의 이름
  • 모델 ID
  • 할당량 증가 대상 리전
  • 사용 사례에 대한 간략한 설명
  • 분당 고정 및 최대 토큰 및 요청 수, 요청당 평균 입력 및 출력 토큰을 포함한 예상 사용량

프로비저닝된 처리량 사용

처리량 요구 사항이 높으면 프로비저닝된 처리량을 구매하십시오.

참고: 프로비저닝된 처리량을 사용하면 추가 비용이 발생합니다. 프로비저닝된 처리량 요금에 대한 자세한 내용은 Amazon Bedrock 요금제요금제 모델 섹션을 참조하십시오.

프로비저닝된 처리량을 사용하는 방법에 대한 자세한 내용은 Amazon Bedrock 리소스와 함께 프로비저닝된 처리량 사용을 참조하십시오. AWS CLI 또는 Python SDK를 사용하여 프로비저닝된 처리량을 생성하려면 프로비저닝된 처리량에 대한 코드 예시를 참조하십시오.

참고: 프로비저닝된 처리량을 구매하기 전에 Amazon Bedrock이 지원하는 리전 및 모델을 사용하고 있는지 확인하십시오.

지수 백오프를 통한 재시도 추가

온디맨드 모드를 사용할 때 Amazon Bedrock은 여러 고객 간에 공유되는 용량 풀을 사용합니다. 서비스 수요가 많은 기간에는 요청이 계정 할당량 이내인 경우에도 스로틀링된 리소스가 발생할 수 있습니다. 또한 이 서비스는 모든 사용자에 대한 용량 할당을 자동으로 관리합니다.

지수 백오프와 함께 재시도 및 임의 지터를 사용하는 것이 가장 좋습니다. AWS SDK를 사용하는 경우 재시도 동작을 참조하십시오.

분당 할당량에 도달하면 재시도 백오프가 1분 동안 지속되어야 합니다. 재시도 횟수를 60초 할당량 새로 고침 주기와 동기화하십시오. 또한 1분 동안 몇 초 단위로 요청을 분산하십시오.

적응형 재시도 모드를 사용한 Python 구성의 예:

from botocore.config import Config
config = Config(
    retries={
        'max_attempts': 10,  # Default is 3
        'mode': 'adaptive'
    }
)
bedrock_runtime = boto3.client('bedrock-runtime', config=config)

"ServiceUnavailable" 오류 해결

할당량을 초과하지 않은 일시적인 용량 제약 조건으로 인해 ServiceUnavailable"(HTTP 상태 코드 503) 오류가 발생합니다. 이 오류는 일반적으로 자동으로 해결되지만 중요한 워크로드의 경우 아키텍처 조정이 필요할 수 있습니다.

AWS CloudTrail 로그를 검토하여 "ServiceUnavailable" 오류와 "ThrottlingException" 오류가 발생하는지 확인합니다.

두 오류가 모두 나타나면 다음 작업을 수행하여 "ServiceUnavailable" 오류를 해결합니다.

할당량을 초과하지 않았을 때 발생하는 예상치 못한 스로틀 해결

서비스 할당량을 초과하지 않았는데 스로틀이 발생했다면 다음 조치를 취하십시오.

AWS 공식업데이트됨 9달 전