빠른 시작: Azure CLI를 사용하여 VM 부하를 분산하는 공용 부하 분산 장치 만들기

Azure CLI에서 Azure Load Balancer를 시작하여 공용 부하 분산 장치와 두 개의 가상 머신을 만듭니다. 이러한 리소스와 함께 Azure Bastion, NAT Gateway, 가상 네트워크 및 필요한 서브넷을 배포합니다.

표준 공용 부하 분산 장치에 대해 배포된 리소스의 다이어그램

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

사전 요구 사항

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

리소스 그룹 만들기

Azure 리소스 그룹은 Azure 리소스가 배포 및 관리되는 논리적 컨테이너입니다.

az group create를 사용하여 리소스 그룹을 만듭니다.

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

가상 네트워크 만들기

VM을 배포하고 부하 분산 장치를 테스트하려면 지원되는 가상 네트워크 및 서브넷부터 만들어야 합니다.

az network vnet create를 사용하여 가상 네트워크를 만듭니다. 가상 네트워크 및 서브넷에는 이 문서의 뒷부분에서 배포된 리소스가 포함됩니다.

  az network vnet create \
    --resource-group CreatePubLBQS-rg \
    --location eastus \
    --name myVNet \
    --address-prefixes 10.1.0.0/16 \
    --subnet-name myBackendSubnet \
    --subnet-prefixes 10.1.0.0/24

공용 IP 주소 만들기

인터넷에서 웹앱에 액세스하려면 부하 분산 장치에 대한 공용 IP 주소가 필요합니다.

az network public-ip create를 사용하여 부하 분산 장치 프런트 엔드에 대한 공용 IP를 만듭니다.

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIP \
    --sku Standard \
    --zone 1 2 3

대신 영역 1에서 공용 IP 주소를 만들려면 다음 명령을 사용합니다.

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIP \
    --sku Standard \
    --zone 1

부하 분산 장치 만들기

이 섹션에서는 다음과 같은 부하 분산 장치 구성 요소를 만들고 구성하는 방법에 대해 자세히 설명합니다.

  • 부하 분산 장치에서 들어오는 네트워크 트래픽을 수신하는 프런트 엔드 IP 풀

  • 프런트 엔드 풀에서 부하 분산된 네트워크 트래픽을 보내는 백 엔드 IP 풀

  • 백 엔드 VM 인스턴스의 상태를 확인하는 상태 프로브

  • 트래픽이 VM에 분산되는 방법을 정의하는 부하 분산 장치 규칙

부하 분산 장치 리소스 만들기

az network lb create를 사용하여 공용 부하 분산 장치를 만듭니다.

  az network lb create \
    --resource-group CreatePubLBQS-rg \
    --name myLoadBalancer \
    --sku Standard \
    --public-ip-address myPublicIP \
    --frontend-ip-name myFrontEnd \
    --backend-pool-name myBackEndPool

만든 공용 IP가 영역인 경우 퍼블릭 부하 분산 장치를 만들 때 지정된 영역을 정의해야 합니다.

  az network lb create \
    --resource-group CreatePubLBQS-rg \
    --name myLoadBalancer \
    --sku Standard \
    --public-ip-address myPublicIP \
    --frontend-ip-name myFrontEnd \
    --public-ip-zone 1 \
    --backend-pool-name myBackEndPool

상태 프로브 만들기

상태 프로브는 네트워크 트래픽을 보낼 수 있도록 모든 가상 머신 인스턴스를 검사합니다.

프로브 확인에 실패한 가상 머신은 부하 분산 장치에서 제거됩니다. 오류가 해결되면 가상 머신이 부하 분산 장치에 다시 추가됩니다.

az network lb probe create를 사용하여 상태 프로브를 만듭니다.

  az network lb probe create \
    --resource-group CreatePubLBQS-rg \
    --lb-name myLoadBalancer \
    --name myHealthProbe \
    --protocol tcp \
    --port 80

부하 분산 장치 규칙 만들기

