Azure SQL Managed Instance의 연결 아키텍처

적용 대상: Azure SQL Managed Instance

이 문서에서는 Azure SQL Managed Instance 연결 아키텍처와 구성 요소가 관리되는 인스턴스에 대한 통신 트래픽을 직접 지정하는 방법에 대해 설명합니다.

개요

SQL Managed Instance 인스턴스는 Azure 가상 네트워크 내부와 관리되는 인스턴스 전용 서브넷 내에 배치됩니다. 배포는 다음을 제공합니다.

  • 보안 가상 네트워크-로컬(VNet-local) IP 주소입니다.
  • 온-프레미스 네트워크를 SQL Managed Instance에 연결하는 기능.
  • 연결된 서버 또는 다른 온-프레미스 데이터 저장소에 SQL Managed Instance 연결하는 기능입니다.
  • Azure 리소스에 SQL Managed Instance를 연결하는 기능.

참고

2022년 11월 기능 웨이브는 SQL Managed Instance 기본 연결 구조를 변경했습니다. 이 문서에서는 기능 웨이브에 아직 등록되지 않은 인스턴스의 현재 아키텍처 및 아키텍처에 대한 정보를 제공합니다. 자세한 내용은 2022년 11월 기능 웨이브를 참조하세요.

2022년 11월 기능 웨이브

2022년 11월 기능 웨이브는 SQL Managed Instance 연결 아키텍처에 다음과 같은 변경 사항을 도입했습니다.

  • 관리 엔드포인트를 제거했습니다.
  • 간소화된 필수 네트워크 보안 그룹 규칙(하나의 필수 규칙 제거).
  • 포트 443에서 AzureCloud에 대한 아웃바운드를 더 이상 포함하지 않도록 필수 네트워크 보안 그룹 규칙이 수정되었습니다.
  • 경로 테이블을 간소화했습니다(필수 경로를 13개에서 5개로 줄임).

통신 개요

다음 다이어그램은 SQL Managed Instance에 연결하는 엔터티를 보여 줍니다. 또한 관리되는 인스턴스와 통신해야 하는 리소스도 보여 줍니다. 다이어그램 맨 아래의 통신 프로세스는 데이터 원본으로서 SQL Managed Instance에 연결되는 고객 애플리케이션 및 도구를 나타냅니다.

2022년 11월 이후 Azure SQL Managed Instance 대한 연결 아키텍처의 엔터티를 보여 주는 다이어그램

SQL Managed Instance 데이터 평면과 컨트롤 플레인의 두 평면에서 작동하는 단일 테넌트 플랫폼인 서비스 제공입니다.

데이터 평면은 호환성, 연결 및 네트워크 격리를 위해 고객의 서브넷 내에 배포됩니다. 데이터 평면은 일반적으로 VNet 로컬 엔드포인트를 통해 액세스됩니다. 데이터 평면은 Azure Storage, 인증을 위한 Azure Active Directory(Azure AD) 및 원격 분석 수집 서비스와 같은 Azure 서비스에 따라 달라집니다. 해당 서비스로 가는 SQL Managed Instance 포함하는 서브넷에서 발생하는 트래픽이 표시됩니다.

컨트롤 플레인은 자동화된 에이전트를 통해 배포, 관리 및 핵심 서비스 유지 관리 기능을 수행합니다. 이러한 에이전트는 서비스를 운영하는 컴퓨팅 리소스에 독점적으로 액세스할 수 있습니다. 또는 원격 데스크톱 프로토콜을 사용하여 ssh 해당 호스트에 액세스할 수 없습니다. 모든 컨트롤 플레인 통신은 인증서를 사용하여 암호화되고 서명됩니다. 통신 당사자의 신뢰성을 확인하려면 SQL Managed Instance 인증서 해지 목록을 사용하여 이러한 인증서를 지속적으로 확인합니다.

고급 연결 아키텍처

높은 수준에서 SQL Managed Instance 가상 클러스터에 조인된 격리된 전용 가상 머신 집합에 호스트되는 서비스 구성 요소 집합입니다. 일부 서비스 구성 요소는 고객의 가상 네트워크 서브넷 내에 배포됩니다. 다른 서비스는 Microsoft가 관리하는 보안 네트워크 환경에서 작동합니다.

