이 문서에서는 다중 테넌트 솔루션의 설계자 및 개발자를 위한 링크 및 리소스 집합을 제공합니다.
다중 테넌트 애플리케이션에 대한 아키텍처
다음 문서에서는 Azure에서 다중 테넌트 아키텍처의 예를 제공합니다.
| 건축학 | 요약 | 기술 포커스 | 
|---|---|---|
| Application Gateway 수신 컨트롤러(AGIC)를 다중 테넌트 Azure Kubernetes Service(AKS) 클러스터에서 사용 | AKS 및 AGIC를 사용하여 다중 테넌티를 구현하는 방법의 예 | 쿠버네티스 | 
| 모든 다중 테넌트 아키텍처 | 다중 테넌시를 포함하는 모든 아키텍처를 나열합니다. | 여러 가지 | 
클라우드 디자인 패턴
다음 클라우드 디자인 패턴 은 다중 테넌트 아키텍처에서 자주 사용됩니다.
| 패턴 | 요약 | 
|---|---|
| 배포 스탬프 패턴 | 데이터 저장소를 포함하여 애플리케이션 구성 요소의 여러 독립적인 복사본(또는 확장 단위)을 배포합니다. | 
| 페더레이션 ID | 외부 ID 공급자에게 인증을 위임합니다. | 
| 게이트 키퍼 | 클라이언트와 애플리케이션 또는 서비스 간의 브로커 역할을 하는 전용 호스트 인스턴스를 사용하여 애플리케이션 및 서비스를 보호하고, 요청의 유효성을 검사 및 삭제하고, 요청과 데이터를 전달합니다. | 
| 대기열 기반 부하 평준화 | 일시적 과부하를 원활하게 하기 위해 태스크와 호출하는 서비스 사이의 버퍼 역할을 하는 큐를 사용합니다. | 
| 분할 | 데이터 저장소를 수평 파티션 또는 분할 집합으로 나눕니다. | 
| 조절 | 애플리케이션 인스턴스, 개별 테넌트 또는 전체 서비스에서 사용하는 리소스의 사용을 제어합니다. | 
안티패턴
한 테넌트의 활동이 다른 테넌트의 시스템 사용에 부정적인 영향을 줄 수 있는 노이즈 네이버 안티패턴을 고려합니다.
마이크로소프트 애저 웰-아키텍처드 프레임워크
SaaS를 디자인하는 경우 SaaS용 Microsoft Azure Well-Architected Framework 워크로드를 사용하여 SaaS 솔루션과 관련된 실행 가능한 아키텍처 지침을 가져옵니다.
Well-Architected 프레임워크의 전체는 다중 테넌트 아키텍처를 비롯한 모든 솔루션에 중요하지만 안정성 핵심 요소에 특히 주의해야 합니다. 클라우드 호스팅의 특성으로 인해 종종 다중 테넌트인 애플리케이션, 공유 플랫폼 서비스 사용, 리소스 및 대역폭 경쟁, 인터넷을 통해 통신 및 상용 하드웨어에서 실행되는 애플리케이션이 발생합니다. 이 환경은 일시적 오류와 더 영구적인 오류가 모두 발생할 가능성을 높입니다.
다중 임차인 아키텍처 지침
Azure에서 다중 테넌트 솔루션 설계(비디오): 이 비디오에서는 Azure에서 다중 테넌트 솔루션을 설계, 설계 및 빌드하는 방법을 설명합니다. SaaS 제품 또는 다른 다중 테넌트 서비스를 빌드하는 경우 고성능, 테넌트 격리 및 배포 관리를 계획할 때 고려해야 할 사항이 많습니다. 이 세션은 신생 기업 및 ISV를 포함하여 다중 테넌트 또는 SaaS 애플리케이션을 빌드하는 개발자 및 설계자를 대상으로 합니다.
Azure Friday - Azure에서 다중 테넌트 솔루션 설계(비디오): Azure Friday의 이 비디오에서는 Azure에서 다중 테넌트 SaaS 솔루션을 설계, 설계 및 빌드하는 방법을 설명합니다.
SaaS로의 여정 가속화 및 위험 제거 (비디오): 이 비디오에서는 기존 솔루션을 온-프레미스에서 Azure로 리프트 앤 시프트하거나 다중 테넌트 아키텍처를 고려하거나 기존 SaaS 웹 애플리케이션을 현대화하는 등 SaaS 배달 모델로 전환하는 방법에 대한 지침을 제공합니다.
Azure 서비스에 대한 리소스
다음 리소스를 사용하여 Azure에서 다중 테넌트 아키텍처를 빌드할 수 있습니다.
거버넌스 및 규정 준수
여러 Azure 구독 구성 및 관리: Azure 구독을 관리하는 방법과 구독에 테넌트 리소스를 할당하는 방법을 고려해야 합니다.
테넌트 간 관리 환경: 서비스 공급자로서 Azure Lighthouse를 사용하여 사용자 고유의 Microsoft Entra 테넌트 내에서 여러 고객의 리소스를 관리할 수 있습니다. Azure 위임 리소스 관리를 사용하여 관리되는 테넌트에서 많은 작업 및 서비스를 수행할 수 있습니다.
Azure 관리형 애플리케이션: 관리되는 애플리케이션에서 리소스는 앱 게시자가 관리하는 리소스 그룹에 배포됩니다. 리소스 그룹은 소비자의 구독에 있지만, 게시자 테넌트의 ID는 해당 리소스 그룹에 액세스할 수 있습니다.
컴퓨팅
AKS의 클러스터 격리 모범 사례: AKS는 다중 테넌트 클러스터를 실행하고 리소스를 격리할 수 있는 방법에 유연성을 제공합니다. Kubernetes에 대한 투자를 최대화하려면 먼저 AKS 다중 테넌트 및 격리 기능을 이해하고 구현해야 합니다. 이 모범 사례 문서에서는 클러스터 운영자에 대한 격리에 중점을 둡니다.
AKS의 클러스터 보안 및 업그레이드 모범 사례: AKS에서 클러스터를 관리할 때 워크로드 및 데이터 보안이 주요 고려 사항입니다. 논리적 격리를 사용하여 다중 테넌트 클러스터를 실행하는 경우 리소스 및 워크로드 액세스를 보호하는 것이 중요합니다.
네트워킹
Azure Private Link
- 공급자(SaaS ISV) 및 소비자 관점의 Azure Private Link 서비스 설명 및 데모: 다중 테넌트 서비스 공급자(예: SaaS 제품을 빌드하는 독립 소프트웨어 공급업체)를 지원하는 Azure Private Link 서비스 기능을 살펴보는 비디오입니다. 이 솔루션을 사용하면 소비자가 소비자 고유의 Azure 가상 네트워크에서 개인 IP 주소를 사용하여 공급자의 서비스에 액세스할 수 있습니다.
 - Azure Private Link 서비스를 사용하는 TCP 프록시 프로토콜 v2 - 심층 분석: Azure Private Link 서비스의 고급 기능인 TCP 프록시 프로토콜 v2에 대한 심층 분석을 제공하는 비디오입니다. 다중 테넌트 및 SaaS 시나리오에서 유용합니다. 이 비디오에서는 Azure Private Link 서비스에서 프록시 프로토콜 v2를 사용하도록 설정하는 방법을 보여 줍니다. 또한 프라이빗 엔드포인트를 통해 서비스에 액세스하기 위해 NAT IP가 아닌 원래 클라이언트의 원본 개인 IP 주소를 읽도록 NGINX 서비스를 구성하는 방법도 보여줍니다.
 - 
              NGINX Plus를 사용하여 Azure Private Link 서비스에서 프록시 프로토콜 TLV 
