테스트에 대해 고려해야 하는 제한 및 서비스 제한

개발자는 프로덕션에 릴리스하기 전에 애플리케이션을 테스트하려고 합니다. 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개의 디렉터리를 만들 수 있습니다.
리소스
  • 기본적으로 Azure Active Directory 평가판 버전의 사용자는 최대 50,000개의 Azure AD 리소스를 단일 테넌트에 만들 수 있습니다. 확인된 도메인이 하나 이상 있는 경우 조직의 기본 Azure AD 서비스 할당량은 Azure AD 리소스 300,000개로 확장됩니다. 셀프 서비스 등록으로 만들어진 조직에 대한 Azure AD 서비스 할당량은 내부 관리자 인수를 수행하고 조직이 하나 이상의 확인된 도메인이 있는 관리형 테넌트로 변환된 후에도 50,000개의 Azure AD 리소스로 유지됩니다. 이 서비스 제한은 Azure AD 가격 책정 페이지의 리소스 500,000개 가격 책정 계층 제한과는 관련이 없습니다. 기본 할당량을 초과하여 사용하려면 Microsoft 지원에 문의해야 합니다.
  • 관리자가 아닌 사용자는 Azure AD 리소스를 250개까지 만들 수 있습니다. 이러한 할당량에는 활성 리소스와 삭제되었지만 복원 가능한 리소스가 포함됩니다. 삭제 후 30일이 넘지 않은 Azure AD 리소스만 복원할 수 있습니다. 지난 30일 동안 삭제된 Azure AD 리소스 중 더 이상 복원할 수 없는 개체는 1/4 값으로 이 할당량에 포함됩니다. 정규 업무를 수행하는 동안 이 할당량을 반복적으로 초과할 가능성이 높은 개발자가 있는 경우 앱 등록을 무제한으로 만들 수 있는 권한이 있는 사용자 지정 역할을 만들고 할당할 수 있습니다.
애플리케이션
  • 사용자, 그룹 또는 서비스 주체는 최대 1,500개의 앱 역할 할당을 가질 수 있습니다.
  • 사용자는 사용자 이름과 암호 자격 증명이 구성된 최대 48개의 앱만 가질 수 있습니다.
애플리케이션 매니페스트. 애플리케이션 매니페스트에서 최대 1200개 항목을 추가할 수 있습니다.
그룹
  • 관리자가 아닌 사용자는 최대 250개의 그룹을 Azure AD 조직에 만들 수 있습니다. 또한 조직에서 그룹을 관리할 수 있는 Azure AD 관리자는 그룹을 Azure AD 개체 제한까지 무제한으로 만들 수 있습니다. 사용자에 대한 제한을 제거하는 역할을 할당하는 경우 사용자 관리자 또는 그룹 관리자와 같이 권한이 낮은 기본 제공 역할에 할당합니다.
  • Azure AD 조직 하나에 최대 5000개의 동적 그룹이 포함될 수 있습니다.
  • 단일 Azure AD 조직(테넌트)에서 최대 300개의 역할 할당 가능 그룹을 만들 수 있습니다.
  • 단일 그룹의 멤버가 될 수 있는 Azure AD 리소스 수에는 제한이 없습니다.
  • 사용자는 모든 그룹의 멤버가 될 수 있습니다.
Azure AD 역할 및 권한
  • 최대 30개의 Azure AD 사용자 지정 역할을 Azure AD 조직에 만들 수 있습니다.
  • 테넌트 범위의 단일 주체에 대한 최대 100개의 Azure AD 사용자 지정 역할 할당
  • 테넌트가 아닌 범위(예: 관리 단위 또는 Azure AD 개체)의 단일 주체에 대한 최대 100개의 Azure AD 기본 제공 역할 할당 테넌트 범위에는 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 지연을 계속 사용하고 성공할 때까지 요청을 다시 시도하세요.

다음 단계

테스트 환경을 설정하는 방법을 알아봅니다.