빠른 시작: Azure CLI를 사용하여 가상 네트워크 만들기

이 빠른 시작에서는 Azure 명령줄 인터페이스인 Azure CLI를 사용하여 가상 네트워크를 만드는 방법을 보여 줍니다. 그런 다음 네트워크에 두 개의 VM(가상 머신)을 만들고, 인터넷에서 VM에 안전하게 연결하고, VM 간의 프라이빗 통신을 시작합니다.

가상 네트워크는 Azure에서 개인 네트워크의 기본 구성 요소입니다. Azure Virtual Network를 통해 VM과 같은 Azure 리소스가 상호 간 및 인터넷과 안전하게 통신할 수 있습니다.

가상 네트워크 빠른 시작에서 만들어진 리소스의 다이어그램.

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

사전 요구 사항

리소스 그룹 만들기

az group create를 사용하여 가상 네트워크를 호스트할 리소스 그룹을 만듭니다. 다음 코드를 사용하여 eastus2 Azure 지역에 test-rg라는 리소스 그룹을 만듭니다.

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

가상 네트워크 및 서브넷 만들기

az network vnet create를 사용하여 test-rg 리소스 그룹에 subnet-1이라는 서브넷이 있는 vnet-1이라는 가상 네트워크를 만듭니다.

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

Azure Bastion 배포

Azure Bastion은 브라우저를 사용하여 개인 IP 주소를 사용하여 SSH(보안 셸) 또는 RDP(원격 데스크톱 프로토콜)를 통해 가상 네트워크의 VM에 연결합니다. VM에는 공용 IP 주소, 클라이언트 소프트웨어 또는 특수 구성이 필요하지 않습니다.

시간당 가격 책정은 아웃바운드 데이터 사용량에 관계없이 Bastion이 배포되는 순간부터 시작됩니다. 자세한 내용은 가격 책정SKU를 참조하세요. 자습서 또는 테스트의 일부로 Bastion을 배포하는 경우 이 리소스 사용을 마친 후 삭제하는 것이 좋습니다. Bastion에 대한 자세한 내용은 Azure Bastion이란?을 참조하세요.

  1. az network vnet subnet create를 사용하여 가상 네트워크용 베스천 서브넷을 만듭니다. 이 서브넷은 Bastion 리소스 전용으로 예약되어 있으며 이름을 AzureBastionSubnet으로 지정해야 합니다.

    az network vnet subnet create \
        --name AzureBastionSubnet \
        --resource-group test-rg \
        --vnet-name vnet-1 \
        --address-prefix 10.0.1.0/26
    
  2. Bastion에 대한 공용 IP 주소를 만듭니다. 이 IP 주소는 인터넷에서 Bastion 호스트에 연결하는 데 사용됩니다. az network public-ip create를 사용하여 test-rg 리소스 그룹에 public-ip라는 공용 IP 주소를 만듭니다.

    az network public-ip create \
        --resource-group test-rg \
        --name public-ip \
        --sku Standard \
        --location eastus2 \
        --zone 1 2 3
    
  3. az network bastion create를 사용하여 가상 네트워크용 AzureBastionSubnet에 베스천 호스트를 만듭니다.

    az network bastion create \
        --name bastion \
        --public-ip-address public-ip \
        --resource-group test-rg \
        --vnet-name vnet-1 \
        --location eastus2
    

Bastion 리소스를 배포하는 데 약 10분 정도 걸립니다. Bastion이 가상 네트워크에 배포되는 동안 다음 섹션에서 VM을 만들 수 있습니다.

가상 머신 만들기

az vm create를 사용하여 가상 네트워크의 subnet-1 서브넷에 vm-1vm-2라는 두 개의 VM을 만듭니다. 자격 증명을 입력하라는 메시지가 표시되면 VM에 대한 사용자 이름 및 암호를 입력합니다.

  1. 첫 번째 VM을 만들려면 다음 명령을 사용합니다.

    az vm create \
        --resource-group test-rg \
        --admin-username azureuser \
        --authentication-type password \
        --name vm-1 \
        --image Ubuntu2204 \
        --public-ip-address ""
    
  2. 두 번째 VM을 만들려면 다음 명령을 사용합니다.

    az vm create \
        --resource-group test-rg \
        --admin-username azureuser \
        --authentication-type password \
        --name vm-2 \
        --image Ubuntu2204 \
        --public-ip-address ""
    

