다음을 통해 공유


Virtual WAN에서 프라이빗 링크 사용

Azure Private Link프라이빗 엔드포인트를 공개하여 개인 IP 주소 연결을 통해 Azure Platform-as-a-Service 제품을 연결할 수 있는 기술입니다. Azure Virtual WAN을 사용하면 가상 허브에 연결된 가상 네트워크 중 하나에 프라이빗 엔드포인트를 배포할 수 있습니다. 이 프라이빗 링크는 동일한 Virtual WAN에 연결된 다른 가상 네트워크나 분기에 대한 연결을 제공합니다.

시작하기 전에

이 문서의 단계에서는 하나 이상의 허브와 둘 이상의 가상 네트워크가 Virtual WAN에 연결된 가상 WAN을 배포했다고 가정합니다.

새 Virtual WAN 및 새 허브를 만들려면 다음 문서의 단계를 수행합니다.

Azure의 프라이빗 엔드포인트 연결은 상태 저장입니다. Virtual WAN을 통해 프라이빗 엔드포인트에 대한 연결이 설정되면 트래픽은 서로 다른 Virtual WAN 구성 요소(예: Virtual Hub 라우터, ExpressRoute 게이트웨이, VPN Gateway, Azure Firewall 또는 NVA)를 통해 하나 이상의 트래픽 홉을 통해 라우팅됩니다. 정확한 홉 트래픽은 Virtual WAN 라우팅 구성을 기반으로 합니다. 백그라운드에서 Azure의 소프트웨어 정의 네트워킹 계층은 단일 5 튜플 흐름과 관련된 모든 패킷을 다른 Virtual WAN 구성 요소를 서비스하는 백 엔드 인스턴스 중 하나로 보냅니다. 비대칭으로 라우팅된 트래픽(예: 다른 백 엔드 인스턴스로 라우팅된 단일 5 튜플 흐름에 해당하는 트래픽)은 지원되지 않으며 Azure 플랫폼에서 삭제됩니다.

Virtual WAN 인프라의 유지 관리 이벤트 중에 백 엔드 인스턴스는 한 번에 하나씩 다시 부팅되므로 흐름을 서비스하는 인스턴스를 일시적으로 사용할 수 없으므로 프라이빗 엔드포인트에 대한 간헐적인 연결 문제가 발생할 수 있습니다. Azure Firewall 또는 가상 허브 라우터가 확장되면 비슷한 문제가 발생할 수 있습니다. 현재 흐름을 서비스하는 인스턴스와 다른 새 백 엔드 인스턴스로 동일한 트래픽 흐름을 부하 분산할 수 있습니다.

Private Link 또는 프라이빗 엔드포인트 트래픽에 대한 유지 관리 및 스케일 아웃 이벤트의 영향을 완화하려면 다음 모범 사례를 고려합니다.

  • 온-프레미스 애플리케이션의 TCP 제한 시간 값을 15-30초 사이로 구성합니다. TCP 제한 시간 값이 작을수록 애플리케이션 트래픽이 유지 관리 및 스케일 아웃 이벤트에서 더 빠르게 복구될 수 있습니다. 또는 다른 애플리케이션 제한 시간 값을 테스트하여 요구 사항에 따라 적절한 시간 초과를 결정합니다.
  • 자동 크기 조정 이벤트가 발생하지 않도록 트래픽 버스트를 처리하도록 Virtual WAN 구성 요소를 미리 확장합니다. 가상 허브 라우터의 경우 트래픽 버스트 중에 크기 조정을 방지하기 위해 허브 라우터에서 최소 라우팅 인프라 단위를 설정할 수 있습니다.

마지막으로, VPN 또는 ExpressRoute를 사용하여 Azure와 온-프레미스 간에 온-프레미스 연결을 사용하는 경우 온-프레미스 디바이스가 프라이빗 엔드포인트 트래픽에 해당하는 각 5개 튜플에 대한 다음 홉과 동일한 VPN 터널 또는 동일한 Microsoft Enterprise Edge 라우터를 사용하도록 구성되어 있는지 확인합니다.

프라이빗 링크 엔드포인트 만들기

다양한 서비스의 프라이빗 링크 엔드포인트를 만들 수 있습니다. 이 예제에서는 Azure SQL Database를 사용합니다. 빠른 시작: Azure Portal을 사용하여 프라이빗 엔드포인트 만들기에서 Azure SQL Database의 프라이빗 엔드포인트를 만드는 방법에 관한 자세한 내용을 확인할 수 있습니다. 다음 이미지는 Azure SQL Database의 네트워크 구성을 보여 줍니다.

프라이빗 링크 만들기

Azure SQL Database를 만든 후 프라이빗 엔드포인트를 검색하는 프라이빗 엔드포인트 IP 주소를 확인할 수 있습니다.

프라이빗 엔드포인트

만든 프라이빗 엔드포인트를 클릭하면 해당 개인 IP 주소와 FQDN(정규화된 도메인 이름)이 표시됩니다. 프라이빗 엔드포인트에는 VNet 범위(10.1.3.0/24)에 IP 주소가 있어야 합니다.