linkIdentifier디코딩: NGINX Plus를 사용하여 Azure Private Link 서비스에서 TCP 프록시 프로토콜 v2 TLV를 가져오는 방법을 살펴보는 비디오입니다. 비디오는 프라이빗 엔드포인트 연결의 숫자linkIdentifier(라고도 함LINKID)를 추출하고 디코딩하는 방법을 보여줍니다. 이 솔루션은 연결이 만들어진 특정 소비자 테넌트를 식별해야 하는 다중 테넌트 공급자에게 유용합니다. - SaaS 프라이빗 연결 패턴: Azure Managed Applications를 사용하여 프라이빗 엔드포인트 연결의 승인을 자동화하는 한 가지 방법을 보여 주는 예제 솔루션입니다.
 
웹
- SaaS 솔루션에 대한 클레임 기반 라우팅: 이 문서에서는 테넌트에 대한 테넌트 라우팅 및 매핑 요청을 용이하게 하기 위해 역방향 프록시를 사용하여 SaaS 솔루션에서 백 엔드 서비스의 관리를 강화하는 방법을 설명합니다.
 
스토리지 및 데이터
Azure Cosmos DB를 사용하여 대규모로 다중 테넌트 SaaS 앱 디자인 및 빌드(비디오): Azure Cosmos DB 를 사용하여 다중 테넌트 SaaS 애플리케이션을 디자인하고 최적화하는 방법을 알아봅니다. 이 세션에서는 테넌트 격리, 비용 최적화 및 전역 배포와 관련된 주요 디자인 고려 사항을 살펴봅니다. 이 세션의 내용은 소량의 소규모 B2C 테넌트가 많거나, 비즈니스 대 비즈니스(B2B) 테넌트가 큰 불균형을 이루는 경우에도 동일하게 적용됩니다.
Azure Cosmos DB 및 다중 테넌트 시스템: Azure Cosmos DB를 사용하는 다중 테넌트 시스템을 빌드하는 방법을 설명하는 블로그 게시물입니다.
Azure Cosmos DB 계층적 파티션 키: 하위 분할이라고도 하는 계층적 파티션 키를 사용하면 기본적으로 여러 수준의 파티션 키로 컨테이너를 분할할 수 있습니다. 이 방법을 사용하면 가상 파티션 키를 사용하는 다중 테넌트 시나리오 또는 워크로드에 대해 보다 최적의 분할 전략을 사용할 수 있습니다.
Azure SQL Database 다중 테넌트 SaaS 데이터베이스 테넌트 패턴: Azure SQL Database를 사용하여 다중 테넌트 SaaS 애플리케이션에 사용할 수 있는 다양한 테넌트 모델을 설명하는 문서 세트입니다.
대규모 SaaS 공급자를 위해 Azure SQL에서 1백만 개의 데이터베이스 실행: Microsoft Dynamics 365 및 Power Platform: Dynamics 365 팀이 대규모로 데이터베이스를 관리하는 방법을 설명하는 블로그 게시물입니다.
가로, 세로 및 기능 데이터 분할: 많은 대규모 및 다중 테넌트 솔루션에서 데이터는 별도로 관리 및 액세스할 수 있는 파티션으로 나뉩니다. 분할을 통해 확장성을 향상시키고 경합을 줄여 성능을 최적화할 수 있습니다. 또한 사용 패턴 및 테넌트별로 데이터를 나누는 메커니즘을 제공할 수 있습니다.
Azure 서비스의 데이터 분할 전략: 이 문서에서는 다양한 Azure 데이터 저장소에서 데이터를 분할하기 위한 몇 가지 전략을 설명합니다.
Azure Database for PostgreSQL 하이퍼스케일 Citus를 사용하여 다중 테넌트 애플리케이션 빌드 (비디오)
Azure Cosmos DB 및 Azure를 사용하여 다중 테넌트 SaaS 빌드 (비디오): 다중 테넌트 SaaS 스타트업인 Whally가 Azure Cosmos DB 및 Azure에서 최신 플랫폼을 처음부터 빌드하는 방법에 대한 실제 사례 연구입니다. Whally는 Azure App Services에서 ASP.NET Core를 사용하여 분할, 데이터 모델링, 보안 다중 테넌트, 성능 및 변경 피드에서 SignalR로의 실시간 스트리밍에 관한 설계 및 구현 결정을 보여 줍니다.
메시징
Azure Event Grid 도메인: Azure Event Grid 도메인을 사용하면 대규모로 다중 테넌트 이벤트 아키텍처를 관리할 수 있습니다.
Azure Service Bus를 사용하여 테넌트 간 통신: 중앙 공급자와 하나 이상의 고객(또는 테넌트) 간에 통신하는 방법을 보여 주는 Azure Service Bus의 샘플 구현입니다.
아이덴티티
Microsoft Entra ID의 테넌트: Microsoft Entra ID에는 여러 Microsoft Entra 디렉터리에서 작동하는 것을 의미하는 자체적인 다중 테넌트 개념이 있습니다. 개발자는 Microsoft Entra 앱을 사용할 때 다양한 시나리오를 지원하도록 앱을 단일 테넌트 또는 다중 테넌트로 구성하도록 선택할 수 있습니다.
Microsoft ID 플랫폼 엔드포인트를 사용하여 다중 테넌트 디먼 빌드: 이 샘플 애플리케이션은 Microsoft ID 플랫폼 엔드포인트를 사용하여 장기 실행 비대화형 프로세스에서 Microsoft 비즈니스 고객의 데이터에 액세스하는 방법을 보여줍니다. OAuth2 클라이언트 자격 증명 부여를 사용하여 액세스 토큰을 획득한 다음 Microsoft Graph를 호출하고 조직 데이터에 액세스하는 데 사용합니다.
Microsoft Entra ID를 사용하여 다중 테넌트 앱 인증 및 권한 부여: Microsoft Entra ID를 통해 다중 테넌트 시나리오에서 클라우드 네이티브 앱의 기능을 개선할 수 있는 방법을 알아봅니다.
SaaS 솔루션에서 Microsoft Entra ID를 사용하여 사용 권한, 역할 및 범위를 정의하고 구현합니다. 이 문서에서는 SaaS 공급자가 사용할 수 있는 Microsoft Entra 인증 및 권한 부여와 관련된 세 가지 주요 개념을 다룹니다. 애플리케이션 역할 기능, 위임 및 애플리케이션 권한 및 범위 기능에 대해 설명합니다.
애널리틱스
- Power BI 임베디드 분석을 사용하는 다중 테넌트 솔루션: Power BI Embedded가 포함된 다중 테넌트 애플리케이션을 디자인할 때 요구 사항에 가장 적합한 테넌트 모델을 신중하게 선택해야 합니다.
 
