중요합니다
이 기능은 현재 미리 보기 상태이며 서비스 수준 계약 없이 제공됩니다. 현재 프로덕션 워크로드에는 미리 보기가 권장되지 않습니다. 이 미리 보기의 특정 기능은 지원되지 않거나 기능 제약 조건이 있을 수 있습니다. 자세한 내용은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.
Azure Cosmos DB 플릿을 사용하는 경우 풀을 사용하여 처리량 관리를 간소화할 수 있습니다. 풀을 사용하면 여러 리소스가 필요에 따라 RU/s를 사용할 수 있는 플릿스페이스 수준에서 초당 처리량 요청 단위(RU/s)의 공유 풀을 만들 수 있습니다. 풀은 플릿 기능이므로 동일한 플릿스페이스 내의 여러 구독 및 리소스 그룹의 리소스는 공통 풀에서 RU/s를 공유할 수 있습니다.
풀은 각 테넌트의 데이터가 별도의 데이터베이스 계정, 데이터베이스 또는 컨테이너에 저장되어야 하는 격리 요구 사항이 있는 다중 테넌트 애플리케이션을 구축하는 고객을 위해 설계되었습니다. 최대 처리량 요구를 수용하기 위해 처리량을 과도하게 프로비전하는 대신 풀을 사용하면 일반적인 워크로드에 따라 각 테넌트를 만들 수 있습니다. 급증으로 인해 테넌트에 더 많은 자원이 필요한 경우 공유 풀에서 추가로 용량을 확보할 수 있습니다. 이 방법을 사용하면 개별 테넌트 리소스의 크기를 조정하는 동시에 차량 전체에서 성능 및 비용 효율성을 유지할 수 있습니다.
중요합니다
풀링(Pooling)은 다양한 트래픽 패턴을 가진 여러 테넌트가 많은 멀티테넌트 애플리케이션 및 시나리오에 사용됩니다. 풀링 시나리오에서 모든 테넌트가 동시에 활성화되는 것은 아닙니다. 적은 수의 테넌트 또는 대부분의 테넌트가 100개% 유휴 상태이거나 100개% 활성 상태인 워크로드를 실행하는 경우 풀링이 더 많은 이점을 제공하지 못할 수 있습니다.
개념들
전용 RU/s: 이 처리량은 해당 리소스 전용 데이터베이스 또는 컨테이너 수준에서 프로비전된 RU/s입니다. 이러한 요청 단위는 보장되며 각 리소스에 최소 수준의 보장된 성능이 있는지 확인합니다.
공유 데이터베이스 또는 컨테이너 수준에서 설정된 데이터베이스 계정 내의 리소스에 대한 전용 RU/s가 항상 있습니다. 이러한 전용 처리량 할당은 공유 데이터베이스 또는 컨테이너 수준에서 이미 구성된 RU/s를 나타냅니다.
전용 RU/s의 진입점은 100 – 1,000 자동 크기 조정 RU/s입니다.
자동 크기 조정의 경우 전용 RU/s는 항상 보장되고 사용 가능한 자동 크기 조정 최대 처리량을 나타냅니다.
풀 RU/s: 풀된 RU/s를 설정할 수 있습니다. 풀링된 RU/s는 전용 RU/s를 초과할 때 데이터베이스 계정 내 모든 리소스가 사용할 수 있는 플릿스페이스 내 총 RU/s입니다.
전용 RU/s 할당을 초과하는 리소스는 풀링 기능 없이 제한됩니다. 풀링을 사용하면 공유 풀에서 더 많은 RU/s를 사용하여 전용 한도를 초과하여 확장할 수 있으므로 다중 테넌트 워크로드의 비용 효율성과 성능이 향상됩니다.
전용 RU/s는 풀에서 사용되기 전에 먼저 소비됩니다.
예제 시나리오
각각 1,000개의 테넌트가 있는 ISV(독립 소프트웨어 공급업체)라고 가정해 보겠습니다.
리소스 간 보안 격리를 위해 테넌트당 하나의 데이터베이스 계정
계정당 하나의 컨테이너
컨테이너당 100-1000 RU/s 사이에서 자동 크기 조정이 설정된 상태
그러나 임차인 활동은 예측할 수 없습니다.
대부분의 테넌트는 가장 낮은 RU/s를 사용합니다.
활성 테넌트당 최대 수요는 5000RU/s에 도달할 수 있습니다.
풀링 없이
최대 부하를 처리하려면 모든 컨테이너를 5000RU/s로 오버프로비전해야 합니다.
이 솔루션은 테넌트가 유휴 상태일 때 RU/s가 낭비되고 불필요한 비용이 발생합니다.
풀링이 있는 경우
컨테이너는 주로 전용 RU/s를 사용합니다(예: 100-1,000RU/s).
플릿에는 플릿스페이스 수준에서 별도의 처리량 풀(예: 100,000 ~ 500,000RU/s)이 있습니다.
입주자는 전용 RU/s를 초과할 때 속도가 제한되는 대신 풀에서 일시적으로 사용할 수 있습니다.
과다할당을 방지하면서, 수요가 급증할 때 테넌트가 필요한 처리량을 확보할 수 있도록 합니다.
풀된 처리량 작동 방식
풀 RU/s는 기본적으로 자동 크기 조정에 대해 구성됩니다. 플릿스페이스 내에서 풀을 구성하는 경우 풀이 확장할 수 있는 최소 처리량과 최대 처리량을 정의합니다. 최대값은 최솟값의 최대 10배일 수 있습니다. 예를 들어 최소 처리량을 100,000RU/s로 설정하는 경우 최대값을 최대 1,000,000RU/s까지 설정할 수 있습니다.
매 시간마다 풀을 사용할 수 있는 각 지역에 대해 시간 내에 조정된 풀의 가장 높은 RU/s에 대해 요금이 청구됩니다. 풀이 유휴 상태이면 각 지역에 대한 최소 RU/s에 대한 요금이 청구됩니다.
구성 규칙
처리량 풀링을 수행하려면 플릿스페이 스의 모든 데이터베이스 계정이 동일한 지역 구성을 가져야 합니다. 즉, 지역이 다르거나 단일 또는 다중 지역 쓰기 설정이 다른 계정(범용 및 중요 비즈니스용 서비스 계층)은 동일한 처리량 풀을 공유할 수 없습니다 . 풀 RU/s는 지역 간에도 공유되지 않습니다.
허용되는 구성과 허용되지 않는 구성의 예는 다음과 같습니다.
- 다양한 지역 구성
- 허용됨: 단일 지역으로 구성된 두 개의 계정이 서로 다른 두 Azure 지역에 기록됩니다.
- 허용됨: 두 개의 고유한 Azure 지역에서 다중 지역 쓰기로 구성된 두 개의 계정.
- 허용되지 않음: 단일 지역 쓰기를 사용하지만 두 개의 고유한 Azure 지역에 분산된 하나의 계정. 단일 지역 쓰기가 있는 또 다른 계정은 다른 단일 Azure 지역에 있습니다.
- 허용되지 않음: 두 개의 서로 다른 지역 집합에 대해 전역 배포가 구성된 두 개의 계정입니다.
- 다양한 서비스 계층
- 허용됨: 각각 별도의 두 Azure 지역에 구성된 두 계정, 둘 다 다중 지역 쓰기(비즈니스 중요) 설정됨.
- 허용되지 않음: 두 개의 계정( 다중 지역 쓰기가 있는 계정과 단일 지역 쓰기가 있는 계정)
비고
계정은 동일한 풀에 참여하려면 다중 지역 쓰기(중요 비즈니스용) 또는 단일 지역 쓰기(범용)의 기본 구성이 동일해야 합니다.
소비 모니터링
미리 보기 시, 플릿 수준에서 사용할 수 있는 FleetspaceAutoscaledThroughput 메트릭을 통해 조정된 RU/s의 풀을 모니터링할 수 있습니다.
다음 단계에 따라 Azure Monitor를 통해 Azure Portal의 계정 수준에서 풀된 RU/s 소비를 모니터링할 수도 있습니다.
Azure Portal에서 Azure Cosmos DB 계정의 메트릭 페이지로 이동합니다.
관심 있는 데이터베이스 및 컨테이너로 필터링합니다.
총 요청 메트릭을 선택합니다. 그런 다음 용량 유형 별로 분할하여 요청이 풀에서 사용되었는지 아니면 리소스의 전용 처리량에서만 사용되었는지 확인합니다. 각 리소스에 대해 프로비전된 전용 RU/s와 처리량 풀에서 사용된 요청 단위 수를 비교하여 측정하기 위해 총 요청 단위 메트릭을 사용할 수도 있습니다.
제한점
풀링 기능을 사용하면 각 실제 파티션에 사용할 수 있는 총 RU/s에는 여전히 표준 물리적 파티션 제한이 적용됩니다. 각 물리적 파티션에는 풀에서 사용할 수 있는 추가 RU/s 사용량에 제한이 있습니다.
미리 보기에서:
실제 파티션은 전용 처리량 외에도 풀에서 최대 3,000개의 추가 RU/s를 사용합니다.
풀에서 더 많은 RU/s를 사용할 수 있더라도 실제 파티션의 전용 + 풀 RU/s 총 사용량은 총 8,000RU/s를 초과할 수 없습니다.
풀링을 사용할 때 실제 파티션이 소비할 수 있는 최대 총 RU/s는 $\min(3000+currentThroughput, 8000)$입니다.
팁 (조언)
Azure Monitor의 메트릭 PhysicalPartitionThroughput 을 사용하여 각 실제 파티션에 할당되는 전용 RU/s 수를 확인할 수 있습니다.