Amazon Cognito의 할당량 - Amazon Cognito

Amazon Cognito의 할당량

Amazon Cognito에는 계정에서 수행할 수 있는 최대 작업 수에 대한 기본 할당량(구 명칭: 한도)이 있습니다. Amazon Cognito에는 또한 Amazon Cognito 리소스의 최대 수와 크기에 대한 할당량이 지정되어 있습니다.

작업 할당량

리소스 할당량

작업 할당량

할당량 분류

Amazon Cognito에는 애플리케이션에서 특정 사용자 작업을 수행하는 데 사용할 수 있는 InitiateAuth 또는 RespondToAuthChallenge와 같이 작업의 수에 대한 할당량이 있습니다. 이러한 작업은 UserAuthentication 또는 UserCreation과 같은 일반적인 사용 사례 범주로 그룹화됩니다. 분류된 작업의 목록은 Amazon Cognito 사용자 풀 API 작업 범주 및 요청 속도 할당량 섹션을 참조하세요. Service Quotas 콘솔에서 할당량 사용량 및 증가 요청을 범주별로 추적할 수 있습니다.

작업 할당량은 범주 내의 모든 작업에 대한 최대 초당 요청 수(RPS)로 정의됩니다. Amazon Cognito 사용자 풀 서비스는 각 범주의 모든 작업에 할당량을 적용합니다. 예를 들어 UserCreation 범주에는 SignUp, ConfirmSignUp, AdminCreateUser, AdminConfirmSignUp이라는 네 가지 작업이 포함됩니다. 총 할당량을 기준으로 50RPS가 할당됩니다. 동시에 여러 작업이 수행되는 경우, 이 범주 내의 각 작업은 최대 50개의 RPS를 개별적으로 호출하거나 조합할 수 있습니다.

참고

범주 할당량은 계정 및 리전의 모든 사용자 풀에 걸쳐 각 AWS 계정에 적용됩니다.

특별 요청 속도 처리가 포함된 Amazon Cognito 사용자 풀 API 작업

작업 할당량은 범주 수준에서 합산된 전체 요청을 기준으로 측정되고 적용됩니다. 단, 특수 처리 규칙이 적용되는 AdminRespondToAuthChallengeRespondToAuthChallenge 작업은 예외입니다.

UserAuthentication 범주에는 AdminInitiateAuth, InitiateAuth, AdminRespondToAuthChallenge, RespondToAuthChallenge라는 네 가지 작업이 포함됩니다. InitiateAuthAdminInitiateAuth 작업은 범주 할당량에 따라 측정되고 적용됩니다. RespondToAuthChallengeAdminRespondToAuthChallenge의 매칭 작업은 UserAuthentication 범주 제한의 세 배에 해당하는 별도 할당량이 적용됩니다. 이 높은 할당량은 개발자의 앱에 설정된 여러 인증 문제를 수용합니다. 해당 할당량은 대다수의 사용 사례를 수용하기에 충분합니다. 인증 호출 임계값의 3배를 초과할 경우 초과된 비율은 UserAuthentication 범주 할당량에서 차감됩니다.

예를 들어 UserAuthentication 범주의 할당량이 80RPS인 경우 RespondToAuthChallenge 또는 AdminRespondToAuthChallenge를 최대 240RPS(80RPS x 3)까지 호출할 수 있습니다. 앱이 인증 호출당 4개의 문제 라운드를 갖도록 설정되어 있고 초당 70건의 로그인이 발생하는 경우 총 RespondToAuthChallenge는 할당량보다 40RPS 많은 280RPS(70x4)가 됩니다. 추가 40RPS가 70건의 InitiateAuth 호출에 추가되어 UserAuthentication 범주의 총 사용량은 110RPS(40+70)가 됩니다. 이 값은 80RPS로 설정된 범주 할당량을 30RPS만큼 초과하므로 이 앱은 제한됩니다.

Monthly active users(월별 활성 사용자)

