테스트에 대해 고려해야 하는 제한 및 서비스 제한
개발자는 프로덕션에 릴리스하기 전에 애플리케이션을 테스트하려고 합니다. Microsoft ID 플랫폼으로 보호되는 애플리케이션을 테스트하는 경우 테스트에 사용할 Azure AD(Azure Active Directory) 환경 및 테넌트를 설정해야 합니다.
Microsoft ID 플랫폼과 통합되는 애플리케이션을 사용하려면 Azure AD 테넌트에서 만들고 관리할 디렉터리 개체(예: 앱 등록, 서비스 주체, 그룹 및 사용자)가 필요합니다. 앱의 동작에 영향을 주는 모든 프로덕션 테넌트 설정은 테스트 테넌트에서 복제되어야 합니다. 테스트 테넌트를 필요한 조건부 액세스, 권한 부여, 클레임 매핑, 토큰 수명 및 토큰 발급 정책으로 채웁니다. 또한 애플리케이션은 테스트 환경에 추가해야 하는 컴퓨팅 또는 스토리지와 같은 Azure 리소스를 사용할 수 있습니다. 테스트할 앱에 따라 많은 리소스가 테스트 환경에 필요할 수 있습니다.
모든 고객이 서비스를 안정적으로 사용할 수 있도록 Azure AD 및 기타 서비스는 고객 및 테넌트별로 만들 수 있는 리소스의 수를 제한합니다. 테스트 환경을 설정하고 디렉터리 개체 및 Azure 리소스를 배포하는 경우 이러한 서비스 제한 및 할당량 중 일부에 도달할 수 있습니다.
Azure AD, Microsoft Graph 및 기타 Azure 서비스는 리소스를 과도하게 사용하지 않도록 방지하기 위해 서비스에 대한 동시 호출 수를 제한하거나 고객당 컴퓨팅 부하의 양을 제한하기도 합니다. 이는 제한이라고 하는 방식이며, Azure 서비스에서 서비스 중단 없이 사용 및 들어오는 요청을 처리할 수 있도록 합니다. 제한은 애플리케이션, 테넌트 또는 전체 서비스 수준에서 발생할 수 있습니다. 제한은 일반적으로 테넌트 내 또는 테넌트 간에 많은 수의 요청이 애플리케이션에 있을 때 발생합니다. 런타임에서 애플리케이션은 비즈니스 논리의 일부로 Microsoft Graph를 통해 Azure AD 디렉터리 개체를 읽거나 업데이트할 수 있습니다. 예를 들어 사용자 특성을 읽거나 설정하거나, 사용자의 일정을 업데이트하거나, 사용자를 대신하여 이메일을 보냅니다. 실행하는 동안 애플리케이션은 Azure 리소스도 배포, 액세스, 업데이트 및 삭제할 수 있습니다. 테스트 중에 애플리케이션은 리소스 또는 디렉터리 개체를 배포하면서 이러한 런타임 제한 한도 및 앞에서 언급한 서비스 제한에 도달할 수 있습니다.
테스트와 관련된 Azure AD 서비스 제한
일반적인 Azure AD 사용 제약 조건 및 서비스 제한은 여기서 확인할 수 있습니다. 일반적인 Azure 구독 및 서비스 제한, 할당량 및 제약 조건은 여기서 확인할 수 있습니다.
다음 표에는 테스트 환경을 설정하거나 테스트를 실행할 때 고려해야 하는 Azure AD 서비스 제한이 나와 있습니다.
범주 | 제한 |
---|---|
테넌트 | 단일 사용자는 최대 200개의 디렉터리를 만들 수 있습니다. |
리소스 |
|
애플리케이션 |
|
애플리케이션 매니페스트. | 애플리케이션 매니페스트에서 최대 1200개 항목을 추가할 수 있습니다. |
그룹 |
|
Azure AD 역할 및 권한 |
|
테스트와 관련된 제한 한도
적용되는 전체 Microsoft Graph 제한 한도는 다음과 같습니다.
요청 유형 | 모든 테넌트의 앱당 |
---|---|
요청 유형 | 모든 테넌트의 앱당 |
모두 | 초당 2,000개 요청 |
다음 표에는 테스트를 실행할 때 고려해야 하는 Azure AD 제한 한도가 나와 있습니다. 제한은 요청에 대한 개별 비용을 추가하여 작동하는 토큰 버킷 알고리즘을 기반으로 합니다. 그런 다음, 요청 비용의 합계와 미리 결정된 제한을 비교합니다. 제한을 초과하는 요청만 제한됩니다. 요청 비용에 대한 자세한 내용은 ID 및 액세스 서비스 제한을 참조하세요. Microsoft Graph에 대한 다른 서비스별 제한은 여기서 확인할 수 있습니다.
제한 유형 | 리소스 단위 할당량 | 쓰기 할당량 |
---|---|---|
애플리케이션+테넌트 쌍 | 10초당 S: 3500, M:5,000, L: 8,000 | 2분 30초당 3,000 |
애플리케이션 | 20초당 150,000 | 5분당 70,000 |
tenant | 해당 없음 | 5분당 18,000 |
애플리케이션+테넌트 쌍 제한은 실행되는 테넌트 요청의 사용자 수에 따라 달라집니다. 테넌트 크기는 S - 50명 미만 사용자, M - 50~500명 사용자, L - 500명 초과 사용자로 정의됩니다.
제한 한도를 초과하면 어떻게 되나요?
제한 동작은 요청의 유형과 수에 따라 달라질 수 있습니다. 예를 들어 많은 양의 요청이 있는 경우 모든 요청 유형이 제한됩니다. 임계값 한도는 요청 유형에 따라 다릅니다. 따라서 쓰기는 제한되지만 읽기는 여전히 허용되는 시나리오가 발생할 수 있습니다.
제한 한도를 초과하면 429 Too many requests
HTTP 상태 코드를 받고 요청이 실패합니다. 응답에는 다음 요청을 보내기 전에 애플리케이션에서 대기(또는 휴지)해야 하는 시간(초)을 지정하는 Retry-After
헤더 값이 포함됩니다. 요청을 다시 시도하십시오. 재시도 값이 경과하기 전에 요청을 보내면 요청이 처리되지 않고 새 재시도 값이 반환됩니다. 429 오류 코드에 따라 요청이 다시 실패하면 여전히 제한되고 있는 것입니다. 권장되는 Retry-After
지연을 계속 사용하고 성공할 때까지 요청을 다시 시도하세요.
다음 단계
테스트 환경을 설정하는 방법을 알아봅니다.