다음과 같은 부하 분산 장치 규칙을 정의합니다.

  • 들어오는 트래픽에 대한 프런트 엔드 IP 구성

  • 트래픽을 수신할 백 엔드 IP 풀

  • 필요한 원본 및 대상 포트

az network lb rule create를 사용하여 부하 분산 장치 규칙을 만듭니다.

  az network lb rule create \
    --resource-group CreatePubLBQS-rg \
    --lb-name myLoadBalancer \
    --name myHTTPRule \
    --protocol tcp \
    --frontend-port 80 \
    --backend-port 80 \
    --frontend-ip-name myFrontEnd \
    --backend-pool-name myBackEndPool \
    --probe-name myHealthProbe \
    --disable-outbound-snat true \
    --idle-timeout 15 \
    --enable-tcp-reset true

네트워크 보안 그룹 만들기

표준 부하 분산 장치의 경우 네트워크 보안 그룹에 속한 네트워크 인터페이스가 백 엔드 풀의 VM에 있어야 합니다.

az network nsg create를 사용하여 네트워크 보안 그룹을 만듭니다.

  az network nsg create \
    --resource-group CreatePubLBQS-rg \
    --name myNSG

네트워크 보안 그룹 규칙 만들기

az network nsg rule create를 사용하여 네트워크 보안 그룹 규칙을 만듭니다.

  az network nsg rule create \
    --resource-group CreatePubLBQS-rg \
    --nsg-name myNSG \
    --name myNSGRuleHTTP \
    --protocol '*' \
    --direction inbound \
    --source-address-prefix '*' \
    --source-port-range '*' \
    --destination-address-prefix '*' \
    --destination-port-range 80 \
    --access allow \
    --priority 200

Bastion 호스트 만들기

이 섹션에서는 Azure Bastion에 대한 리소스를 만듭니다. Azure Bastion은 부하 분산 장치의 백 엔드 풀에서 가상 머신을 안전하게 관리하는 데 사용됩니다.

Important

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

공용 IP 주소 만들기

az network public-ip create를 사용하여 베스천 호스트에 대한 공용 IP 주소를 만듭니다. 공용 IP는 가상 머신 리소스에 대한 보안 액세스를 위해 베스천 호스트에서 사용됩니다.

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myBastionIP \
    --sku Standard \
    --zone 1 2 3

베스천 서브넷 만들기

az network vnet subnet create를 사용하여 베스천 서브넷을 만듭니다. 베스천 서브넷은 베스천 호스트에서 가상 네트워크에 액세스하는 데 사용됩니다.

  az network vnet subnet create \
    --resource-group CreatePubLBQS-rg \
    --name AzureBastionSubnet \
    --vnet-name myVNet \
    --address-prefixes 10.1.1.0/27

베스천 호스트 만들기

az network bastion create를 사용하여 베스천 호스트를 만듭니다. 베스천 호스트는 이 문서의 뒷부분에서 만든 가상 머신 리소스에 안전하게 연결하는 데 사용됩니다.

  az network bastion create \
    --resource-group CreatePubLBQS-rg \
    --name myBastionHost \
    --public-ip-address myBastionIP \
    --vnet-name myVNet \
    --location eastus

Azure Bastion 호스트를 배포하는 데 몇 분 정도 걸릴 수 있습니다.

백 엔드 서버 만들기

이 섹션에서는 다음을 만듭니다.

  • 가상 머신에 대한 두 개의 네트워크 인터페이스

  • 부하 분산 장치의 백 엔드 서버로 사용할 두 개의 가상 머신

가상 머신에 대한 네트워크 인터페이스 만들기

az network nic create를 사용하여 두 개의 네트워크 인터페이스를 만듭니다.

  array=(myNicVM1 myNicVM2)
  for vmnic in "${array[@]}"
  do
    az network nic create \
        --resource-group CreatePubLBQS-rg \
        --name $vmnic \
        --vnet-name myVNet \
        --subnet myBackEndSubnet \
        --network-security-group myNSG
  done

가상 머신 만들기