월별 활성 사용자(MAU)는 Amazon Cognito 사용자 풀 결제가 계산되는 벤치마크입니다. MAU는 사용자 풀이 할당량 증가에 적격한지를 결정하는 데에도 사용됩니다. 한 달 내에 가입, 로그인, 토큰 새로 고침, 암호 변경 또는 사용자 계정 속성 업데이트와 같이 사용자에게 관련된 자격 증명 작업이 발생하는 경우 해당 사용자는 MAU로 계산됩니다. 또한 Amazon Cognito는 사용자가 사용자 또는 해당 속성을 비활성화하거나 삭제하는 작업을 수행한 달에 사용자를 활성 상태로 간주합니다.

Amazon Cognito 사용자 풀 API 작업 범주 및 요청 속도 할당량

다음 표에서 작업과 해당 범주 간의 매핑이 표시됩니다. 조정 가능한 범주 할당량만 증가를 요청할 수 있습니다. 자세한 정보는 할당량 증가 요청을 참조하십시오. 조정 가능한 할당량은 계정 수준에서 적용됩니다. 일부 범주 작업1은 사용자 풀 수준에서 5RPS로 제한되는 반면 기본 할당량은 계정의 모든 사용자 풀에 적용됩니다.

참고

각 범주의 할당량은 월간 활성 사용자(MAU) 수로 측정됩니다. 기본 할당량은 MAU가 200만 개 미만인 계정에 적용됩니다. MAU가 100만 미만인 경우 할당량 증가를 요청해서는 안 됩니다.

범주 작업 할당량은 사용자 풀의 모든 사용자에 적용됩니다. 사용자별 할당량도 적용됩니다. 앱은 매초마다 각 사용자에 대해 로그인 또는 프로필이나 장치 정보 가져오기를 포함하여 최대 10개의 읽기 작업을 요청할 수 있습니다. 앱은 또한 각 사용자에 대해 프로필 정보 또는 멀티 팩터 인증(MFA) 설정 업데이트를 포함하여 최대 10개의 쓰기 작업을 요청할 수 있습니다. 사용자별 할당량은 변경할 수 없습니다.

범주 설명 기본 할당량(RPS)2 조정 가능 할당량 증가 자격 여부3
UserAuthentication 사용자를 인증(로그인)하는 작업입니다.

이러한 작업에는 특별 요청 속도 처리가 포함된 Amazon Cognito 사용자 풀 API 작업 이(가) 적용됩니다.

120 추가 100만 MAU에 대한 40RPS
UserCreation Amazon Cognito 기본 사용자를 생성하거나 확인하는 작업입니다. Amazon Cognito 사용자 풀에서 직접 생성 및 검증하는 사용자입니다. 50 추가 100만 MAU에 대한 10RPS
UserFederation

Amazon Cognito는 서드 파티 IdP를 통해 사용자를 Amazon Cognito로 페더레이션하는 작업을 관리했습니다.

서드 파티 ID 공급자를 사용하여 사용자를 Amazon Cognito 사용자 풀로 페더레이션(인증)하는 작업입니다. 25 추가 100만 MAU에 대한 10RPS
UserAccountRecovery 사용자 계정을 복구하거나 사용자 암호를 변경 또는 업데이트하는 작업입니다. 30 아니요 해당 사항 없음
UserRead 사용자 풀에서 사용자를 검색하는 작업입니다. 120 추가 100만 MAU에 대한 40RPS
UserUpdate 사용자 및 사용자 속성을 관리하는 데 사용하는 작업입니다. 25 아니요 해당 사항 없음
UserToken 토큰 관리 작업 120 추가 100만 MAU에 대한 40RPS
UserResourceRead Amazon Cognito에서 저장된 디바이스 또는 그룹 멤버십과 같은 사용자 리소스 정보를 검색하는 작업입니다. 50 추가 100만 MAU에 대한 20RPS
UserResourceUpdate 저장된 디바이스 또는 그룹 멤버십과 같은 사용자에 대한 리소스 정보를 업데이트하는 작업입니다. 25 아니요 해당 사항 없음
UserList 사용자 목록을 반환하는 작업입니다. 30 아니요 해당 사항 없음
UserPoolRead 사용자 풀을 읽는 작업입니다. 15 아니요 해당 사항 없음
UserPoolUpdate 사용자 풀을 생성, 업데이트 또는 삭제하는 작업입니다. 15 아니요 해당 사항 없음
UserPoolResourceRead 사용자 풀에서 그룹 또는 리소스 서버와 같은 리소스에 대한 정보를 검색하는 작업입니다.1 20 아니요 해당 사항 없음
UserPoolResourceUpdate 사용자 풀에서 그룹 또는 리소스 서버와 같은 리소스를 수정하는 작업입니다.1 15 아니요 해당 사항 없음
UserPoolClientRead 사용자 풀 클라이언트에 대한 정보를 검색하는 작업입니다.1 15 아니요 해당 사항 없음
UserPoolClientUpdate 사용자 풀 클라이언트를 생성, 업데이트 및 삭제하는 작업입니다.1 15 아니요 해당 사항 없음
ClientAuthentication