다른 작업을 계속하는 동안 --no-wait 옵션을 사용하여 백그라운드에서 VM을 만들 수도 있습니다.

VM을 만드는 데 몇 분이 걸릴 수 있습니다. Azure가 각 VM을 만든 후 Azure CLI는 다음 메시지와 유사한 출력을 반환합니다.

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

참고 항목

Bastion 호스트가 있는 가상 네트워크의 VM에는 공용 IP 주소가 필요하지 않습니다. Bastion은 공용 IP를 제공하고 VM은 개인 IP를 사용하여 네트워크 내에서 통신합니다. Bastion 호스트된 가상 네트워크의 모든 VM에서 공용 IP를 제거할 수 있습니다. 자세한 내용은 Azure VM에서 공용 IP 주소 연결 해제를 참조하세요.

참고 항목

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

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

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

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

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

가상 머신에 연결

  1. 포털에서 가상 머신을 검색하여 선택합니다.

  2. 가상 머신 페이지에서 vm-1을 선택합니다.

  3. vm-1에 대한 개요 정보에서 연결을 선택합니다.

  4. 가상 머신에 연결 페이지에서 Bastion 탭을 선택합니다.

  5. Bastion 사용을 선택합니다.

  6. VM을 만들 때 만든 사용자 이름과 암호를 입력한 다음 연결을 선택합니다.

VM 간 통신 시작

  1. vm-1에 대한 bash 프롬프트에서 ping -c 4 vm-2를 입력합니다.

    다음 메시지와 유사한 회신이 표시됩니다.

    azureuser@vm-1:~$ ping -c 4 vm-2
    PING vm-2.3bnkevn3313ujpr5l1kqop4n4d.cx.internal.cloudapp.net (10.0.0.5) 56(84) bytes of data.
    64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=1 ttl=64 time=1.83 ms
    64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=2 ttl=64 time=0.987 ms
    64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=3 ttl=64 time=0.864 ms
    64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=4 ttl=64 time=0.890 ms
    
  2. vm-1에 대한 Bastion 연결을 닫습니다.

  3. 가상 머신에 연결의 단계를 반복하여 vm-2에 연결합니다.

  4. vm-2에 대한 bash 프롬프트에서 ping -c 4 vm-1을 입력합니다.

    다음 메시지와 유사한 회신이 표시됩니다.

    azureuser@vm-2:~$ ping -c 4 vm-1
    PING vm-1.3bnkevn3313ujpr5l1kqop4n4d.cx.internal.cloudapp.net (10.0.0.4) 56(84) bytes of data.
    64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=1 ttl=64 time=0.695 ms
    64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=2 ttl=64 time=0.896 ms
    64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=3 ttl=64 time=3.43 ms
    64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=4 ttl=64 time=0.780 ms
    
  5. vm-2에 대한 Bastion 연결을 닫습니다.

리소스 정리

가상 네트워크 및 VM 작업이 끝나면 az group delete를 사용하여 리소스 그룹과 모든 해당 리소스를 제거합니다.

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

다음 단계

이 빠른 시작에서는 두 개의 VM이 포함된 기본 서브넷이 있는 가상 네트워크를 만들었습니다. Bastion을 배포하고 이를 사용하여 VM에 연결하고 VM 간의 통신을 설정했습니다. 가상 네트워크 설정에 대한 자세한 내용은 가상 네트워크 만들기, 변경 또는 삭제를 참조하세요.

가상 네트워크에 있는 VM 간 프라이빗 통신은 기본적으로 제한되지 않습니다. 다양한 형식의 VM 네트워크 통신 구성에 대해 자세히 알아보려면 다음 문서를 계속 진행합니다.