az vm create를 사용하여 가상 머신을 만듭니다.

  az vm create \
    --resource-group CreatePubLBQS-rg \
    --name myVM1 \
    --nics myNicVM1 \
    --image win2019datacenter \
    --admin-username azureuser \
    --zone 1 \
    --no-wait
  az vm create \
    --resource-group CreatePubLBQS-rg \
    --name myVM2 \
    --nics myNicVM2 \
    --image win2019datacenter \
    --admin-username azureuser \
    --zone 2 \
    --no-wait

VM을 배포하는 데 몇 분 정도 걸릴 수 있습니다. VM을 만드는 동안 다음 단계를 계속할 수 있습니다.

참고 항목

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

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

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

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

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

부하 분산 장치 백 엔드 풀에 가상 머신 추가

az network nic ip-config address-pool add를 사용하여 백 엔드 풀에 가상 머신을 추가합니다.

  array=(myNicVM1 myNicVM2)
  for vmnic in "${array[@]}"
  do
    az network nic ip-config address-pool add \
     --address-pool myBackendPool \
     --ip-config-name ipconfig1 \
     --nic-name $vmnic \
     --resource-group CreatePubLBQS-rg \
     --lb-name myLoadBalancer
  done

NAT 게이트웨이 만들기

백 엔드 풀의 리소스에 대한 아웃바운드 인터넷 액세스를 제공하려면 NAT 게이트웨이를 만듭니다.

공용 IP 만들기

az network public-ip create를 사용하여 아웃바운드 연결에 대한 단일 IP를 만듭니다.

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myNATgatewayIP \
    --sku Standard \
    --zone 1 2 3

대신 영역 1에서 중복 공용 IP 주소를 만들려면 다음 명령을 사용합니다.

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myNATgatewayIP \
    --sku Standard \
    --zone 1

NAT 게이트웨이 리소스 만들기

az network nat gateway create를 사용하여 NAT 게이트웨이 리소스를 만듭니다. 이전 단계에서 만든 공용 IP는 NAT 게이트웨이와 연결됩니다.

  az network nat gateway create \
    --resource-group CreatePubLBQS-rg \
    --name myNATgateway \
    --public-ip-addresses myNATgatewayIP \
    --idle-timeout 10

NAT 게이트웨이를 서브넷에 연결

az network vnet subnet update와 함께 특정 NAT Gateway 리소스를 사용하도록 가상 네트워크의 원본 서브넷을 구성합니다.

  az network vnet subnet update \
    --resource-group CreatePubLBQS-rg \
    --vnet-name myVNet \
    --name myBackendSubnet \
    --nat-gateway myNATgateway

IIS 설치

az vm extension set를 사용하여 가상 머신에 IIS를 설치하고 기본 웹 사이트를 컴퓨터 이름으로 설정합니다.

  array=(myVM1 myVM2)
    for vm in "${array[@]}"
    do
     az vm extension set \
       --publisher Microsoft.Compute \
       --version 1.8 \
       --name CustomScriptExtension \
       --vm-name $vm \
       --resource-group CreatePubLBQS-rg \
       --settings '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
  done

부하 분산 장치 테스트

부하 분산 장치의 공용 IP 주소를 가져오려면 az network public-ip show 명령을 사용합니다.

공용 IP 주소를 복사하여 브라우저의 주소 표시줄에 붙여넣습니다.

  az network public-ip show \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIP \
    --query ipAddress \
    --output tsv

부하 분산 장치 테스트

리소스 정리

더 이상 필요하지 않은 경우 az group delete 명령을 사용하여 리소스 그룹, 부하 분산 장치 및 모든 관련 리소스를 제거합니다.

  az group delete \
    --name CreatePubLBQS-rg

다음 단계

이 빠른 시작에서 관련 정보는 다음과 같습니다.

  • 표준 공용 부하 분산 장치를 만들었습니다.

  • 두 개의 가상 머신을 연결했습니다.

  • 부하 분산 장치 트래픽 규칙 및 상태 프로브를 구성했습니다.

  • 부하 분산 장치 테스트

Azure Load Balancer에 대해 자세히 알아보려면 계속 진행하세요.