client_credentials 허용 유형이 TOKEN 엔드포인트에 요청합니다.

시스템간 요청 인증에 사용할 자격 증명을 생성하는 작업 150 아니요 해당 사항 없음

1 이 범주의 모든 개별 작업에는 단일 사용자 풀에 대해 5RPS 이상의 속도로 작업이 호출되지 않도록 하는 제약 조건이 있습니다.

2 MAU가 200만 미만인 모든 사용자 풀에 대한 요청 속도입니다.

3 요청 속도 증가는 100만~1,000만 MAU가 있는 경우 고려됩니다. 할당량 증가 요청은 현재 사용률, 기존 또는 예상 MAU, 최적화 모범 사례 구현에 따라 평가됩니다. Amazon Cognito는 오용을 방지하고 모든 고객의 서비스 가용성을 보호하기 위해 할당량 증가 요청을 거부할 권리를 보유합니다. MAU가 1,000만 개가 넘으면 Amazon Cognito 할당량에 최적화된 방식으로 솔루션을 설계하는 AWS 솔루션 아키텍트와 함께 작업할 것을 권장합니다. AWS 계정 팀에 문의하세요.

할당량 사용량 추적

Amazon Cognito가 계정 수준에서 각 API 작업 범주에 대한 Amazon CloudWatch의 CallCountThrottleCount 지표를 생성합니다. CallCount를 사용하여 범주와 관련된 고객의 총 호출 수를 추적할 수 있습니다. ThrottleCount를 사용하여 범주와 관련된 총 제한된 호출 수를 추적할 수 있습니다. CallCountThottleCount 지표와 Sum 통계를 사용하여 범주의 총 호출 수를 계산할 수 있습니다. 자세한 내용은 CloudWatch 사용량 지표를 참조하세요.

서비스 할당량을 모니터링할 때 사용률은 사용 중인 서비스 할당량의 백분율입니다. 예를 들어 할당량 값이 리소스 200개이고, 150개의 리소스가 사용 중인 경우 사용률은 75%입니다. 사용량은 서비스 할당량으로 사용 중인 리소스 또는 작업의 수입니다.

CloudWatch 지표를 통한 사용량 추적

CloudWatch를 사용하여 Amazon Cognito 사용자 풀 사용률 지표를 추적하고 수집할 수 있습니다. CloudWatch 대시보드에는 모든 AWS 서비스에 대한 지표가 표시됩니다. CloudWatch를 사용하면 지표 경보를 생성하여 모니터링 중인 특정 리소스를 알리거나 변경할 수 있습니다. CloudWatch 사용량 지표에 대한 자세한 내용은 CloudWatch 사용량 지표 추적을 참조하세요.

Service Quotas 지표를 통한 사용률 추적

Amazon Cognito 사용자 풀은 서비스 할당량 사용량을 보고 관리하는 데 사용할 수 있는 브라우저 기반 인터페이스인 Service Quotas와 통합됩니다. Service Quotas 콘솔에서 특정 할당량 값을 조회하고, 모니터링 정보를 보고, 할당량 증가를 요청하고, CloudWatch 경보를 설정할 수 있습니다. 계정이 한동안 활성화된 상태로 지난 경우 리소스 사용률 그래프를 볼 수 있습니다.

Service Quotas 콘솔에서 할당량을 확인하는 방법에 대한 자세한 내용은 Service Quotas 보기를 참조하세요.

