다음을 통해 공유


다중 테넌트 지원 및 Azure Resource Manager

Azure Resource Manager는 Azure의 핵심 리소스 관리 서비스입니다. Azure의 모든 리소스는 Resource Manager를 통해 생성, 관리되고 결국 삭제됩니다. 다중 테넌트 솔루션을 빌드할 때 Resource Manager를 사용하여 각 테넌트에 대한 리소스를 동적으로 프로비전하는 경우가 많습니다. 이 페이지에서는 다중 테넌트 솔루션과 관련된 Resource Manager의 몇 가지 기능을 설명합니다. 또한 Resource Manager를 사용할 계획일 때 도움이 될 수 있는 지침 링크도 제공합니다.

다중 테넌트를 지원하는 Resource Manager 기능

코드 제공 인프라(Infrastructure as code)

Resource Manager는 IaC라고도 하는 코드 제공 인프라를 지원하는 도구를 제공합니다. 인프라를 코드로 정의하는 것은 클라우드의 모든 솔루션에 좋은 방법이지만 다중 테넌트 솔루션으로 작업할 때 특히 중요합니다. 다중 테넌트 솔루션을 사용하려면 배포 크기를 조정하고 새 테넌트를 온보딩할 때 새 리소스를 프로비전해야 하는 경우가 많습니다. 리소스를 수동으로 만들거나 구성하는 경우 프로세스에 추가적인 위험이 발생하고 시간이 소요됩니다. 수동 접근 방식을 사용하면 전반적인 배포 프로세스의 안정성이 떨어집니다.

배포 파이프라인에서 코드 제공 인프라를 배포할 때는 선언적 방식으로 Azure 리소스를 배포하고 관리하도록 특별히 설계된 언어인 Bicep을 사용하는 것이 좋습니다. 또한 JSON ARM(Azure Resource Manager) 템플릿, Terraform 또는 기본 Resource Manager API에 액세스하는 기타 타사 제품을 사용할 수도 있습니다.

배포 스택은 리소스 그룹 또는 구독에 분산된 경우에도 리소스 집합을 단일 단위로 관리하는 기능을 제공합니다. 배포 스택은 여러 테넌트별 리소스를 다른 위치에 프로비전한 다음 해당 수명 주기를 하나의 논리 단위로 관리해야 하는 경우에 유용할 수 있습니다.

템플릿 사양은 매개 변수화가 잘 되어 있는 단일 템플릿에서 새 리소스, 배포 스탬프 또는 환경을 프로비전하는 데 유용할 수 있습니다. 템플릿 사양을 사용하여 테넌트별 인프라를 배포하는 데 사용하는 템플릿의 중앙 리포지토리를 만들 수 있습니다. 템플릿은 Azure 자체 내에서 저장 및 관리되며, 템플릿 사양에서 배포해야 할 때마다 다시 사용할 수 있습니다.

일부 솔루션에서는 리소스를 동적으로 프로비전 또는 구성하거나 템플릿 배포를 시작하기 위해 사용자 지정 코드를 작성하는 방법을 선택할 수도 있습니다. 사용자 고유의 코드에서 Azure SDK를 사용하여 Azure 환경을 관리할 수 있습니다. Resource Manager에 대한 애플리케이션의 인증을 관리하는 방법에 대한 모범 사례를 따르고 관리 ID를 사용하여 자격 증명을 저장하고 관리하지 않도록 해야 합니다.

역할 기반 액세스 제어

Azure RBAC(역할 기반 액세스 제어)는 Azure 리소스에 대한 액세스를 관리하는 세분화된 접근 방식을 제공합니다. 다중 테넌트 솔루션에서는 특정 Azure RBAC 정책을 적용해야 하는 리소스가 있는지를 고려해야 합니다. 예를 들어, 특히 중요한 데이터가 있는 일부 테넌트가 있을 수 있으며, RBAC를 적용하여 조직의 다른 사용자를 포함하지 않고 특정 개인에게 액세스 권한을 부여해야 할 수 있습니다. 마찬가지로 테넌트가 Azure 리소스에 직접 액세스하도록 요청할 수 있습니다(예: 감사 도중). 이를 허용하도록 선택하는 경우 세밀하게 범위가 지정된 RBAC 권한을 통해 다른 테넌트의 데이터에 대한 액세스 권한을 제공하지 않고도 테넌트의 데이터에 대한 액세스 권한을 부여할 수 있습니다.

태그

태그를 사용하면 Azure 리소스, 리소스 그룹 및 구독에 사용자 지정 메타데이터를 추가할 수 있습니다. 테넌트의 식별자로 테넌트별 리소스에 태그를 지정하여 쉽게 Azure 비용을 추적 및 할당하고 리소스 관리를 간소화할 수 있도록 하는 것이 좋습니다.

Azure 리소스 할당량

Resource Manager는 한도 및 할당량을 적용하는 Azure의 지점 중 하나입니다. 디자인 프로세스 전체에서 이러한 할당량을 고려하는 것이 중요합니다. 모든 Azure 리소스에는 준수해야 하는 제한이 있으며, 이러한 제한에는 특정 기간 내에 Resource Manager에 대해 수행할 수 있는 요청 수가 포함됩니다. 이 제한을 초과하면 Resource Manager가 요청을 제한합니다.

자동화된 배포를 수행하는 다중 테넌트 솔루션을 빌드할 때 다른 고객보다 더 빠르게 이러한 제한에 도달할 수 있습니다. 마찬가지로 많은 양의 인프라를 프로비전하는 다중 테넌트 솔루션은 제한을 트리거할 수 있습니다.

모든 Azure 서비스는 리소스 공급자에 의해 관리되며 이러한 공급자가 자체 제한을 정의할 수도 있습니다. 예를 들어 Azure Compute 리소스 공급자는 가상 머신의 프로비저닝을 관리하고, 짧은 기간 동안 이루어질 수 있는 요청 수에 대한 제한을 정의합니다. 일부 다른 리소스 공급자 제한은 리소스 공급자 제한에 문서화되어 있습니다.

Resource Manager 또는 리소스 공급자가 정의한 제한을 초과할 위험이 있는 경우 다음 완화 방법을 고려하세요.

  • 여러 Azure 구독에서 워크로드를 분할합니다.
  • 구독 내에서 여러 리소스 그룹을 사용합니다.
  • 다른 Microsoft Entra 보안 주체의 요청을 보냅니다.
  • 추가 할당량 할당을 요청합니다. 일반적으로 할당량 할당 요청은 지원 케이스를 열어 제출되지만 일부 서비스는 이러한 요청에 대해 가상 머신 예약 인스턴스와 같은 API를 제공합니다.

선택한 완화 방법은 해당하는 특정 제한에 적합해야 합니다.

격리 모델

일부 다중 테넌트 솔루션에서는 각 테넌트에 대해 별도 리소스 또는 전용 리소스를 배포하도록 결정할 수 있습니다. Resource Manager는 요구 사항 및 리소스 격리를 선택하는 이유에 따라 리소스를 격리하는 데 사용할 수 있는 여러 모델을 제공합니다. Azure 리소스를 격리하는 방법에 대한 참고 자료는 다중 테넌트 솔루션의 Azure 리소스 조직을 참조하세요.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

  • John Downs | 주요 소프트웨어 엔지니어

다른 기여자:

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인하세요.

다음 단계

다중 테넌트 지원에 대한 배포 및 구성 방법을 검토합니다.