📋 학습 요약
- 주제: Azure 가상 네트워크(VNet) 간의 격리된 환경을 허물고 내부 비공개 통신을 가능하게 하는 VNet 피어링(Peering) 기술 실습
- 인프라 구성: 서로 다른 대역을 가진 2개의 가상 네트워크 연동
- 핵심 목표: 게이트웨이 장비 없이 Azure 백본 네트워크를 통해 서로 다른 VNet 간의 라우팅을 구성하고 통신 메커니즘을 이해한다.
🌐 1. VNet 피어링 (Virtual Network Peering) 이론
Azure에서 가상 네트워크(VNet)는 기본적으로 완전히 격리된 독립적인 네트워크 영역입니다. 하지만 서비스가 확장되거나 멀티 티어 아키텍처를 구성할 때 서로 다른 VNet 간의 통신이 필요하게 됩니다. 이때 사용하는 기술이 바로 VNet 피어링입니다.
1.1 VNet 피어링의 핵심 특징
- 지연 시간 최소화: 가상 네트워크 간의 트래픽이 공용 인터넷을 거치지 않고, Microsoft의 개인용 백본 네트워크 인프라를 통해 직접 라우팅됩니다. 따라서 일반 사설망 통신과 다름없는 높은 대역폭과 낮은 지연 시간을 보장합니다.
- 보안성 우수: 데이터가 암호화된 백본망 내부에서만 흐르기 때문에 외부 노출 위험이 전혀 없습니다.
- 비용 및 관리 효율성: VPN 게이트웨이 같은 별도의 가상 네트워크 어플라이언스를 생성할 필요가 없어 인프라 비용이 절감되고 관리가 단순해집니다.
1.2 구성 시 필수 주의사항
- IP 주소 공간 중복 불가: 피어링으로 연결할 두 VNet의 주소 공간(Address Space)이 서로 겹치면 라우팅 충돌이 발생하므로, 설계 단계부터 서로 다른 대역(예: 10.0.0.0/16과 192.168.0.0/16)으로 지정해야 합니다.
- 양방향 연결 설정: 피어링은 단방향이 아닙니다. VNet A에서 B로의 피어링 설정과, B에서 A로의 피어링 설정이 양방향 모두 완료되어야 최종적으로 연결 상태가 Connected(연결됨)로 활성화됩니다.
🛠️ 2. Terraform을 활용한 VNet 피어링 구현 (추가 코드 예시)
어제 작성한 테라폼 인프라 코드에 이어, 서로 다른 두 가상 네트워크를 유기적으로 연결하기 위해 추가한 선언적 HCL 코드 구성입니다.
Terraform
# VNet 1에서 VNet 2로의 피어링 설정
resource "azurerm_virtual_network_peering" "vnet1_to_vnet2" {
name = "peer-vnet1-to-vnet2"
resource_group_name = azurerm_resource_group.smchi_rg.name
virtual_network_name = azurerm_virtual_network.smchi_vnet1.name
remote_virtual_network_id = azurerm_virtual_network.smchi_vnet2.id
allow_virtual_network_access = true
allow_forwarded_traffic = true
}
# VNet 2에서 VNet 1로의 피어링 설정 (양방향 성립 필수)
resource "azurerm_virtual_network_peering" "vnet2_to_vnet1" {
name = "peer-vnet2-to-vnet1"
resource_group_name = azurerm_resource_group.smchi_rg.name
virtual_network_name = azurerm_virtual_network.smchi_vnet2.name
remote_virtual_network_id = azurerm_virtual_network.smchi_vnet1.id
allow_virtual_network_access = true
allow_forwarded_traffic = true
}
🛠️ 주요 체크포인트 및 요약 표
| 설정 속성 | 기능 및 역할 | 비고 |
| 양방향 피어링 | 두 VNet 간 상호 호출 설정 필요 | 한쪽만 설정 시 통신 불가 (Initiated 상태 머무름) |
| allow_virtual_network_access | 피어링된 VNet 간의 자원 통신 허용 여부 | 기본값 true (안전한 사설 통신 링크 활성화) |
| allow_forwarded_traffic | 타 네트워크에서 허브를 거쳐 전달된 트래픽 허용 여부 | Hub-and-Spoke 아키텍처 확장 시 필수 설정 |
| 네트워크 성능 | 인터넷망이 아닌 MS 백본망 라우팅 | 게이트웨이 병목 없는 와이어 스피드 성능 구현 |
📝 오늘의 회고
오늘은 어제 구축한 대역이 다른 격리된 Azure VNet 인프라 환경 위에 VNet 피어링(Peering) 기술을 얹어 하나의 거대한 유기적 사설 네트워크를 완성해 보았다.
처음에는 서로 다른 대역의 서버끼리 통신하려면 값비싼 VPN 게이트웨이나 라우팅 장비가 무조건 중간에 징검다리 역할을 해야 하는 줄 알았는데, Azure 가상 백본망 내부에서 소프트웨어 정의 네트워크(SDN) 방식으로 다이렉트 라우팅 패스를 뚫어주는 피어링의 편리함과 강력함에 감탄했다. 특히 주소 공간이 1비트라도 겹치면 연결이 아예 거부되는 규칙을 보며, 클라우드 아키텍트에게 철저한 IP 주소 관리 및 서브네팅 설계 능력이 왜 기본 소양인지 다시금 깨닫는 계기가 되었다. 이 기법을 바탕으로 향후 실무에서 자주 쓰이는 Hub-and-Spoke 구조의 고도화된 망분리 환경 설계도 자신 있게 도전할 수 있을 것 같다.