할당량 요구 사항 파악

중요

UserAuthentication, UserCreation, AccountRecovery 등의 카테고리에 대한 Amazon Cognito 할당량을 늘리는 경우 다른 서비스의 할당량도 늘려야 할 수 있습니다. 예를 들어 Amazon Cognito가 Amazon Simple Notification Service(Amazon SNS) 및 Amazon Simple Email Service(Amazon SES)를 통해 보내는 메시지는 해당 서비스의 요청 속도 할당량이 충분하지 않은 경우 실패할 수 있습니다.

할당량 요구 사항을 계산하려면 특정 기간 동안 애플리케이션과 상호 작용할 활성 사용자 수를 구합니다. 예를 들어 애플리케이션에서 평균 100만 명의 활성 사용자가 8시간 내에 로그인할 것으로 예상되는 경우 초당 평균 35명의 사용자를 인증할 수 있어야 합니다.

또한 평균 사용자 세션이 2시간이라고 가정하고 토큰이 1시간 후에 만료되도록 구성한 경우 각 사용자가 세션 중에 토큰을 한 번 새로 고쳐야 합니다. 이 경우 UserAuthentication 범주에서 부하를 지원하는 데 필요한 평균 할당량은 70RPS입니다.

8시간 동안 사용자 로그인 빈도의 편차를 고려한 피크 대 평균 비율이 3:1이라고 가정할 경우 UserAuthentication 할당량으로 200RPS가 필요합니다.

참고

각 사용자 작업에 대해 여러 작업을 호출하는 경우 범주 수준에서 개별 작업 호출 속도를 합산해야 합니다.

할당량 최적화

최대 호출 속도를 처리하려면 다음 방법 중 하나를 따릅니다.

백오프 대기 기간 후에 다시 시도

각 API 호출에서 오류를 포착한 다음 백오프 기간 후에 다시 시도할 수 있습니다. 비즈니스 요구 사항과 로드에 따라 백오프 알고리즘을 조정할 수 있습니다. Amazon SDK에는 재시도 로직이 내장되어 있습니다. 자세한 내용은 AWS 기반의 도구를 참조하세요.

자주 업데이트되는 속성에 외부 데이터베이스 사용

애플리케이션에서 사용자 지정 속성을 읽거나 쓰기 위해 사용자 풀을 여러 번 호출해야 하는 경우 외부 스토리지를 사용합니다. 기본 설정 데이터베이스를 사용하여 사용자 지정 속성을 저장하거나 로그인 중에 캐시 계층을 사용하여 사용자 프로파일을 로드할 수 있습니다. 필요한 경우 사용자 풀에서 사용자 프로파일을 다시 로드하는 대신, 캐시에서 이 프로파일을 참조할 수 있습니다.

클라이언트 측에서 JWT 토큰을 검증합니다.

애플리케이션은 JWT 토큰을 신뢰하기 전에 먼저 검증해야 합니다. API 호출을 사용자 풀에 보내지 않고도 클라이언트 측에서 토큰의 서명과 유효성을 확인할 수 있습니다. 토큰을 검증한 후에는 토큰의 클레임을 신뢰하고 클레임을 더 많은 getUser API 호출을 하는 대신 클레임을 사용할 수 있습니다. 자세한 내용은 JSON 웹 토큰 확인을 참조하세요.

대기실에서 웹 애플리케이션에 대한 트래픽 제한

시험 응시나 라이브 이벤트 참석 등 제한 시간이 있는 이벤트 중에 로그인한 많은 사용자의 트래픽이 예상되는 경우 자체 조절 메커니즘을 사용하여 요청 트래픽을 최적화할 수 있습니다. 예를 들어, 사용자가 세션을 사용할 수 있을 때까지 대기실을 설정하여 사용 가능한 용량이 있을 때 요청을 처리할 수 있습니다. 대기실 참조 아키텍처에 대해서는 AWS 가상 대기실 솔루션을 참조하세요.

할당량 증가 요청