가상 클러스터는 여러 개의 관리되는 인스턴스를 호스트할 수 있습니다. 클러스터는 새 인스턴스와 제거된 인스턴스를 수용하기 위해 필요에 따라 자동으로 확장 또는 계약을 체결합니다.

고객 애플리케이션은 SQL Managed Instance에 연결하고 가상 네트워크, 피어링된 가상 네트워크, VPN 또는 Azure ExpressRoute로 연결된 네트워크 내의 데이터베이스를 쿼리하고 업데이트할 수 있습니다.

2022년 11월 이후의 Azure SQL Managed Instance 대한 고급 연결 아키텍처를 보여 주는 다이어그램

고객 애플리케이션과의 연결을 용이하게 하기 위해 SQL Managed Instance VNet 로컬 엔드포인트와 퍼블릭 엔드포인트의 두 가지 유형의 엔드포인트를 제공합니다.

VNet 로컬 엔드포인트

VNet 로컬 엔드포인트는 SQL Managed Instance 연결하는 기본 방법입니다. VNet 로컬 엔드포인트는 양식 <mi_name>.<dns_zone>.database.windows.net 이 있고 서브넷의 주소 풀에서 IP 주소로 확인되는 도메인 이름입니다. 엔드포인트는 가상 네트워크에 로컬입니다. VNet 로컬 엔드포인트를 사용하여 모든 표준 연결 시나리오에서 관리되는 인스턴스를 연결할 수 있습니다.

공용 엔드포인트

공용 엔드포인트는 양식 <mi_name>.public.<dns_zone>.database.windows.net 이 있고 인터넷에서 연결할 수 있는 공용 IP 주소로 확인되는 선택적 도메인 이름입니다. 이 엔드포인트는 TDS 트래픽만 SQL Managed Instance 도달할 수 있도록 허용하며 장애 조치(failover) 그룹, SQL Managed Instance 링크 및 유사한 기술과 같은 통합 시나리오에 사용할 수 없습니다.

가상 클러스터 연결 아키텍처

SQL Managed Instance 연결 아키텍처를 자세히 살펴보겠습니다. 다음 다이어그램은 가상 클러스터의 개념적 레이아웃을 보여줍니다.

2022년 11월 이후의 Azure SQL Managed Instance 대한 가상 클러스터 연결 아키텍처를 보여 주는 다이어그램

클라이언트는 <mi_name>.<dns_zone>.database.windows.net 형식을 갖는 호스트 이름을 사용하여 SQL Managed Instance에 연결합니다. 호스트 이름은 공용 DNS(도메인 이름 시스템) 영역에 등록되어 있고 공개적으로 확인할 수 있지만 개인 IP 주소로 확인됩니다. 의 값은 클러스터를 zone-id 만들 때 자동으로 생성됩니다. 새로 만든 클러스터는 보조 관리되는 인스턴스를 호스트하는 경우 영역 ID를 주 클러스터와 공유합니다. 자세한 내용은 자동 장애 조치(failover) 그룹을 통해 여러 데이터베이스의 투명하고 조정된 장애 조치(failover) 사용을 참조하세요.

이 개인 IP 주소는 SQL Managed Instance의 내부 부하 분산 장치에 속합니다. 부하 분산 장치는 트래픽을 SQL Managed Instance 게이트웨이로 보냅니다. 여러 관리되는 인스턴스가 같은 클러스터 내에서 실행될 수 있으므로 게이트웨이는 SQL Managed Instance 호스트 이름을 사용하여 트래픽을 올바른 SQL 엔진 서비스로 리디렉션합니다.

서비스 지원 서브넷 구성

서비스 보안, 관리 효율성 및 가용성을 개선하기 위해 SQL Managed Instance Azure 가상 네트워크 인프라의 일부 요소에 네트워크 의도 정책을 적용합니다. 정책은 서브넷, 연결된 네트워크 보안 그룹 및 경로 테이블을 구성하여 SQL Managed Instance 대한 최소 요구 사항이 충족되도록 합니다. 이 플랫폼 메커니즘은 네트워킹 요구 사항을 사용자에게 투명하게 전달합니다. 이 정책의 주요 목표는 네트워크 잘못된 구성을 방지하고 정상적인 SQL Managed Instance 운영 및 서비스 수준 계약 약정을 보장하는 것입니다. 관리되는 인스턴스를 삭제하면 네트워크 의도 정책도 제거됩니다.

