Cloud

Azure - Virtual Network Peering

Operation CWAL 2022. 3. 4. 14:03

Virtual Network

AWS의 VPC(Virtual Private Cloud)와 동일한 개념으로, Azure 역시 Private Network를 구성하기 위해 Virtual Network(VNet) 라는 리소스를 제공한다. VNet 위에 VM 인스턴스 등의 리소스를 배포하여, 다른 VM이나 인터넷과 통신할 수 있다.

VNet 생성시 어떤 Region에 구성할 것인지 선택해야 하며, 하나의 VNet은 다시 여러개의 Subnet으로 분할할 수 있다.

 

기본적으로 VNet 간에는 서로 다른 네트워크에 위치한 것으로 인식하며, 직접적인 Communication이 이루어지지 않는다. 예를 들어 VNet01(10.1.0.0/16)과 VNet02(10.2.0.0/16)이 있다고 가정하자.

각 VNet에 default라는 이름의 subnet을 추가한 상태이다.

 

그리고 아래와 같이 각 VNet에 VM 인스턴스를 하나씩 배치하였다. 두 VM 모두 Public IP는 사용하지 않으며, Network Security Group도 기본값을 그대로 사용한다.

 

vm01은 VNet01/default에 위치하였으며, Private IP는 10.1.1.4이다. vm02는 VNet02/default에 위치하며, Private IP는 10.2.1.4임을 알 수 있다. 만약 vm01에서 vm02로 ping 명령어를 수행하면 어떤 결과가 나올까?

미리 설명했듯 두 VNet은 연결되어 있지 않고 Private IP를 사용하고 있기 때문에, vm01은 10.2.1.4로 가야할 패킷을 어디로 보낼지 모르는 상황이다. 따라서 ping 명령어는 실패할 수 밖에 없다. 그 반대(vm02->vm01)도 마찬가지이다.

 

그렇다면 서로 다른 VNet에 위치한 리소스 간에는 직접적인 통신이 불가능한걸까? 다행히도 Azure는 VNet간의 연결을 위해 Virtual Network Peering이라는 기능을 제공하고 있다.

 

Virtual Network Peering

Virtual Network의 Settings 항목 중 Peerings 라는 메뉴를 통해 다른 VNet과의 연결 작업을 진행할 수 있다.

새로운 peering을 추가하기 위해 'Add' 버튼을 클릭한다. 

VNet01과 VNet02간의 Peering을 다음과 같이 정의하였다. 설정 자체는 매우 간단하다.

  • This virtual network
    • Peering link name: VNet01-VNet02
    • 다른 항목은 모두 default 값 선택
  • Remote virtual network
    • Peering link name: VNet01-VNet02
    • Subscription: VNet02가 위치한 subscription
    • Virtual network: VNet02
    • 다른 항목은 모두 default 값 선택

 

 

Peering status가 'Connected'가 되었을 때, 두 VNet간의 Peering이 정상적으로 동작한다는 것을 의미한다.

이제 다시 vm01에서 vm02로 ping 명령어를 수행하고 결과를 확인해보자.

이번엔 정상적으로 패킷이 전송되는 것을 알 수 있다. vm02에서 vm01로 ping 명령어를 수행하여도 결과는 동일하다.

 

지금은 두 VNet 사이의 Peering만 예로 들었지만, 여러개의 VNet Peering 구성 역시 가능하다. 하나의 VNet을 여러개의 VNet과 연결된 Hub-and-Spoke 모델의 네트워크 아키텍처 구성을 예로 들 수 있다.

 

다만 Peering은 다른 VNet에 대해 Trasnsitive하지 않은 성질을 갖고 있다. VNet A와 VNet B, 그리고 VNet A와 VNet C가 서로 Peering 되어 있다고 해서 VNet B와 VNet C간에 네트워크는 성립하지 않는다는 뜻이다.

 

VNet Peering을 사용했을 때, 우리가 얻을 수 있는 이점은 다음과 같다.

 

  • 중복 리소스 최소화 및 비용 절감
    • 공통적으로 사용되는 리소스(Azure Firewall, Bastion Host 등)을 하나의 VNet에 집중 배치하고, 다른 VNet에서 이를 활용하는 방식으로 중복되는 리소스와 비용을 줄일 수 있다.
  • 보안성 향상 및 Latency 감소
    • 서로 Peering된 VNet 간의 트래픽은 Public Internet 망을 사용하지 않고 Azure Private Network 내에서 처리되므로 상대적으로 보안성이 높다. 또한 패킷 전송에 필요한 Hop이 상대적으로 적기 때문에 약간의 Latency 감소 효과가 있다.
  • 다른 조직이 보유한 리소스와 협업
    • VNet Resource ID만 알고 있다면, 다른 조직이 보유한 VNet과의 Peering 역시 가능하다.

 

'Cloud' 카테고리의 다른 글

Azure - Routes  (0) 2022.03.08
Azure - Role Based Access Control  (0) 2022.03.06
Container 101 - (1) Introduction  (0) 2022.01.10
Amazon RDS - Read Replica와 Multi AZ 비교  (0) 2021.11.07
Amazon RDS - 개요  (0) 2021.11.05