Amazon Cognito에는 계정에서 수행할 수 있는 최대 사용자 풀 작업 수에 대한 할당량이 있습니다. Amazon Cognito에서 조정 가능한 API 요청 비율의 할당량 증가를 요청할 수 있습니다. 할당량 증가를 요청하려면 Service Quotas 콘솔을 사용하거나 서비스 한도 증가 양식을 사용하거나 RequestServiceQuotaIncrease 또는 ListAWSDefaultServiceQuotas API 작업을 사용하면 됩니다.

중요

조정 가능한 할당량만 늘릴 수 있습니다. 할당량 증가 요청은 현재 사용률, 기존 또는 예상 MAU, 최적화 모범 사례 구현에 따라 평가됩니다. 할당량 증가 요청을 제출할 때 현재 사용량, 예상 사용량 및 최적화 방법에 대한 정보를 최대한 제공합니다. 요청 속도를 증가시키는 할당량 증가를 위해서는 현재 평균 요청률이 현재 할당량의 최대 비율에 이미 근접해야 합니다. 조정 가능한 할당량에 대한 자세한 내용은 Amazon Cognito 사용자 풀 API 작업 범주 및 요청 속도 할당량 섹션을 참조하세요.

애플리케이션이 500만 MAU로 성장하고 있는 시나리오를 예로 들어 보겠습니다. UserAuthentication 범주 작업의 현재 평균 사용률은 60%이며, 다시 말해 현재 할당량 120개에 대해 초당 72건의 요청이 발생합니다. 처음 200만 개를 초과하는 300만 MAU 각각에 대한 초당 40개의 요청에 대해 UserAuthentication 할당량 증가를 요청할 수 있으며, 초당 최대 240개의 요청으로 할당량을 지정할 수 있습니다.

Amazon Cognito 자격 증명 풀(페더레이션 자격 증명) API연산 요청 속도 할당량

작업 설명 초당 요청 수의 할당량 조정 가능 할당량 증가 자격 여부
GetId 자격 증명 풀에서 자격 증명 ID를 검색합니다. 25 계정 팀에 문의하세요.
GetOpenIdToken 클래식 워크플로의 자격 증명 풀에서 OpenID 토큰을 검색합니다. 200 계정 팀에 문의하세요.
GetCredentialsForIdentity 향상된 워크플로에 있는 자격 증명 풀에서 AWS 자격 증명을 검색합니다. 200 계정 팀에 문의하세요.
GetOpenIdTokenForDeveloperIdentity 개발자 워크플로의 자격 증명 풀에서 OpenID 토큰을 검색합니다. 200 계정 팀에 문의하세요.

리소스 할당량

리소스 할당량은 리소스의 최대 수와 크기를 좌우합니다. Amazon Cognito에서 조정 가능한 리소스의 할당량을 늘리도록 요청할 수 있습니다. 할당량 증가를 요청하려면 Service Quotas 콘솔이나 서비스 한도 증가 양식을 사용합니다. Service Quotas 콘솔에서 할당량을 요청하려면 Service Quotas 사용 설명서에서 할당량 증가 요청을 참조하세요. Service Quotas에서 아직 할당량을 사용할 수 없는 경우 서비스 한도 증가 양식을 사용합니다.

Amazon Cognito 사용자 풀 리소스 할당량

리소스 Quota 조정 가능 최대 할당량
사용자 풀당 앱 클라이언트 1,000 10,000개
계정당 사용자 풀 1,000 10,000개
사용자 풀당 자격 증명 공급자 300 1,000
사용자 풀당 리소스 서버 25 300
사용자 풀당 사용자 40,000,000 계정 팀에 문의하세요.
사용자 풀당 사용자 지정 속성 50 아니요 해당 사항 없음
속성당 글자 수 2,048바이트 아니요 해당 사항 없음
사용자 지정 속성 이름의 글자 수 20 아니요 해당 사항 없음
암호 정책에서 필요한 최소 암호 글자 수 6~99 아니요 해당 사항 없음
AWS 계정마다 매일 전송되는 이메일 메시지¹ 50 아니요 해당 사항 없음
이메일 제목의 글자 수 140 아니요 해당 사항 없음
이메일 메시지의 글자 수 20,000건 아니요 해당 사항 없음
SMS 확인 메시지의 글자 수 140 아니요 해당 사항 없음
암호의 글자 수 256 아니요 해당 사항 없음
자격 증명 공급자 이름의 글자 수 40 아니요 해당 사항 없음
자격 증명 공급자당 식별자 50 아니요 해당 사항 없음
사용자에 연결된 자격 증명 5 아니요 해당 사항 없음
앱 클라이언트당 콜백 URL 100 아니요 해당 사항 없음
앱 클라이언트당 로그아웃 URL 100 아니요 해당 사항 없음
리소스 서버당 범위 100 아니요 해당 사항 없음
앱 클라이언트당 범위 50 아니요 해당 사항 없음
계정당 사용자 지정 도메인 4 아니요 해당 사항 없음
각 사용자가 속할 수 있는 그룹 100 아니요 해당 사항 없음
사용자 풀당 그룹 10,000개 아니요 해당 사항 없음