서비스 지원 서브넷 구성은 가상 네트워크 서브넷 위임 기능 위에 빌드되어 자동 네트워크 구성 관리를 제공하고 서비스 엔드포인트를 사용하도록 설정합니다.

서비스 엔드포인트를 사용하여 백업 및 감사 로그를 유지하는 스토리지 계정에 대한 가상 네트워크 방화벽 규칙을 구성할 수 있습니다. 서비스 엔드포인트를 사용하도록 설정하더라도 고객은 Azure Private Link 사용하여 스토리지 계정에 액세스하는 것이 좋습니다. Private Link 서비스 엔드포인트보다 더 많은 격리를 제공합니다.

중요

컨트롤 플레인 구성의 특성으로 인해 서비스 지원 서브넷 구성은 국가별 클라우드에서 서비스 엔드포인트를 사용하도록 설정하지 않습니다.

네트워크 요구 사항

SQL Managed Instance 배포되는 서브넷에는 다음과 같은 특성이 있어야 합니다.

  • 전용 서브넷: SQL Managed Instance 사용하는 서브넷은 SQL Managed Instance 서비스에만 위임할 수 있습니다. 서브넷은 게이트웨이 서브넷일 수 없으며 서브넷에 SQL Managed Instance 리소스만 배포할 수 있습니다.
  • 서브넷 위임: SQL Managed Instance 서브넷은 리소스 공급자에게 Microsoft.Sql/managedInstances 위임되어야 합니다.
  • 네트워크 보안 그룹: 네트워크 보안 그룹을 SQL Managed Instance 서브넷과 연결해야 합니다. 네트워크 보안 그룹을 사용하여 리디렉션 연결을 위해 SQL Managed Instance 구성된 경우 포트 1433 및 포트 11000-11999에서 트래픽을 필터링하여 SQL Managed Instance 데이터 엔드포인트에 대한 액세스를 제어할 수 있습니다. 서비스는 관리 트래픽의 중단 없는 흐름을 허용하기 위해 규칙을 자동으로 프로비전하고 필요에 따라 최신 상태로 유지합니다.
  • 경로 테이블: 경로 테이블은 SQL Managed Instance 서브넷과 연결되어야 합니다. 경로 테이블에 항목을 추가하여 가상 네트워크 게이트웨이 또는 가상 네트워크 어플라이언스를 통해 온-프레미스 개인 IP 주소 범위가 있는 트래픽을 대상으로 라우팅할 수 있습니다. 서비스는 자동으로 항목을 프로비전하고 관리 트래픽의 중단 없는 흐름을 허용하기 위해 필요에 따라 항목을 최신 상태로 유지합니다.
  • 충분한 IP 주소: SQL Managed Instance 서브넷에는 32개 이상의 IP 주소가 있어야 합니다. 자세한 내용은 SQL Managed Instance의 서브넷 크기 결정을 참조하세요. SQL Managed Instance 네트워킹 요구 사항을 충족하도록 구성한 후 기존 네트워크에 관리되는 인스턴스를 배포할 수 있습니다. 그러지 않으면 새 네트워크 및 서브넷을 만듭니다.
  • Azure 정책에서 허용: Azure Policy 사용하여 SQL Managed Instance 서브넷 또는 가상 네트워크를 포함하는 범위에서 리소스를 만들거나 수정하는 것을 방지하는 경우 정책은 SQL Managed Instance 내부 리소스를 관리하는 것을 방지해서는 안 됩니다. 다음 리소스는 정상 작업에 대한 정책 거부 효과에서 제외해야 합니다.
    • 리소스 이름이 로 시작하는 경우 형식 Microsoft.Network/serviceEndpointPolicies의 리소스 \_e41f87a2\_
    • 형식의 모든 리소스 Microsoft.Network/networkIntentPolicies
    • 형식의 모든 리소스 Microsoft.Network/virtualNetworks/subnets/contextualServiceEndpointPolicies
  • 가상 네트워크에 대한 잠금: 전용 서브넷의 가상 네트워크, 부모 리소스 그룹 또는 구독에 대한 잠금이 SQL Managed Instance 관리 및 유지 관리 작업을 방해할 수 있습니다. 리소스 잠금을 사용할 때는 특별히 주의하세요.
  • 복제 트래픽: 두 관리되는 인스턴스 간의 자동 장애 조치(failover) 그룹에 대한 복제 트래픽은 직접적이어야 하며 허브 네트워크를 통해 라우팅되지 않아야 합니다.
  • 사용자 지정 DNS 서버: 가상 네트워크가 사용자 지정 DNS 서버를 사용하도록 구성된 경우 DNS 서버는 공용 DNS 레코드를 확인할 수 있어야 합니다. Azure AD 인증과 같은 기능을 사용하려면 FQDN(정규화된 도메인 이름)을 확인해야 할 수 있습니다. 자세한 내용은 Azure SQL Managed Instance에서 프라이빗 DNS 이름 확인을 참조하세요.