SQL 엔드포인트

동일한 VNet에서 연결 확인

이 예제에서는 MS SQL 도구가 설치된 Linux 가상 머신에서 Azure SQL Database에 대한 연결을 확인합니다. 첫 번째 단계는 DNS 확인이 작동하고 Azure SQL Database 정규화된 도메인 이름이 프라이빗 엔드포인트가 배포된 동일한 VNet(10.1.3.0/24)의 개인 IP 주소로 확인되는지 확인하는 것입니다.

nslookup wantest.database.windows.net
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
wantest.database.windows.net    canonical name = wantest.privatelink.database.windows.net.
Name:   wantest.privatelink.database.windows.net
Address: 10.1.3.228

이전 출력에서 볼 수 있듯이 FQDN wantest.database.windows.net은 프라이빗 엔드포인트를 따라 생성된 프라이빗 DNS 영역이 개인 IP 주소 10.1.3.228로 확인되는 wantest.privatelink.database.windows.net에 매핑됩니다. 프라이빗 DNS 영역을 확인하여 개인 IP 주소에 매핑된 프라이빗 엔드포인트의 A 레코드가 있는지 확인합니다.

DNS 영역

올바른 DNS 확인을 확인한 후 데이터베이스에 연결해 볼 수 있습니다.

query="SELECT CONVERT(char(15), CONNECTIONPROPERTY('client_net_address'));"
sqlcmd -S wantest.database.windows.net -U $username -P $password -Q "$query"
10.1.3.75

여기에서 볼 수 있듯이 SQL 서버가 클라이언트에서 확인하는 원본 IP 주소를 제공하는 특수 SQL 쿼리를 사용하고 있습니다. 이 경우 서버는 개인 IP(10.1.3.75)를 사용하는 클라이언트를 확인합니다. 즉, 트래픽이 VNet에서 직접 프라이빗 엔드포인트로 이동합니다.

이 가이드의 예제를 사용하려면 usernamepassword 변수를 Azure SQL Database에 정의된 자격 증명과 일치하도록 설정합니다.

다른 VNet에서 연결

Azure Virtual WAN의 한 VNet이 프라이빗 엔드포인트에 연결되어 있으므로 이제 Virtual WAN에 연결된 다른 모든 VNet과 분기도 해당 엔드포인트에 액세스할 수 있습니다. 두 예제에 이름을 지정하려면 Any-to-Any 시나리오 또는 Shared Services VNet 시나리오와 같이 Azure Virtual WAN에서 지원되는 임의 모델을 통해 연결을 제공해야 합니다.

VNet 또는 분기에서 프라이빗 엔드포인트가 배포된 VNet에 연결한 후 DNS 확인을 구성해야 합니다.

  • VNet에서 프라이빗 엔드포인트에 연결하는 경우 Azure SQL Database를 사용하여 만든 것과 동일한 프라이빗 영역을 사용할 수 있습니다.
  • 분기(사이트 간 VPN, 지점 및 사이트 간 VPN 또는 ExpressRoute)에서 프라이빗 엔드포인트에 연결하는 경우 온-프레미스 DNS 확인을 사용해야 합니다.

이 예제에서는 다른 VNet에서 연결합니다. 먼저 워크로드가 Azure SQL Database 정규화된 도메인 이름을 개인 IP 주소로 확인할 수 있도록 프라이빗 DNS 영역을 새 VNet에 연결합니다. 이 작업을 수행하려면 프라이빗 DNS 영역을 새 VNet에 연결합니다.

DNS 링크

이제 연결된 VNet의 모든 가상 머신이 Azure SQL Database FQDN을 프라이빗 링크의 개인 IP 주소로 올바르게 확인합니다.

nslookup wantest.database.windows.net
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
wantest.database.windows.net    canonical name = wantest.privatelink.database.windows.net.
Name:   wantest.privatelink.database.windows.net
Address: 10.1.3.228

이 VNet(10.1.1.0/24)이 프라이빗 엔드포인트가 구성된 원래 VNet(10.1.3.0/24)에 연결되어 있는지 다시 확인하기 위해 VNet의 가상 머신에서 유효 경로 테이블을 확인할 수 있습니다.

유효 경로

여기서 볼 수 있듯이 Azure Virtual WAN에서 Virtual Network 게이트웨이에 의해 삽입된 VNet 10.1.3.0/24를 가리키는 경로가 있습니다. 이제 마지막으로 데이터베이스에 대한 연결을 테스트할 수 있습니다.

query="SELECT CONVERT(char(15), CONNECTIONPROPERTY('client_net_address'));"
sqlcmd -S wantest.database.windows.net -U $username -P $password -Q "$query"
10.1.1.75

이 예제에서는 Virtual WAN에 연결된 VNet 중 하나에서 프라이빗 엔드포인트를 만들어 Virtual WAN의 나머지 VNet과 분기에 대한 연결을 제공하는 방법을 확인했습니다.

다음 단계

Virtual WAN에 대한 자세한 내용은 FAQ를 참조하세요.