사물 인터넷(IoT
- IoT Hub Device Provisioning Service의 다중 테넌트: 다중 테넌트 IoT 솔루션은 일반적으로 지역에 분산된 IoT Hub 그룹을 사용하여 테넌트 디바이스를 할당합니다.
 
AI 및 기계 학습
RAG(보안 다중 테넌트 Retrieval-Augmented 생성) 유추 솔루션 설계 가이드: 이 문서에서는 테넌트별 데이터를 추론에 사용해야 하는 다중 테넌트 솔루션 내에서 RAG 패턴을 적용하는 방법을 설명합니다.
다중 테넌트 SaaS 애플리케이션 및 Azure AI Search에 대한 디자인 패턴: 이 문서에서는 AI Search를 사용하여 빌드된 다중 테넌트 애플리케이션에 대한 테넌트 격리 전략을 설명합니다.
다중 테넌트 방식으로 기계 학습 파이프라인에 대한 솔루션: 이 블로그 게시물에서는 Azure Machine Learning 작업 영역을 사용하여 여러 테넌트를 지원하도록 Azure Machine Learning 파이프라인을 설계하는 방법을 설명합니다.
커뮤니티 콘텐츠
쿠버네티스
Kubernetes에 대한 세 가지 테넌시 모델: Kubernetes 클러스터는 일반적으로 조직의 여러 팀에서 사용됩니다. 이 문서에서는 Kubernetes에 대한 세 가지 테넌시 모델을 설명합니다.
Kubernetes의 다중 테넌트 이해하기: Kubernetes는 기본적으로 다중 테넌트 시스템이 아닙니다. 사용자 지정 구성이 필요합니다. 이 문서에서는 Kubernetes 다중 테넌트 유형에 대해 설명합니다.
Kubernetes 다중 테넌트 모범 사례 가이드: Kubernetes 다중 테넌시는 Kubernetes 사용량이 확산됨에 따라 조직이 점점 더 관심을 가지는 주제입니다. 그러나 Kubernetes는 명시적으로 다중 테넌트 시스템이 아니므로 다중 테넌트 Kubernetes 구현을 설계하기가 어려울 수 있습니다. 이 문서에서는 이러한 문제, 문제를 극복하는 방법 및 Kubernetes 다중 테넌트용 유용한 도구에 대해 설명합니다.
캡슐: 간단하게 만든 Kubernetes 다중 테넌트: 캡슐은 Kubernetes 클러스터에서 다중 테넌트 및 정책 기반 환경을 구현하는 데 도움이 됩니다. PaaS(Platform as a Service) 제품이 아니라 업스트림 Kubernetes만 사용하는 미니멀한 디자인 접근 방식을 사용하는 마이크로 서비스 기반 에코시스템입니다.
크로스플레인: 클라우드 네이티브 컨트롤 플레인 프레임워크: 크로스플레인을 사용하면 Kubernetes 기반 접근 방식을 사용하여 자체 솔루션에 대한 제어 평면을 빌드할 수 있습니다.
기여자
Microsoft는 이 문서를 유지 관리합니다. 다음 기여자는 이 문서를 작성했습니다.
주요 작성자:
- John Downs | 주요 소프트웨어 엔지니어, Azure 패턴 및 사례
 - 파올로 살바토리 | 수석 고객 엔지니어, Azure용 FastTrack
 - Arsen Vladimirskiy | 수석 고객 엔지니어, FastTrack for Azure
 - LaBrina Loving | 주요 고객 엔지니어링 관리자, FastTrack for Azure
 
LinkedIn 비공개 프로필을 보려면, LinkedIn에 로그인하세요.