演習 - Azure portal でスケール セットをデプロイする
この例のシナリオでは、運送会社用の Web アプリケーションを実行するために、スケール セットを使用することに決めました。 スケール セットを使用すると、ワークロードが変化しても、運送会社はユーザーへの短い応答時間を維持できます。
最初のタスクでは、スケール セットを作成します。 Web サーバー (この場合は nginx) を実行するように構成します。 スケール セットを正しく構成したら、Web アプリケーションをデプロイします。 次に、Azure がスケール セット内の各仮想マシン (VM) の可用性を確認するために使用する正常性プローブを設定します。 最後に、Web ブラウザーから要求を送信してスケール セットをテストします。
Note
この演習は省略してもかまいません。 Azure アカウントをお持ちでない場合は、説明を最後までお読みになり、REST API を使用してメトリックを取得する方法を理解してください。
この演習を完了する必要があるものの、Azure サブスクリプションをお持ちでない場合、またはご自分のアカウントを使用したくない場合は、始める前に無料アカウントを作成してください。
仮想マシン スケール セットをデプロイする
Azure portal にサインインして、Azure Cloud Shell を開きます。
Cloud Shell ウィンドウの上部にあるツール バーで、[設定]>[クラシック バージョンに移動] を選択します。
Cloud Shell で、コード エディターを起動し、cloud-init.yaml という名前のファイルを作成します。
code cloud-init.yaml
ファイルに次のテキストを追加します。
#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 をインストールするための構成情報が含まれます。
Ctrl + S キーを使用してファイルを保存し、次に Ctrl + Q キーでコード エディターを閉じます。
次のコマンドを実行して、スケール セット用に新しいリソース グループを作成します。
az group create --location eastus --name myResourceGroup
次のコマンドを実行して、仮想マシン スケール セットを作成します。
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
新しい仮想マシン スケール セットには、既定で、2 つのインスタンスと 1 つのロード バランサーがあります。
Note
フラグ
custom-data
では、VM が作成された後、VM の構成で cloud-init.yaml ファイルの設定を使用する必要があることを指定します。 cloud-init ファイルを使用して、追加のパッケージのインストール、セキュリティの構成、およびマシンが最初にインストールされたときのファイルへの書き込みを行うことができます。詳細については、Azure での VM に対する cloud-init のサポートに関する記事を参照してください。
仮想マシン スケール セットを構成する
次のコマンドを実行して、ロード バランサーに正常性プローブを追加します。
az network lb probe create \ --lb-name webServerScaleSetLB \ --resource-group myResourceGroup \ --name webServerHealth \ --port 80 \ --protocol Http \ --path /
正常性プローブでは、ポート 80 経由で Web サイトのルートに対して ping が実行されます。 Web サイトが応答しない場合、サーバーは使用できないものと見なされます。 そのサーバーには、ロード バランサーからトラフィックがルーティングされません。
次のコマンドを実行して、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
仮想マシン スケール セットをテストする
Azure portal のサイド メニューから、[リソース グループ]>[myResourceGroup] を選択します。
webServerScaleSet 仮想マシン スケール セットを選択します。
[概要] ページで、仮想マシン スケール セットのパブリック IP アドレスをメモします。
[Instances]\(インスタンス\) を選択します。 スケール セットに 2 つの実行中の VM が含まれていることを確認します。
インスタンスを選択し、[プロパティ] ページに移動します。 VM で Ubuntu Linux が実行されていることを確認します。
Web ブラウザーで、スケール セットのパブリック IP アドレスに移動します。 メッセージ "Hello World from Virtual Machine Scale Set !" が表示されていることを確認します。