여러 가지 방법으로 Azure에서 다중 테넌트 솔루션을 디자인하고 빌드할 수 있습니다. 한 가지 극단적인 경우 솔루션의 모든 리소스를 모든 테넌트 간에 공유할 수 있습니다. 다른 극단적인 경우 모든 테넌트에 대해 격리된 리소스를 배포할 수 있습니다. 모든 테넌트에 대해 별도의 리소스를 배포하는 것이 간단해 보일 수 있으며 일부 테넌트에서 작동할 수 있습니다. 그러나 일반적으로 비용 효율성이 부족하여 리소스 관리를 어렵게 만듭니다. 이러한 극단 사이에 위치한 여러 가지 접근 방식이 있습니다. 각 접근 방식에는 규모, 격리, 비용 효율성, 성능, 구현 복잡성 및 관리 효율성 간의 절전 모드가 필요합니다.
이 섹션에서는 컴퓨팅, 스토리지 및 데이터, 네트워킹, 배포, ID, 메시징, AI 및 기계 학습, IoT(사물 인터넷)를 포함하여 솔루션을 구성하는 Azure 서비스의 주요 범주에 대한 접근 방식을 설명합니다. 각 범주에 대해 방지할 안티패턴과 다중 테넌트 솔루션을 디자인할 때 고려해야 할 주요 패턴 및 접근 방식이 포함됩니다.
배포 스탬프 패턴
다중 테넌트 솔루션은 종종 배포 스탬프 패턴을 사용합니다. 이 패턴은 테넌트 또는 테넌트 그룹에 대한 전용 인프라를 배포합니다. 단일 스탬프는 여러 테넌트 또는 단일 테넌트만 제공할 수 있습니다.
단일 테넌트 스탬프를 사용하면 배포 스탬프 패턴을 보다 쉽게 구현할 수 있습니다. 각 스탬프는 독립적으로 작동하며 애플리케이션 계층에서 다중 테넌트 논리 또는 기능이 필요하지 않습니다. 이 패턴은 가장 높은 수준의 격리를 제공하며 시끄러운 인접 문제를 방지하는 데 도움이 됩니다. 또한 대상 지정학적 지역 또는 고가용성 요구 사항과 같은 특정 요구 사항에 따라 테넌트에 대한 구성 또는 사용자 지정을 제공합니다.
다중 테넌트 스탬프는 스탬프 내에서 다중 테넌트를 관리하기 위해 추가 패턴이 필요하며 시끄러운 인접 문제가 여전히 발생할 수 있습니다. 그러나 배포 스탬프 패턴은 솔루션이 증가함에 따라 지속적인 크기 조정을 지원합니다.
단일 테넌트에 배포 스탬프 패턴을 사용하는 주요 단점은 인프라 비용입니다. 각 스탬프에는 자체 전용 인프라가 필요하며 해당 인프라를 다른 테넌트와 공유할 수 없습니다. 또한 테넌트의 최대 워크로드를 처리하도록 리소스를 프로비전해야 합니다. 가격 책정 모델이 테넌트의 인프라에 대한 배포 비용을 상쇄하는지 확인합니다.
단일 테넌트 스탬프는 종종 일부 테넌트에서 잘 작동합니다. 테넌트 수가 증가할수록 단일 테넌트용 스탬프를 관리하는 일이 점점 더 어려워집니다. 예제 사례 연구는 대규모 공급자에 대한 Azure SQL에서 백만 개의 데이터베이스 실행을 참조하세요. 배포 스탬프 패턴을 적용하여 다중 테넌트 스탬프를 만들 수도 있습니다. 이 방법은 리소스 공유를 지원하고 인프라 비용을 줄입니다.
배포 스탬프 패턴을 구현하려면 자동화된 배포 방법을 사용합니다. 배포 전략에 따라 Bicep 파일 또는 Terraform 템플릿과 같은 선언적 인프라를 코드로 사용하여 배포 파이프라인 내에서 스탬프를 관리할 수 있습니다. 또는 Azure SDK 또는 다른 도구를 사용하여 각 스탬프를 배포하고 관리하는 사용자 지정 코드를 빌드할 수 있습니다.
대상 청중
이 섹션의 문서는 SaaS(Software as a Service) 솔루션을 개발하는 독립 소프트웨어 공급업체 및 신생 기업 등 다중 테넌트 애플리케이션의 솔루션 설계자 및 수석 개발자를 돕는 것을 목표로 합니다. 이 섹션의 지침 대부분은 범주 내의 여러 Azure 서비스에 광범위하게 적용됩니다.
관련 리소스
- 서비스별 Azure 지침을 검토하기 전에 다중 테넌트 솔루션에서 리소스 조직에 대한 접근 방식을 검토합니다.