VNet 피어링 및 서비스 엔드포인트
VNet 피어링을 사용해 두 VNet을 연결하여 지연 시간이 짧은 프라이빗 통신을 구현하고, 서비스 엔드포인트로 퍼블릭 인터넷을 거치지 않고 Azure 서비스로 트래픽을 라우팅합니다.
VNet 피어링 및 서비스 엔드포인트은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
VNet 피어링이 필요한 이유
서로 다른 Azure VNet의 리소스는 같은 Azure 지역에 있더라도 기본적으로 서로 통신할 수 없습니다. 하지만 대규모 조직에서는 개발, 스테이징, 프로덕션에 각각 별도의 VNet을 사용하거나 부서별로 서로 다른 VNet을 사용하는 경우가 많습니다. VNet 피어링은 Microsoft의 비공개 백본 네트워크를 통해 두 VNet을 직접 연결합니다. 이를 통해 두 VNet의 리소스가 동일한 네트워크에 있는 것처럼 통신할 수 있으며, 트래픽이 공용 인터넷을 통과하거나 VPN 게이트웨이를 필요로 하지 않습니다.
VNet 피어링 작동 방식
VNet 피어링은 비전이적 연결입니다. VNet A가 VNet B와 피어링되고 VNet B가 VNet C와 피어링되어도, A와 C 사이에 별도의 피어링을 만들지 않으면 VNet A는 VNet C와 통신할 수 없습니다. 피어링 링크는 양방향이지만 양쪽에서 모두 구성해야 합니다. A에서 B로 피어링을 만든다고 해서 B에서 A로의 피어링이 자동으로 만들어지지는 않습니다. 양쪽 구성이 완료되면 피어링된 VNet 간 트래픽은 지연 시간이 짧고 대역폭이 높은 Azure 백본을 사용하며, 단일 VNet 내부의 서브넷 간 통신과 비슷한 성능을 제공합니다.
# Create peering from VNet-A to VNet-B
az network vnet peering create \
--resource-group myRG \
--name A-to-B \
--vnet-name VNet-A \
--remote-vnet VNet-B \
--allow-vnet-access
# Create return peering from VNet-B to VNet-A
az network vnet peering create \
--resource-group myRG \
--name B-to-A \
--vnet-name VNet-B \
--remote-vnet VNet-A \
--allow-vnet-access지역 간 피어링과 전역 피어링
가상 네트워크 피어링에는 두 가지 범위 옵션이 있습니다. 로컬 가상 네트워크 피어링은 동일한 애저 지역에 있는 두 가상 네트워크를 연결합니다. 트래픽은 해당 지역 내에 머물며 GB당 소액의 전송 요금이 부과됩니다. 전역 가상 네트워크 피어링은 서로 다른 애저 지역에 있는 두 가상 네트워크를 Microsoft의 전역 백본을 통해 연결합니다. 따라서 East US의 리소스가 공용 인터넷을 거치지 않고 West Europe의 리소스와 비공개로 통신할 수 있습니다. 전역 피어링은 로컬 피어링보다 전송 비용이 약간 높지만, VPN을 통한 라우팅보다 훨씬 저렴하고 안정적입니다.
피어링을 사용한 허브 및 스포크
기업에서 흔히 사용하는 패턴으로 가상 네트워크 피어링을 이용해 허브 및 스포크 토폴로지를 구현합니다. 중앙의 허브 가상 네트워크는 애저 Firewall, VPN Gateway, DNS 서버, 모니터링과 같은 공유 서비스를 호스팅합니다. 여러 스포크 가상 네트워크(환경 또는 워크로드마다 하나씩)를 허브와 피어링합니다. 모든 스포크 트래픽을 허브 방화벽을 통해 라우팅하면 각 스포크에서 복잡한 NSG 관리를 하지 않고도 조직 전체에서 중앙 집중식 보안 검사를 수행할 수 있습니다. 피어링은 전이되지 않으므로 허브 방화벽은 User-Defined Routes (UDRs)를 사용해 스포크 간 트래픽을 라우팅합니다.
피어링에 필요한 주소 공간
가상 네트워크 피어링에는 한 가지 중요한 요구 사항이 있습니다. 바로 피어링된 가상 네트워크의 주소 공간이 서로 겹치지 않아야 한다는 것입니다. 가상 네트워크 A가 10.0.0.0/16을 사용하고 가상 네트워크 B도 10.0.0.0/16을 사용하면, 애저가 동일한 주소 범위 사이에서 트래픽을 라우팅할 수 없으므로 피어링이 실패합니다. 따라서 시작하기 전에 모든 가상 네트워크와 온-프레미스 네트워크에 겹치지 않는 CIDR 범위를 계획하는 것이 매우 중요합니다. 리소스를 배포한 후 가상 네트워크의 주소 공간을 변경하려면 가상 네트워크를 다시 만들거나 (제한적인) 주소 공간 추가/제거 기능을 사용해야 합니다.
Service Endpoint란 무엇인가요
Service Endpoint는 가상 네트워크의 ID를 Azure Storage, Azure SQL Database, Azure Key Vault, Cosmos DB와 같은 애저 PaaS 서비스로 확장합니다. 서브넷에서 Service Endpoint를 Enable하면 해당 서브넷의 리소스에서 지정된 애저 서비스로 이동하는 트래픽이 공용 인터넷이 아니라 애저 백본을 통해 라우팅됩니다. 서비스의 공용 IP 주소를 사용하더라도 마찬가지입니다. 그러면 서비스에서 Service Endpoint가 Enable된 가상 네트워크 내의 리소스에만 액세스를 Restrict할 수 있어, 인터넷에서 직접 액세스할 수 있는 Endpoint보다 보안이 크게 향상됩니다.
# Enable Service Endpoint for Storage on a subnet
az network vnet subnet update \
--resource-group myRG \
--vnet-name myVNet \
--name app-tier \
--service-endpoints Microsoft.StorageService Endpoint와 Private Endpoint 비교
Service Endpoint와 Private Endpoint는 모두 애저 PaaS 서비스에 안전하게 액세스할 수 있도록 하지만 작동 방식은 서로 다릅니다. Service Endpoint — 트래픽을 애저 백본을 통해 라우팅하지만 서비스의 공용 IP 주소를 계속 사용하며, 서비스 Endpoint는 서브넷 수준에 존재합니다. Private Endpoint — 가상 네트워크에서 비공개 IP를 서비스에 할당하며, 공용 Endpoint를 완전히 비활성화할 수 있어 서비스가 진정한 비공개 상태가 됩니다. Private Endpoint는 더 강력한 격리 기능을 제공하고 VPN/ExpressRoute를 통해 온-프레미스에서도 액세스할 수 있습니다. 가장 높은 수준의 보안이 필요하다면 Private Endpoint를 사용하는 것이 좋으며, Service Endpoint는 더 간단하고 비용이 낮은 대안입니다.
Service Endpoint를 사용한 Storage 액세스 제한
서브넷에서 Service Endpoint를 Enable한 후에는 애저 서비스를 해당 서브넷에서 오는 연결만 수락하도록 구성합니다. Storage 계정의 경우 Storage 계정 방화벽 설정에 가상 네트워크 규칙을 추가하면 됩니다. 이렇게 변경하면 지정된 서브넷의 VM만 Storage 계정에 연결할 수 있고 다른 모든 인터넷 트래픽은 거부됩니다. 이는 모든 인터넷 트래픽에 개방해 두는 것보다 Storage 계정의 보안을 크게 향상하는 빠르고 비용이 들지 않는 방법이며, 특히 민감한 애플리케이션 데이터를 호스팅하는 계정에 유용합니다.
# Restrict storage account to a subnet with service endpoint
az storage account network-rule add \
--resource-group myRG \
--account-name mystorageacct \
--vnet-name myVNet \
--subnet app-tierApp Service의 가상 네트워크 통합
가상 네트워크 통합(가상 네트워크 피어링과는 다름)을 사용하면 애저 App Service 애플리케이션이 가상 네트워크 내부의 리소스로 아웃바운드 호출을 보낼 수 있습니다. 가상 네트워크 통합이 없으면 App Service의 아웃바운드 트래픽은 애저 SQL이나 동일한 가상 네트워크의 애저 Cache for Redis와 같은 리소스를 호출할 때에도 항상 공용 인터넷을 통해 나갑니다. 가상 네트워크 통합을 Enable하면 애플리케이션의 아웃바운드 트래픽이 가상 네트워크로 라우팅되어 비공개 리소스에 도달할 수 있습니다. 이를 위해서는 가상 네트워크에 최소 /28 주소 공간을 가진 전용 위임된 서브넷이 필요합니다.
NVA를 사용한 전이적 피어링
가상 네트워크 피어링은 전이되지 않으므로 두 개를 초과하는 가상 네트워크를 연결하려면 모든 쌍 사이에 직접 피어링을 구성하거나(O(n²) 복잡도) 중앙 라우팅 허브를 사용해야 합니다. 허브 및 스포크 모델에서는 허브 가상 네트워크에 Network Virtual Appliance(NVA) 또는 애저 Firewall을 배치하여 스포크 가상 네트워크 사이의 전송 라우터로 사용합니다. 각 스포크에는 모든 트래픽(0.0.0.0/0 또는 특정 스포크 CIDR)을 허브의 NVA IP로 보내는 UDR을 추가합니다. 그러면 NVA가 트래픽을 올바른 대상 스포크로 전달하여 허브를 통한 전이적 연결을 사실상 제공합니다.
알아 두어야 할 피어링 제한 사항
가상 네트워크 피어링의 주요 제한 사항은 다음과 같습니다. 주소 공간이 겹치지 않아야 함 — 가상 네트워크를 만들기 전에 CIDR 범위를 신중하게 계획해야 합니다. 전이되지 않음 — A-B와 B-C를 피어링해도 A-C가 연결되지는 않습니다. 활성 피어링이 있는 가상 네트워크의 주소 공간은 피어링을 일시적으로 삭제하지 않고는 크기를 조정할 수 없음. 게이트웨이 전송 — 피어링 구성에서 'Use Remote Gateways'를 Enable하면 스포크 가상 네트워크가 허브 가상 네트워크의 VPN 또는 ExpressRoute 게이트웨이를 사용할 수 있지만, 이를 위해서는 먼저 허브 게이트웨이를 만들어야 합니다. 확장 가능하고 유지 관리하기 쉬운 다중 가상 네트워크 아키텍처를 설계하려면 이러한 제한 사항을 이해하는 것이 중요합니다.
빠른 확인
이 강의에서 다룬 Microsoft Azure Fundamentals (AZ-900) 개념을 얼마나 이해했는지 확인해 보세요.
강의 요약
이 강의에서는 다음을 배웠습니다. 가상 네트워크 피어링은 VPN 없이 Microsoft의 백본을 통해 두 가상 네트워크를 연결하여 비공개 저지연 통신을 제공하지만, 피어링은 전이되지 않습니다. 또한 Service Endpoint는 서브넷 트래픽을 애저 PaaS 서비스로 백본을 통해 라우팅하여 공용 인터넷에 노출하지 않습니다. 그리고 Private Endpoint는 PaaS 서비스에 비공개 IP를 할당하고 공용 Endpoint를 완전히 비활성화할 수 있는 더 강력한 대안입니다. 다음으로 애저 DNS와 Load Balancer의 핵심 내용을 살펴보겠습니다.
자주 묻는 질문
“VNet 피어링 및 서비스 엔드포인트” 강의는 무료인가요?
네 — “VNet 피어링 및 서비스 엔드포인트” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
“VNet 피어링 및 서비스 엔드포인트”에서 뭘 배우나요?
VNet 피어링을 사용해 두 VNet을 연결하여 지연 시간이 짧은 프라이빗 통신을 구현하고, 서비스 엔드포인트로 퍼블릭 인터넷을 거치지 않고 Azure 서비스로 트래픽을 라우팅합니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“VNet 피어링 및 서비스 엔드포인트” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 가상 네트워크 및 서브넷
- 네트워크 보안 그룹 및 애플리케이션 보안 그룹
- VNet 피어링 및 서비스 엔드포인트
- Azure DNS 및 Load Balancer 기초