Share via


Azure CLI를 사용하여 가상 네트워크 피어링으로 가상 네트워크 연결

가상 네트워크 피어링을 사용하여 가상 네트워크를 서로 연결할 수 있습니다. 가상 네트워크가 피어링되면 두 가상 네트워크에 있는 리소스가 같은 가상 네트워크에 있는 리소스인 것처럼 같은 대기 시간 및 대역폭으로 서로 통신할 수 있습니다.

이 문서에서는 다음 방법을 설명합니다.

  • 두 가상 네트워크 만들기

  • 가상 네트워크 피어링을 사용하여 두 가상 네트워크 연결

  • 각 가상 네트워크에 VM(가상 머신) 배포

  • VM 간 통신

Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.

사전 요구 사항

  • 이 문서에는 Azure CLI 버전 2.0.28 이상이 필요합니다. Azure Cloud Shell을 사용하는 경우 최신 버전이 이미 설치되어 있습니다.

가상 네트워크 만들기

가상 네트워크를 만들기 전에 가상 네트워크에 대한 리소스 그룹과 이 아티클에서 만든 다른 모든 리소스를 만들어야 합니다. az group create를 사용하여 리소스 그룹을 만듭니다. 다음 예에서는 eastus 위치에 test-rg라는 리소스 그룹을 만듭니다.

az group create \
    --name test-rg \
    --location eastus

az network vnet create를 사용하여 가상 네트워크를 만듭니다. 다음 예에서는 주소 접두사가 10.0.0.0/16vnet-1이라는 가상 네트워크를 만듭니다.

az network vnet create \
  --name vnet-1 \
  --resource-group test-rg \
  --address-prefixes 10.0.0.0/16 \
  --subnet-name subnet-1 \
  --subnet-prefix 10.0.0.0/24

주소 접두사가 10.1.0.0/16vnet-2라는 가상 네트워크를 만듭니다.

az network vnet create \
  --name vnet-2 \
  --resource-group test-rg \
  --address-prefixes 10.1.0.0/16 \
  --subnet-name subnet-1 \
  --subnet-prefix 10.1.0.0/24

가상 네트워크 피어링

가상 네트워크 ID 간에 피어링이 설정됩니다. az network vnet show를 사용하여 각 가상 네트워크의 ID를 가져오고 ID를 변수에 저장합니다.

# Get the id for vnet-1.
vNet1Id=$(az network vnet show \
  --resource-group test-rg \
  --name vnet-1 \
  --query id --out tsv)

# Get the id for vnet-2.
vNet2Id=$(az network vnet show \
  --resource-group test-rg \
  --name vnet-2 \
  --query id \
  --out tsv)

az network vnet Peering create를 사용하여 vnet-1에서 vnet-2로의 피어링을 만듭니다. --allow-vnet-access 매개 변수를 지정하지 않으면 피어링이 설정되지만 이를 통해 통신이 전달될 수 없습니다.

az network vnet peering create \
  --name vnet-1-to-vnet-2 \
  --resource-group test-rg \
  --vnet-name vnet-1 \
  --remote-vnet $vNet2Id \
  --allow-vnet-access

이전 명령 실행 후 반환된 출력에서 peeringStateInitiated로 표시됩니다. 피어링은 vnet-2에서 vnet-1로 피어링을 만들 때까지 시작됨 상태로 유지됩니다. vnet-2에서 vnet-1로 피어링을 만듭니다.

az network vnet peering create \
  --name vnet-2-to-vnet-1 \
  --resource-group test-rg \
  --vnet-name vnet-2 \
  --remote-vnet $vNet1Id \
  --allow-vnet-access

이전 명령 실행 후 반환된 출력에서 peeringStateConnected로 표시됩니다. Azure는 또한 vnet-1-to-vnet-2 피어링의 피어링 상태를 연결됨으로 변경했습니다. az network vnet peering show를 사용하여 vnet-1-to-vnet-2 피어링의 피어링 상태가 연결됨으로 변경되었는지 확인합니다.

az network vnet peering show \
  --name vnet-1-to-vnet-2 \
  --resource-group test-rg \
  --vnet-name vnet-1 \
  --query peeringState

두 가상 네트워크의 피어링에 대한 peeringStateConnected가 될 때까지, 한 가상 네트워크의 리소스는 다른 가상 네트워크의 리소스와 통신할 수 없습니다.

가상 머신 만들기

