演習 - Virtual Machine Scale Sets でアプリケーションを更新する
運送会社のシナリオでは、仮想マシン スケール セットを作成して、Web アプリケーションをインストールしました。 次は、Web アプリを更新し、スケール セット内のすべての仮想マシン (VM) に新しいバージョンをインストールする必要があります。
ロールアウトの間も、システムを利用可能な状態に保つ必要があります。 可用性を確保するよい方法は、カスタム スクリプト拡張機能を使用して更新を行うことです。 このスクリプトを仮想マシン スケール セット全体に適用します。 このスケール セットは、一度に 1 台の VM に更新を適用し、他の VM を起動して実行されている状態に保ちます。
この演習では、カスタム スクリプト拡張機能を使用して、Web アプリの新しいバージョンをロール アウトします。 nginx サーバーが提供するメッセージを編集します。 さらに大きい更新にも同じ方法を使用できます。
注意
この演習は省略してもかまいません。 Azure アカウントをお持ちでない場合は、説明を最後までお読みになり、REST API を使用してメトリックを取得する方法を理解してください。
この演習を完了する必要があるものの、Azure サブスクリプションをお持ちでない場合、またはご自分のアカウントを使用したくない場合は、始める前に無料アカウントを作成してください。
カスタム スクリプト拡張機能を使用して更新プログラムをデプロイする
Azure portal で、Cloud Shell を開き、次のコマンドを実行して、スケール セットの現在のアップグレード ポリシーを表示します。
az vmss show \ --name webServerScaleSet \ --resource-group myResourceGroup \ --query upgradePolicy.mode
アップグレード ポリシーが、
Automatic
に設定されていることを確認します。 このポリシーは、最初の課題でスケール セットを作成したときに指定したものです。 ポリシーがManual
だった場合は、手動で VM の変更を適用します。 ポリシーがAutomatic
なので、カスタム スクリプト拡張機能を使用でき、スケール セットで更新を行うことができます。次のコマンドを実行して、更新スクリプトを適用します。
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 アプリケーションをテストする
次のコマンドを実行して、スケール セット用のロード バランサーの IP アドレスを取得します。
az network public-ip show \ --name webServerScaleSetLBPublicIP \ --resource-group myResourceGroup \ --output tsv \ --query ipAddress
Web ブラウザーで、スケール セットのロード バランサーのパブリック アドレスに移動します。 This is the updated app installed on the Virtual Machine Scale Set (これは仮想マシン スケール セットにインストールされている更新されたアプリです) というメッセージが表示されることを確認します。