Microsoft Throttling이란?
Microsoft Throttling은 Microsoft의 클라우드 서비스나 애플리케이션에서 사용자의 리소스 사용을 관리하고 제어하는 기술입니다.
이는 클라우드 서비스, 데이터베이스, API 요청 등을 포함한 다양한 Microsoft 서비스에서 시스템 성능과 안정성을 유지하기 위해 사용됩니다.
주요 목적
- 성능 유지 : 많은 사용자나 애플리케이션이 동시에 시스템에 접근할 때 성능 저하를 방지합니다.
- 리소스 보호 : 과도한 요청이나 사용량으로 인해 시스템 리소스가 고갈되지 않도록 합니다.
- 공정한 사용 보장 : 모든 사용자에게 공평한 리소스 사용 기회를 제공합니다.
- 서비스 안정성 : 갑작스러운 트래픽 증가에도 서비스가 안정적으로 운영되도록 합니다.
주요 기능
- API Rate Limiting : 특정 시간 내에 API 요청 횟수를 제한합니다.
- 예를 들어, 초당 혹은 분당 최대 요청 횟수를 설정하여 과도한 요청을 방지합니다.
- 데이터베이스 쿼리 제한 : 데이터베이스 서버에 과도한 쿼리 요청이 들어오는 것을 방지하여 데이터베이스의 성능을 유지합니다.
- 네트워크 트래픽 제어 : 네트워크 대역폭을 제한하여 특정 사용자나 서비스가 네트워크 리소스를 독점하지 않도록 합니다.
- Compute Resource Limiting : 가상 머신이나 컨테이너에서 CPU, 메모리 사용량을 제한하여 특정 애플리케이션이 전체 시스템 성능에 영향을 미치지 않도록 합니다.
적용 예시
- Azure API Management : API 요청 수를 제한하여 API 서비스의 안정성을 유지합니다.
- Azure SQL Database : 데이터베이스 쿼리의 속도와 빈도를 제어하여 데이터베이스 성능을 최적화합니다.
- Microsoft Graph : Microsoft 365의 데이터를 접근할 때, API 요청 수를 제한하여 서비스의 안정성을 유지합니다.
기술적 구현 방법_ Rate Limiting Algorithms
- Fixed Window : 고정된 시간 간격으로 요청 수를 제한합니다.
- Sliding Window : 이동하는 시간 창을 사용 하여 더 유연하게 요청을 제한합니다.
- Token Bucket : 일정 속도로 토큰을 발행하고, 요청을 처리할 때마다 토큰을 소모하는 방식입니다.
- Leaky Bucket : 일정 속도로 요청을 처리하여 버스트 트래픽을 평준화합니다.
- API Gateway : API 요청을 제어하고 제한을 적용하는 중간 레이어 역할을 합니다.
- Custom Middleware : 애플리케이션 코드에 직접 Throttling 로직을 구현하여 요청을 제어합니다.
이처럼, Microsoft Throttling은 클라우드 인프라와 서비스의 안정성과 성능을 유지하기 위해 중요한 역할을 합니다.
적절한 Throttling 설정은 서비스 가용성을 높이고, 사용자 경험을 개선하는 데 도움을 줍니다.
SHIELDRM 서비스의 특징
SHIELDRM 서비스는 M365(Teams/OneDrive/SharePoint)에 문서가 업로드될 때 DRM 문서를 AIP 문서로 변환하는 기능을 제공합니다.
- 멀티 테넌트를 지원하는 클라우드 SaaS 서비스입니다.
- Microsoft Azure Managed Kubernetes Service 기반으로 운영됩니다.
- 자동 스케일링을 지원합니다.
- 무중단 운영을 보장합니다.
- 고가용성을 보장합니다.
SHIELDRM의 Throttling 정책
SHIELDRM은 Microsoft Graph API를 호출하여 문서를 AIP 문서로 자동 변환합니다.
Microsoft는 서비스의 성능을 관리하고 과도한 서비스 요청으로 인한 장애를 최소화하기 위해 각 서비스와 애플리케이션별로 호출 임계치를 설정하여 조절합니다.
이 임계치를 초과하면 일정 시간 동안 호출이 거부될 수 있습니다. 이러한 정책을 Throttling 정책이라고 합니다.
- 참고 문서:
성능 저하 발생 원인 분석
최근 오픈한 고객사에서 과도한 파일 업로드로 인해 Throttling 임계치에 도달하였습니다.
많은 사용자가 대량의 문서를 OneDrive에 업로드함으로써 Throttling이 발생하고 있습니다.
고객사에 요청 사항
많은 문서를 OneDrive 또는 SharePoint에 한꺼번에 업로드하지 않도록 부서별, 개인별 업로드 일정 부여를 요청드립니다.
2000에서 3000 문서/초(7,200,000 문서/시간) 업로드 시 Throttling이 발생할 수 있습니다.
SHIELDRM 오픈 시 기본 PC에 보관된 대량의 문서를 OneDrive에 업로드할 때 주의가 필요합니다.
Throttling이 발생하면 다른 사용자도 일정 시간 업로드가 불가능할 수 있습니다.