연습 - 가상 머신 확장 집합에서 애플리케이션 업데이트

완료됨

배송 회사 시나리오에서 가상 머신 확장 집합을 만들어 웹 애플리케이션을 설치했습니다. 이제 확장 집합의 모든 VM에서 웹앱을 업데이트하고 새 버전을 설치해야 합니다.

롤아웃이 진행되는 동안 시스템은 사용 가능한 상태를 유지해야 합니다. 가용성을 보장하는 좋은 방법은 사용자 지정 스크립트 확장을 사용하여 업데이트를 수행하는 것입니다. 가상 머신 확장 집합에 이 스크립트를 적용합니다. 확장 집합은 한 번에 하나의 VM에 업데이트를 적용하므로 다른 VM은 계속 실행됩니다.

이 연습에서는 사용자 지정 스크립트 확장을 사용하여 웹앱의 새 버전을 롤아웃합니다. nginx 서버에서 제공하는 메시지를 편집합니다. 대규모 업데이트에도 동일한 방법을 사용할 수 있습니다.

참고

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

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

사용자 지정 스크립트 확장을 사용하여 업데이트 배포

  1. Azure Portal에서 Cloud Shell을 열고 다음 명령을 실행하여 확장 집합의 현재 업그레이드 정책을 확인합니다.

    az vmss show \
        --name webServerScaleSet \
        --resource-group myResourceGroup \
        --query upgradePolicy.mode
    

    업그레이드 정책이 Automatic으로 설정되어 있는지 확인합니다. 이 정책은 첫 번째 랩에서 확장 집합을 만들 때 지정했습니다. 정책이 Manual이면 VM 변경 사항을 직접 적용해야 합니다. 정책이 Automatic이므로 사용자 지정 스크립트 확장을 사용할 수 있고 확장 집합이 업데이트를 수행하도록 할 수 있습니다.

  2. 다음 명령을 실행하여 업데이트 스크립트를 적용합니다.

    az vmss extension set \
        --publisher Microsoft.Azure.Extensions \
        --version 2.0 \
        --name CustomScript \
        --vmss-name webServerScaleSet \
        --resource-group myResourceGroup \
        --settings "{\"commandToExecute\": \"echo This is the updated app installed on the Virtual Machine Scale Set ! > /var/www/html/index.html\"}"
    

업데이트된 웹 애플리케이션 테스트

  1. 다음 명령을 실행하여 확장 집합 부하 분산 장치의 IP 주소를 검색합니다.

    az network public-ip show \
        --name webServerScaleSetLBPublicIP \
        --resource-group myResourceGroup \
        --output tsv \
        --query ipAddress
    
  2. 웹 브라우저에서 확장 집합 부하 분산 장치의 공용 주소로 이동합니다. This is the updated app installed on the Virtual Machine Scale Set!(가상 머신 확장 집합에 설치된 업데이트된 앱입니다.)라는 메시지가 표시되는지 확인합니다.

    업데이트된 웹앱의 스크린샷