Virtual WAN에서 프라이빗 링크 사용
Azure Private Link는 프라이빗 엔드포인트를 공개하여 개인 IP 주소 연결을 통해 Azure Platform-as-a-Service 제품을 연결할 수 있는 기술입니다. Azure Virtual WAN을 사용하면 가상 허브에 연결된 가상 네트워크 중 하나에 프라이빗 엔드포인트를 배포할 수 있습니다. 이 프라이빗 링크는 동일한 Virtual WAN에 연결된 다른 가상 네트워크나 분기에 대한 연결을 제공합니다.
시작하기 전에
이 문서의 단계에서는 하나 이상의 허브와 둘 이상의 가상 네트워크가 Virtual WAN에 연결된 가상 WAN을 배포했다고 가정합니다.
새 Virtual WAN 및 새 허브를 만들려면 다음 문서의 단계를 수행합니다.
Virtual WAN에서 Private Link를 사용한 라우팅 고려 사항
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 주소가 있어야 합니다.
동일한 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 확인을 확인한 후 데이터베이스에 연결해 볼 수 있습니다.
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에서 직접 프라이빗 엔드포인트로 이동합니다.
이 가이드의 예제를 사용하려면 username
및 password
변수를 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에 연결합니다.
이제 연결된 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를 참조하세요.