이후 단계에서 서로 통신할 수 있도록 각 가상 네트워크에서 VM을 만듭니다.

첫 번째 VM 만들기

az vm create로 VM을 만듭니다. 다음 예에서는 vnet-1 가상 네트워크에 vm-1이라는 VM을 만듭니다. 기본 키 위치에 SSH 키가 없는 경우 이 명령에서 키를 만듭니다. 특정 키 집합을 사용하려면 --ssh-key-value 옵션을 사용합니다. --no-wait 옵션은 백그라운드에서 VM을 만들기 때문에 다음 단계를 계속 진행할 수 있습니다.

az vm create \
  --resource-group test-rg \
  --name vm-1 \
  --image Ubuntu2204 \
  --vnet-name vnet-1 \
  --subnet subnet-1 \
  --generate-ssh-keys \
  --no-wait

두 번째 VM 만들기

vnet-2 가상 네트워크에 VM을 만듭니다.

az vm create \
  --resource-group test-rg \
  --name vm-2 \
  --image Ubuntu2204 \
  --vnet-name vnet-2 \
  --subnet subnet-1 \
  --generate-ssh-keys

VM을 만드는 데 몇 분이 걸립니다. VM을 만든 후 Azure CLI는 다음 예제와 비슷한 정보를 표시합니다.

{
  "fqdns": "",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/vm-2",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.1.0.4",
  "publicIpAddress": "13.90.242.231",
  "resourceGroup": "test-rg"
}

publicIpAddress를 기록해 둡니다. 이 주소는 이후 단계에서 인터넷을 통해 VM에 액세스하는 데 사용됩니다.

참고 항목

Azure는 공용 IP 주소가 할당되지 않았거나 내부 기본 Azure Load Balancer의 백 엔드 풀에 있는 VM에 대한 기본 아웃바운드 액세스 IP를 제공합니다. 기본 아웃바운드 액세스 IP 메커니즘은 구성할 수 없는 아웃바운드 IP 주소를 제공합니다.

다음 이벤트 중 하나가 발생하면 기본 아웃바운드 액세스 IP가 사용하지 않도록 설정됩니다.

  • 공용 IP 주소가 VM에 할당됩니다.
  • VM은 아웃바운드 규칙 유무에 관계없이 표준 Load Balancer의 백 엔드 풀에 배치됩니다.
  • Azure NAT Gateway 리소스는 VM의 서브넷에 할당됩니다.

유연한 오케스트레이션 모드에서 가상 머신 확장 집합을 사용하여 만드는 VM에는 기본 아웃바운드 액세스 권한이 없습니다.

Azure의 아웃바운드 연결에 대한 자세한 내용은 Azure의 기본 아웃바운드 액세스아웃바운드 연결에 SNAT(원본 네트워크 주소 변환) 사용을 참조하세요.

VM 간 통신

다음 명령을 사용하여 vm-2 VM으로 SSH 세션을 만듭니다. <publicIpAddress>를 VM의 공용 IP 주소로 바꿉니다. 이전 예제의 공용 IP 주소는13.90.242.231입니다.

ssh <publicIpAddress>

vnet-1에서 VM을 핑합니다.

ping 10.0.0.4 -c 4

4개의 응답을 받게 됩니다.

vm-2 VM에 대한 SSH 세션을 닫습니다.

리소스 정리

더 이상 필요하지 않은 경우 az group delete를 사용하여 리소스 그룹 및 그룹에 포함된 모든 리소스를 제거합니다.

az group delete \
    --name test-rg \
    --yes

다음 단계

이 문서에서는 가상 네트워크 피어링을 사용하여 동일한 Azure 지역에 있는 두 네트워크를 연결하는 방법을 배웠습니다. 다른 지원되는 지역다른 Azure 구독에 있는 가상 네트워크를 피어링하고 피어링을 사용하여 허브 및 스포크 네트워크 디자인을 만들 수도 있습니다. 가상 네트워크 피어링에 대한 자세한 내용은 가상 네트워크 피어링 개요가상 네트워크 피어링 관리를 참조하세요.

VPN을 통해 자신의 컴퓨터를 가상 네트워크에 연결하고, 가상 네트워크 또는 피어링된 가상 네트워크의 리소스와 상호 작용할 수 있습니다. 가상 네트워크 문서에 설명된 많은 태스크를 완료하는 재사용이 가능한 스크립트는 스크립트 샘플을 참조하세요.