서비스 지원 서브넷 구성을 사용하는 필수 보안 규칙

인바운드 관리 트래픽 흐름을 보장하려면 다음 표에 설명된 규칙이 필요합니다. 규칙은 네트워크 의도 정책에 의해 적용되며 고객이 배포할 필요가 없습니다. 연결 아키텍처 및 관리 트래픽에 대한 자세한 내용은 고급 연결 아키텍처를 참조하세요.

Name 포트 프로토콜 원본 대상 작업
healthprobe-in 모두 모두 AzureLoadBalancer 서브넷 허용
internal-in 모두 모두 서브넷 서브넷 허용

아웃바운드 관리 트래픽 흐름을 보장하려면 다음 표에 설명된 규칙이 필요합니다. 연결 아키텍처 및 관리 트래픽에 대한 자세한 내용은 고급 연결 아키텍처를 참조하세요.

Name 포트 프로토콜 원본 대상 작업
AAD-out 443 TCP 서브넷 AzureActiveDirectory Allow
OneDsCollector-out 443 TCP 서브넷 OneDsCollector 허용
internal-out 모두 모두 서브넷 서브넷 허용
StorageP-out 443 모두 서브넷 보관소. primaryRegion 허용
StorageS-out 443 모두 서브넷 보관소. secondaryRegion 허용

서비스 지원 서브넷 구성을 사용하는 필수 경로

다음 표에 설명된 경로는 관리 트래픽이 대상으로 직접 라우팅되도록 하는 데 필요합니다. 경로는 네트워크 의도 정책에 의해 적용되며 고객이 배포할 필요가 없습니다. 연결 아키텍처 및 관리 트래픽에 대한 자세한 내용은 고급 연결 아키텍처를 참조하세요.

이름 주소 접두사 다음 홉
AzureActiveDirectory AzureActiveDirectory 인터넷*
OneDsCollector OneDsCollector 인터넷*
보관소. primaryRegion 보관소. primaryRegion 인터넷*
보관소. secondaryRegion 보관소. secondaryRegion 인터넷*
subnet-to-vnetlocal 서브넷 가상 네트워크

참고

*다음 홉 열의 인터넷 값은 게이트웨이에 가상 네트워크 외부의 트래픽을 라우팅하도록 지시합니다. 그러나 대상 주소가 Azure 서비스에 대한 경우 Azure는 Azure 클라우드 외부가 아닌 Azure 네트워크를 통해 트래픽을 서비스로 직접 라우팅합니다. Azure 서비스 간의 트래픽은 가상 네트워크가 존재하는 Azure 지역 또는 Azure 서비스의 인스턴스가 배포된 Azure 지역에 관계없이 인터넷을 트래버스하지 않습니다. 자세한 내용은 Azure 가상 네트워크 트래픽 라우팅을 참조하세요.

또한 경로 테이블에 항목을 추가하여 가상 네트워크 게이트웨이 또는 가상 네트워크 어플라이언스를 통해 온-프레미스 개인 IP 범위가 있는 트래픽을 대상으로 라우팅할 수 있습니다.

네트워킹 제약 조건

