연습 - Azure Portal에서 확장 집합 배포

완료됨

예제 시나리오에서는 확장 집합을 사용하여 배송 회사에 대한 웹 애플리케이션을 실행하기로 결정합니다. 배송 회사는 확장 집합을 사용하여 워크로드가 변동될 때 사용자에 대한 응답 시간을 짧게 유지할 수 있습니다.

첫 번째 작업은 확장 집합을 만드는 것입니다. 웹 서버(이 경우 nginx)를 실행하도록 확장 집합을 구성합니다. 확장 집합을 올바르게 구성한 후에는 웹 애플리케이션을 배포합니다. 그런 다음 Azure가 확장 집합에 포함된 각 VM(가상 머신)의 가용성을 확인하는 데 사용하는 상태 프로브를 설정해야 합니다. 마지막으로 웹 브라우저에서 요청을 전송하여 확장 집합을 테스트합니다.

참고 항목

이 연습은 선택 사항입니다. Azure 계정이 없는 경우 지침을 읽으면 REST API를 사용하여 메트릭을 검색하는 방법을 이해할 수 있습니다.

이 연습을 완료하고 싶지만 Azure 구독이 없거나 자체 계정의 사용을 원치 않는 경우, 시작하기 전에 무료 계정을 만들어야 합니다.

Virtual Machine Scale Set 배포

  1. Azure Portal에 로그인하고 Azure Cloud Shell을 엽니다.

  2. Cloud Shell 창 상단의 도구 모음에서 설정>클래식 버전으로 이동을 선택합니다.

  3. Cloud Shell에서 코드 편집기를 시작하고 cloud-init.yaml이라는 파일을 만듭니다.

    code cloud-init.yaml
    
  4. 파일에 다음 텍스트를 추가합니다.

    #cloud-config
    package_upgrade: true
    packages:
      - nginx
    write_files:
      - owner: www-data:www-data
      - path: /var/www/html/index.html
        content: |
            Hello world from Virtual Machine Scale Set !
    runcmd:
      - service nginx restart
    

    이 파일에는 확장 집합에 있는 VM에 nginx를 설치하기 위한 구성 정보가 포함되어 있습니다.

  5. 파일을 저장하려면 Ctrl+S를 선택한 다음 Ctrl+Q를 선택하여 코드 편집기를 닫습니다.

  6. 다음 명령을 실행하여 확장 집합의 새 리소스 그룹을 만듭니다.

    az group create --location eastus --name myResourceGroup
    
  7. 다음 명령을 실행하여 Virtual Machine Scale Set를 만듭니다.

    az vmss create \
      --resource-group myResourceGroup \
      --name webServerScaleSet \
      --image Ubuntu2204 \
      --upgrade-policy-mode automatic \
      --custom-data cloud-init.yaml \
      --admin-username azureuser \
      --generate-ssh-keys
    

    기본적으로 Virtual Machine Scale Set에는 2개의 인스턴스와 1개의 부하 분산 장치가 있습니다.

    참고

    custom-data 플래그는 VM이 만들어진 후 VM 구성이 cloud-init.yaml 파일의 설정을 사용해야 한다고 지정합니다. cloud-init 파일을 사용하면 가상 머신이 처음 설치될 때 추가 패키지를 설치하고, 보안을 구성하고, 파일에 쓸 수 있습니다.

    자세한 내용은 Azure의 VM에 대한 cloud-init 지원을 참조하세요.

Virtual Machine Scale Set 구성

  1. 다음 명령을 실행하여 부하 분산 장치에 상태 프로브를 추가합니다.

    az network lb probe create \
      --lb-name webServerScaleSetLB \
      --resource-group myResourceGroup \
      --name webServerHealth \
      --port 80 \
      --protocol Http \
      --path /
    

    상태 프로브는 포트 80을 통해 웹 사이트의 루트에 ping을 보냅니다. 웹 사이트가 응답하지 않는 경우 서버는 사용할 수 없는 것으로 간주됩니다. 부하 분산 장치는 트래픽을 서버로 라우팅하지 않습니다.

  2. 다음 명령을 실행하여 부하 분산 장치가 확장 집합의 인스턴스로 HTTP 트래픽을 라우팅하도록 구성합니다.

    az network lb rule create \
      --resource-group myResourceGroup \
      --name webServerLoadBalancerRuleWeb \
      --lb-name webServerScaleSetLB \
      --probe-name webServerHealth \
      --backend-pool-name webServerScaleSetLBBEPool \
      --backend-port 8080 \
      --frontend-ip-name loadBalancerFrontEnd \
      --frontend-port 8080 \
      --protocol tcp
    

Virtual Machine Scale Set 테스트

  1. Azure Portal의 측면 메뉴에서 리소스 그룹>myResourceGroup을 선택합니다.

  2. webServerScaleSet Virtual Machine Scale Set를 선택합니다.

  3. 개요 페이지에서 Virtual Machine Scale Set의 공용 IP 주소를 기록해 둡니다.

    의 개요 페이지를 보여 주는 Azure Portal 스크린샷

  4. 인스턴스를 선택합니다. 실행 중인 두 개의 VM이 확장 집합에 포함되어 있는지 확인합니다.

    Virtual Machine Scale Set의 인스턴스를 보여 주는 Azure Portal 스크린샷

  5. 인스턴스를 선택하고 속성 페이지로 이동합니다. VM이 Ubuntu Linux를 실행하고 있는지 확인합니다.

    Virtual Machine Scale Set의 운영 체제를 보여 주는 Azure Portal 스크린샷

  6. 웹 브라우저에서 확장 집합의 공용 IP 주소로 이동합니다. 메시지 가상 머신 확장 집합에서 Hello World!가 나타나는지 확인합니다.

    웹 브라우저에서 실행 중인 원하는 메시지가 표시된 웹앱의 스크린샷