演習 - Virtual Machine Scale Sets でアプリケーションを更新する

完了

運送会社のシナリオでは、仮想マシン スケール セットを作成して、Web アプリケーションをインストールしました。 次は、Web アプリを更新し、スケール セット内のすべての仮想マシン (VM) に新しいバージョンをインストールする必要があります。

ロールアウトの間も、システムを利用可能な状態に保つ必要があります。 可用性を確保するよい方法は、カスタム スクリプト拡張機能を使用して更新を行うことです。 このスクリプトを仮想マシン スケール セット全体に適用します。 このスケール セットは、一度に 1 台の VM に更新を適用し、他の VM を起動して実行されている状態に保ちます。

この演習では、カスタム スクリプト拡張機能を使用して、Web アプリの新しいバージョンをロール アウトします。 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\"}"
    

更新した Web アプリケーションをテストする

  1. 次のコマンドを実行して、スケール セット用のロード バランサーの IP アドレスを取得します。

    az network public-ip show \
      --name webServerScaleSetLBPublicIP \
      --resource-group myResourceGroup \
      --output tsv \
      --query ipAddress
    
  2. Web ブラウザーで、スケール セットのロード バランサーのパブリック アドレスに移動します。 This is the updated app installed on the Virtual Machine Scale Set (これは仮想マシン スケール セットにインストールされている更新されたアプリです) というメッセージが表示されることを確認します。