演習 - 環境を設定する
この演習では、Load Balancer を使って事前構成された環境を設定し、Load Balancer の正常性を監視するグラフを作成します。
この演習は省略してもかまいません。 これを完了するには、Azure リソースを作成できる Azure サブスクリプションにアクセスする必要があります。 Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
環境をセットアップする
Azure portal にサインインします。
右上のメニュー バーにある [Cloud Shell] を選択します。
[Bash] を選択します。
次のコマンドを実行して、この演習で使うスクリプトをダウンロードします。
git clone https://github.com/MicrosoftDocs/mslearn-troubleshoot-inbound-network-connectivity-azure-load-balancer load-balancer
load-balancer/src/scripts フォルダーに移動します。
cd ~/load-balancer/src/scripts
次のコマンドを実行して、VM のユーザー名を設定します。 ユーザー名は別のものに変更することができます。 ユーザー名はこの演習の後半で必要になるため、使った名前をメモしておきます。
export USERNAME=azureuser
次のコマンドを実行して、スクリプトによって作成された仮想マシンのパスワードを作成します。 パスワードは変数に格納され、後で必要になったときのために、passwd.txt テキスト ファイルにも記録されます。
export PASSWORD=$(openssl rand -base64 32) echo $PASSWORD > passwd.txt
リソース グループ名を設定します。
export RESOURCEGROUP=learn-ts-loadbalancer-rg
場所を設定します。 eastus の値を、お近くの場所に置き替えます。
export LOCATION=eastus
使用できる場所の値の一部を、次の一覧に示します。
- westus2
- southcentralus
- centralus
- eastus
- westeurope
- southeastasia
- japaneast
- brazilsouth
- australiasoutheast
- centralindia
次のコマンドを実行して、リソース グループを作成します。
az group create --name $RESOURCEGROUP --location $LOCATION
次のコマンドを実行して、ロード バランサー、仮想マシン、仮想ネットワークを作成します。
bash setup.sh $RESOURCEGROUP
このスクリプトの実行には最大で 25 分かかります。
作成されたリソースを確認する
Azure portal で [リソース グループ] を検索します。
[learn-ts-loadbalancer-rg] を選択します。
リソースの一覧を [種類] で並べ替えます。
リソース グループには、次の表に示すリソースが含まれている必要があります。
名前 種類 説明 retailappvm1_disk1_xxx と retailappvm1_disk2_xxx ディスク 2 台の VM 用の仮想ハード ディスク。 retailapplb ロード バランサー VM で実行されているアプリのロード バランサー。 ロード バランサーのバックエンド プールで、retailappvm1 および retailappvm2 仮想マシンを参照します。 nicvm1 と nicvm2 ネットワーク インターフェイス 2 台の VM のネットワーク インターフェイス。 retailappnicvm1nsg と retailappnicvm2nsg ネットワーク セキュリティ グループ (NSG) 各 VM に入るトラフィックを制御する NSG。 retailappnsg ネットワーク セキュリティ グループ 両方の仮想マシンの初期フィルターとして機能しますが、各仮想マシンの NSG を使うと、マシンごとにトラフィックをフィルター処理できます。 retailappip パブリック IP アドレス ロード バランサーへのフロントエンド アクセスを提供するパブリック IP アドレス。 retailappvm1 と retailappvm2 仮想マシン 小売アプリケーションを実行している VM。 retailappvmjumpbox 仮想マシン 仮想ネットワーク内にもあるが、パブリック IP アドレスを持つ VM。 管理者は、この仮想マシンにサインインして、プライベート IP アドレスだけを持つ retailappvm1 と retailappvm2 の各 VM にアクセスできます。 retailappvnet 仮想ネットワーク VM の仮想ネットワーク。 retailapplb ロード バランサーを選択します。
[設定] で、[負荷分散規則] を選択します。
[retailapprule] を選択します。 ロード バランサーは、フロントエンド アドレスのポート 80 で受信したトラフィックを、バックエンド プール内のコンピューターのポート 80 にルーティングするように構成されています。
[retailapprule] ウィンドウを閉じます。
[設定] の下で [正常性プローブ] を選択します。
[retailapphealthprobe] を選択します。 バックエンド プールの正常性プローブでは、ポート 80 にメッセージを送信して、各仮想マシンでアプリケーションが使用可能であることを確認します。
[retailapphealthprobe] ウィンドウを閉じます。
ロード バランサーをテストする
Azure Cloud Shell に戻ります。
次のコマンドを実行して、ロード バランサー フロントエンドのパブリック IP アドレスを調べます。
bash findip.sh
ブラウザー ウィンドウを開き、この IP アドレスに移動します。 ロード バランサーによる要求のルーティング方法に応じて、結果はメッセージ retailappvm1 または retailappvm2 を含むページになります。
Cloud Shell で次のコマンドを実行して、src/stresstest フォルダーに移動します。
cd ~/load-balancer/src/stresstest
このフォルダーには、Load Balancer を通じて仮想マシンに要求を送信する数百の同時ユーザーをシミュレートする .NET Core アプリケーションが含まれています。
次のコマンドを実行して、アプリケーションを開始します。 <ip address> をロード バランサーのフロントエンド IP アドレスに置き換えます。
dotnet run <ip address>
アプリケーションの応答は、retailappvm1 または retailappvm2 から応答を受信したかどうかを示す一連のメッセージになります。
アプリケーションが 5 分間実行されるようにします。 Enter キーを押してアプリケーションを停止します。
メトリックを監視するためのグラフを作成する
Azure portal で、learn-ts-loadbalancer-rg リソース グループに移動します。
retailapplb ロード バランサーを選択します。
[監視] で [メトリック] を選びます。
次のメトリックを空のグラフに追加します。
プロパティ 値 スコープ retailapplb メトリック名前空間 Load Balancer 標準メトリック メトリック パケット数 集計 Avg ページの上部で、時間の範囲を [過去 30 分間] に設定します。 グラフは次のようになります。 平均パケット数のピーク時の値に注意してください。
[ダッシュボードにピン留めする] をオンにします。
[新規作成] を選択し、次の値を入力します。
フィールド 値 Type プライベート ダッシュボード名 dashboard-learn-ts-loadbalancer [Create and pin](作成してピン留めする) を選択します。
[新しいグラフ] を選択し、次のメトリックを追加します。
プロパティ 値 スコープ retailapplb メトリック名前空間 Load Balancer 標準メトリック メトリック 正常性プローブの状態 集計 平均 [メトリックの追加] を選択します。次の値を入力することで、別のメトリックをグラフに追加します。
プロパティ 値 スコープ retailapplb メトリック名前空間 Load Balancer 標準メトリック メトリック データパスの可用性 集計 Avg 時間の範囲を [過去 30 分間] に設定します。 グラフでは、両方の統計情報が 100% と表示されるはずです。
[ダッシュボードにピン留めする]>[既存] の順に選択します。
ダッシュボードとして dashboard-learn-ts-loadbalancer を選択します。
[Pin] (ピン留め) を選択します。
これで、システムが正常に動作しているときのメトリックのベースライン セットが作成されました。