¹ 이 할당량은 Amazon Cognito 사용자 풀에 기본 이메일 기능을 사용하는 경우에만 적용됩니다. 더 많은 이메일 전송 볼륨을 활성화하려면 Amazon SES 이메일 구성을 사용하도록 사용자 풀을 구성합니다. 자세한 내용은 Amazon Cognito 사용자 풀에 대한 이메일 설정 섹션을 참조하세요.

Amazon Cognito 사용자 풀 세션 유효성 파라미터

Token 할당량
ID 토큰 5분~1일
새로 고침 토큰 1시간~3,650일
액세스 토큰 5분~1일
호스트된 UI 세션 쿠키 1시간
인증 세션 토큰 3분~15분

Amazon Cognito 사용자 풀 코드 보안 리소스 할당량(조정 불가능)

리소스 Quota
가입 확인 코드 유효 기간 24시간
사용자 속성 확인 코드 유효 기간 24시간
다중 인증(MFA) 코드 유효 기간 3~15분
암호 찾기 코드 유효 기간 1시간
사용자당 최대 ConfirmForgotPassword 호출 수 위험 점수에 따라 시간당 5~20회
사용자당 최대 ResendConfirmationCode 호출 수 시간당 5회 시도
사용자당 최대 ConfirmSignUp 호출 수 시간당 15회 시도
사용자당 최대 ChangePassword 호출 수 시간당 5회 시도
사용자당 최대 GetUserAttributeVerificationCode 호출 수 시간당 5회 시도
사용자당 최대 VerifyUserAttribute 호출 수 시간당 15회 시도

Amazon Cognito 사용자 풀 사용자 가져오기 작업 리소스 할당량(조정 불가능)

리소스 Quota
사용자 풀당 사용자 가져오기 작업 1,000
사용자 가져오기 CSV 행당 최대 문자 수 16,000
최대 CSV 파일 크기 100MB
CSV 파일당 최대 사용자 수 500,000

Amazon Cognito 자격 증명 풀(페더레이션 자격 증명) 리소스 할당량

리소스 Quota 조정 가능 최대 할당량
계정당 자격 증명 풀 1,000 아니요 해당 사항 없음
자격 증명 풀당 Amazon Cognito 사용자 풀 공급자 50 1000
자격 증명 풀 이름에 대한 글자 길이 128바이트 아니요 해당 사항 없음
로그인 공급자 이름에 대한 글자 길이 2,048바이트 아니요 해당 사항 없음
자격 증명 풀당 자격 증명 무제한 아니요 해당 사항 없음
역할 매핑을 지정할 수 있는 자격 증명 공급자 10 아니요 해당 사항 없음
단일 list 또는 lookup 호출의 결과 60 아니요 해당 사항 없음
역할 기반 액세스 제어(RBAC) 규칙 25 아니요 해당 사항 없음

Amazon Cognito Sync 리소스 할당량

리소스 Quota 조정 가능 최대 할당량
자격 증명별 데이터 집합 20 계정 팀에 문의하세요.
데이터 집합당 레코드 1,024 계정 팀에 문의하세요.
단일 데이터 집합의 크기 1MB 계정 팀에 문의하세요.
데이터 집합 이름의 글자 수 128바이트 아니요 해당 사항 없음
요청 성공 후 대량 게시를 위한 대기 시간 24시간 아니요 해당 사항 없음