TLS 1.2는 아웃바운드 연결에 적용됩니다. 2020년 1월부터 Microsoft는 모든 Azure 서비스의 서비스 내 트래픽에 TLS 1.2를 적용합니다. SQL Managed Instance 경우 복제 및 SQL Server 연결된 서버 연결에 사용되는 아웃바운드 연결에 TLS 1.2가 적용되었습니다. SQL Managed Instance 2016년 이전 버전의 SQL Server 사용하는 경우 TLS 1.2 관련 업데이트를 적용해야 합니다.

다음 가상 네트워크 기능은 현재 SQL Managed Instance에서 지원되지 않습니다.

  • Microsoft 피어링: SQL Managed Instance 있는 가상 네트워크와 직접 또는 전이적으로 피어링되는 ExpressRoute 회로에서 Microsoft 피어링을 사용하도록 설정하면 가상 네트워크 내의 SQL Managed Instance 구성 요소와 의존하는 서비스 간의 트래픽 흐름에 영향을 줍니다. 가용성 문제 결과입니다. 이미 Microsoft 피어링을 사용하도록 설정된 가상 네트워크에 대한 SQL Managed Instance 배포는 실패할 것으로 예상됩니다.
  • 글로벌 가상 네트워크 피어링: Azure 지역 간 가상 네트워크 피어링 연결은 2020년 9월 9일 이전에 생성된 서브넷에 배치된 SQL Managed Instance 인스턴스에서 작동하지 않습니다.
  • AzurePlatformDNS: AzurePlatformDNS 서비스 태그를 사용하여 플랫폼 DNS 확인을 차단하면 SQL Managed Instance를 사용할 수 없게 됩니다. SQL Managed Instance 엔진 내에서 DNS 확인을 위해 고객 정의 DNS를 지원하지만 플랫폼 작업을 위한 플랫폼 DNS에 대한 종속성이 있습니다.
  • NAT 게이트웨이: Azure Virtual Network NAT를 사용하여 특정 공용 IP 주소로 아웃바운드 연결을 제어할 수 SQL Managed Instance 렌더링합니다. SQL Managed Instance 서비스는 현재 Azure Virtual Network NAT와 인바운드 및 아웃바운드 흐름의 공존을 제공하지 않는 기본 부하 분산 장치를 사용하도록 제한됩니다.
  • Azure Virtual Network의 IPv6: SQL Managed Instance를 이중 스택 IPv4/IPv6 가상 네트워크에 배포하는 작업은 실패할 것으로 예상됩니다. IPv6 주소 접두사를 포함하는 UDR(사용자 정의 경로)과 네트워크 보안 그룹 또는 경로 테이블을 SQL Managed Instance 서브넷 렌더링에 연결하면 SQL Managed Instance 사용할 수 없습니다. 또한 관리되는 인스턴스 서브넷과 이미 연결된 네트워크 보안 그룹 또는 UDR에 IPv6 주소 접두사를 추가하면 SQL Managed Instance 사용할 수 없게 됩니다. 네트워크 보안 그룹과 이미 IPv6 접두사를 가진 UDR이 있는 서브넷에 SQL Managed Instance 배포는 실패할 것으로 예상됩니다.
  • Microsoft 서비스용으로 예약된 이름의 Azure DNS 프라이빗 영역: 도메인 이름은 예약된 이름windows.net입니다. , , blob.core.windows.netmanagement.core.windows.netdatabase.windows.netcore.windows.nettable.core.windows.netmonitoring.core.windows.net, queue.core.windows.net, graph.windows.net, login.windows.netlogin.microsoftonline.com, , servicebus.windows.netvault.azure.net입니다. Microsoft 서비스에 예약된 이름을 사용하는 연결된 Azure DNS 프라이빗 영역이 있는 가상 네트워크에 SQL Managed Instance 배포하지 못합니다. 예약된 이름을 사용하는 Azure DNS 프라이빗 영역을 관리되는 인스턴스가 포함된 가상 네트워크와 연결하면 SQL Managed Instance 사용할 수 없게 됩니다. Private Link 구성에 대한 자세한 내용은 Azure 프라이빗 엔드포인트 DNS 구성을 참조하세요.

다음 단계