IAM 및 AWS STS의 API 제한 또는 "속도 초과" 오류를 해결하려면 어떻게 해야 하나요?

2분 분량
0

애플리케이션에 다음과 비슷한 오류 메시지가 표시됩니다. "제한: 속도 초과, 상태 코드: 400,".

간략한 설명

AWS Management Console, AWS Command Line Interface(AWS CLI), 애플리케이션의 API 직접 호출은 AWS 계정의 최대 속도 제한에 영향을 줍니다.

참고: AWS 서비스 요금 한도는 늘릴 수 없습니다.

해결 방법

제한 오류를 방지하려면 다음 모범 사례를 따르세요.

  • 애플리케이션 코드에 지수 백오프 구현합니다. 지수 백오프를 사용하면 AWS에 대한 API 직접 호출이 제한될 때마다 더 오래 기다릴 수 있습니다. 애플리케이션에 따라 최대 지연 횟수와 최대 재시도 횟수가 다를 수 있습니다.
    참고: AWS SDK는 자동 재시도 로직과 지수 백오프 알고리즘을 구현합니다.
  • 일부 애플리케이션은 캐싱을 구현하여 API 직접 호출 속도를 낮출 수 있습니다. 예를 들어 애플리케이션에서 교차 계정 워크플로를 위해 API 직접 호출 AssumeRole을 호출한다고 가정해 보겠습니다. 즉, 수신한 임시 자격 증명을 저장하고 여러 계정 간 호출에 재사용할 수 있습니다. 또한 각 교차 계정 API 직접 호출에 대해 AssumeRole 호출을 새로 만들 필요가 없습니다.
  • 애플리케이션에서 AssumeRole을 호출하고 자격 증명을 캐시하는 경우 역할의 임시 자격 증명최대 세션 기간을 확인하세요. 임시 자격 증명의 기간을 늘리면 AssumeRole을 자주 호출하지 않아도 됩니다.
  • API를 한 번에 호출하는 대신 API 직접 호출을 장기간에 걸쳐 분산시키세요. 예를 들어 AWS Identity and Access Management(AWS IAM) 사용자 및 역할에 대한 권한을 감사하기 위해 SimulatePrincipalPolicy 또는 GenerateServiceLastAccessedDetails를 매일 호출하는 작업을 수행하는 애플리케이션이 이에 해당합니다. API 직접 호출을 동시에 실행하는 대신 시간차를 두고 실행할 수 있습니다.
  • CreatePolicyVersion과 같은 API 직접 호출을 사용하여 IAM 정책 권한을 동적으로 변경하는 애플리케이션의 경우 다른 방법을 고려해 보세요. 예를 들어 IAM 역할 위임 중에 세션 정책을 사용할 수 있습니다.
  • AWS Security Token Service(AWS STS) 제한 오류의 경우 모든 AWS STS 호출을 글로벌 엔드포인트로 보내는 대신 AWS 리전 STS 엔드포인트를 사용하세요. 각 엔드포인트에는 별도의 제한 한도가 있습니다. 리전 AWS STS 엔드포인트는 AWS STS API 직접 호출에 대해 애플리케이션에 더 빠른 응답 시간을 제공할 수 있습니다.
  • AWS 계정에는 별도의 제한 한도가 있으므로 AWS Organizations를 사용하여 여러 계정에 워크로드를 분산하는 것을 고려해 보세요. 추가 비용 없이 새 AWS 계정을 생성할 수 있으며 조직은 통합 결제를 제공합니다. 서비스 제어 정책(SCP)을 사용하면 AWS 계정 전체에서 IAM 사용자 및 역할의 최대 권한을 제어할 수 있습니다. 자세한 내용은 AWS Organizations를 통한 계정 관리AWS Organizations를 시작하려면 어떻게 해야 하나요?를 참조하세요.

관련 정보

Amazon Athena에서 테이블을 자동으로 생성하여 AWS CloudTrail 로그를 검색하려면 어떻게 해야 하나요?

어떤 API 직접 호출이 “속도 초과” 오류의 원인인지 어떻게 알 수 있나요?

AWS 공식
AWS 공식업데이트됨 일 년 전