ラボ 06 - トラフィック管理を実装する

ラボ概要

このラボでは、パブリック ロード バランサーとアプリケーション ゲートウェイを構成してテストする方法について学習します。

このラボでは Azure サブスクリプションが必要です。 お使いのサブスクリプションの種類により、このラボの機能が使用できるかどうかに影響する可能性があります。 リージョンを変更できますが、手順は米国東部を使って作成されています。

推定時間:50 分

ラボのシナリオ

この組織にはパブリック Web サイトがあります。 着信したパブリック要求を、異なる仮想マシン間に負荷分散させる必要があります。 また、異なる仮想マシンから画像とビデオを提供する必要もあります。 Azure Load Balancer と Azure Application Gateway の実装を計画します。 すべてのリソースは同じリージョンにあります。

対話型ラボ シミュレーション

このトピックで役に立つ対話型ラボ シミュレーションがあります。 シミュレーションを使うと、同様のシナリオを自分のペースでクリックして進めることができます。 対話型シミュレーションとこのラボには違いがありますが、主要な概念の多くは同じです。 Azure サブスクリプションは必要ありません。

職務スキル

  • タスク 1:テンプレートを使用してインフラストラクチャをプロビジョニングします。
  • タスク 2:Azure Load Balancer を構成する。
  • タスク 3:Azure Application Gateway を構成する。

タスク 1:テンプレートを使用してインフラストラクチャをプロビジョニングする

このタスクでは、テンプレートを使って、1 つの仮想ネットワーク、1 つのネットワーク セキュリティ グループ、2 つの仮想マシンをデプロイします。

  1. \Allfiles\Lab06 ラボ ファイル (テンプレートとパラメーター) をダウンロードします。

  2. Azure portal - https://portal.azure.com にサインインします。

  3. Deploy a custom template を検索して選択します。

  4. [カスタム デプロイ] ページで、[エディターで独自のテンプレートを作成する] を選択します。

  5. [テンプレートの編集] ページで、[ファイルの読み込み] を選択します。

  6. \Allfiles\Lab06\az104-06-vms-template.json ファイルを見つけて選び、[開く] を選びます。

  7. [保存] を選択します。

  8. [パラメーターの編集] を選んで、\Allfiles\Lab06\az104-06-vms-parameters.json ファイルを読み込みます。

  9. [保存] を選択します。

  10. 次の情報を使って、カスタム デプロイ ページのフィールドを設定します。他のフィールドはすべて既定値のままにします。

    設定
    サブスクリプション お使いの Azure サブスクリプション
    Resource group az104-rg6 (必要に応じて、[新規作成] を選択)
    Password セキュリティで保護されたパスワードを指定する

    :VM のサイズを使用できないというエラーが発生する場合は、お使いのサブスクリプションで利用できる、少なくとも 2 つのコアを備えた SKU を選びます。

  11. [確認および作成] を選択し、次に [作成] を選択します。

    :デプロイが完了するまで待ってから、次のタスクに進んでください。 デプロイには約 5 分かかります。

    :デプロイされているリソースを確認してください。 3 つのサブネットを含む 1 つの仮想ネットワークがあります。 サブネットごとに仮想マシンがあります。

タスク 2:Azure Load Balancer を構成する

このタスクでは、仮想ネットワーク内の 2 つの Azure 仮想マシンの前面に Azure Load Balancer を実装します。 Azure のロード バランサーは、仮想マシンなどのリソース間にレイヤー 4 の接続を提供します。 Load Balancer の構成には、接続を受け入れるフロントエンド IP アドレス、バックエンド プール、接続がロード バランサーを通過する方法を定義する規則が含まれます。

アーキテクチャの図 - Load Balancer

:Load Balancer が同じ仮想ネットワーク内の 2 台の仮想マシンに分散させていることに注意してください。

ラボ タスクの図。

  1. Azure portal で「Load balancers」を検索して選び、[ロード バランサー] ブレードで [+ 作成] をクリックします。

  2. 次の設定でロード バランサーを作成し (他の設定は既定値のままにします)、[次へ: フロントエンド IP 構成] をクリックします。

    設定
    サブスクリプション お使いの Azure サブスクリプション
    Resource group az104-rg6
    名前 az104-lb
    リージョン VM をデプロイしたのと同じリージョン
    SKU Standard
    Type Public
    階層 Regional

    [ロード バランサーの作成] ページのスクリーンショット。

  3. [フロントエンド IP 構成] タブで、 [フロントエンド IP 構成の追加] をクリックし、次の設定を使用します。

    設定
    名前 az104-fe
    IP の種類 IP アドレス
    Azure Gateway Load Balancer なし
    パブリック IP アドレス [新規作成] を選びます (次のステップの手順を使います)
  4. [パブリック IP アドレスの追加] ポップアップで、次の設定を使用してから [OK][追加] の順にクリックします。 完了したら、 [Next : Backend pools] (次へ: バックエンド プール) をクリックします。

    設定
    名前 az104-lbpip
    SKU Standard
    レベル 地域
    割り当て 静的
    ルーティングの優先順位 Microsoft ネットワーク

    注: Standard SKU では静的 IP アドレスが提供されます。 静的 IP アドレスは、リソースの作成時に割り当てられて、リソースの削除時に解放されます。

  5. [バックエンド プール] タブで、次の設定を使って [バックエンド プールの追加] をクリックします (その他は既定値のままにします)。 [+ 追加] を (2 回) クリックしてから、[次へ: インバウンド規則] をクリックします。

    設定
    名前 az104-be
    仮想ネットワーク az104-06-vnet1
    バックエンド プールの構成 NIC
    [追加] をクリックして仮想マシンを追加します  
    az104-06-vm0 チェックボックスをオンにします
    az104-06-vm1 チェックボックスをオンにします
  6. 時間があれば、他のタブも確認してから、[確認と作成] をクリックします。 検証エラーがないことを確認し、 [作成] をクリックします。

  7. ロード バランサーがデプロイされるまで待ってから、 [リソースに移動] をクリックします。

着信トラフィックの分散方法を決定する規則を追加する

  1. [設定] ブレードで、[負荷分散規則] を選びます。

  2. [+ 追加] を選択します。 次の設定で負荷分散規則を追加します (その他は既定値のままにします)。 規則を構成するときは、情報アイコンを使って各設定について確認します。 終わったら、[保存] をクリックします。

    設定
    名前 az104-lbrule
    IP バージョン IPv4
    フロントエンド IP アドレス az104-fe
    バックエンド プール az104-be
    Protocol TCP
    ポート 80
    バックエンド ポート 80
    正常性プローブ 新規作成
    名前 az104-hp
    Protocol TCP
    ポート 80
    Interval 5
    正常性プローブの作成ウィンドウを閉じます および
    セッション永続化 なし
    アイドル タイムアウト (分) 4
    TCP リセット Disabled
    フローティング IP 無効
    アウトバウンド送信元ネットワーク アドレス変換 (SNAT) 推奨
  3. Load Balancer のページで [フロントエンド IP 構成] を選びます。 パブリック IP アドレスをコピーします。

  4. 別のブラウザー タブを開き、その IP アドレスに移動します。 ブラウザー ウィンドウに、”Hello World from az104-06-vm0” または “Hello World from az104-06-vm1” というメッセージが表示されることを確認します。

  5. ウィンドウを更新して、メッセージが他の仮想マシンに変更されることを確認します。 これは、ロード バランサーが仮想マシンを交代させていることを示しています。

    : 複数回更新するか、InPrivate モードで新しいブラウザー ウィンドウを開く必要がある場合があります。

タスク 3:Azure Application Gateway を構成する

このタスクでは、2 台の Azure 仮想マシンの前面に Azure Application Gateway を実装します。 Application Gateway では、レイヤー 7 の負荷分散、Web Application Firewall (WAF)、SSL 終端、バックエンド プールで定義されているリソースへのエンド ツー エンドの暗号化が提供されます。 このアプリケーション ゲートウェイは、画像を 1 つの仮想マシンにルーティングし、ビデオをもう 1 つの仮想マシンにルーティングします。

アーキテクチャの図 - Application Gateway

:このアプリケーション ゲートウェイは、ロード バランサーと同じ仮想ネットワークで動作しています。 これは、運用環境では一般的ではないことがあります。

ラボ タスクの図。

  1. Azure portal で、Virtual networks を検索して選びます。

  2. [仮想ネットワーク] ブレードの仮想ネットワークの一覧で、[az104-06-vnet1] をクリックします。

  3. [az104-06-vnet1] 仮想ネットワーク ブレードの [設定] セクションで、[サブネット] をクリックしてから、[+ サブネット] をクリックします。

  4. 次の設定でサブネットを追加します (他の設定は既定値のままにします)。

    設定
    名前 subnet-appgw
    開始アドレス 10.60.3.224
    サイズ /27
  5. [保存]

    :このサブネットは、Azure アプリケーション ゲートウェイによって使われます。 Application Gateway には、/27 以上のサイズの専用サブネットが必要です。

  6. Azure portal で「Application gateways」を検索して選び、[アプリケーション ゲートウェイ] ブレードで [+ 作成] をクリックします。

  7. [基本] タブで、次の設定を指定します (他の設定は既定値のままにしておきます)。

    設定
    サブスクリプション お使いの Azure サブスクリプション
    Resource group az104-rg6
    アプリケーション ゲートウェイ名 az104-appgw
    リージョン タスク 1 で使ったのと同じ Azure リージョン
    レベル 標準 V2
    自動スケーリングを有効にする いいえ
    最小インスタンス数 2
    可用性ゾーン 1 (既定値)
    HTTP2 Disabled
    仮想ネットワーク az104-06-vnet1
    Subnet subnet-appgw (10.60.3.224/27)
  8. [次へ: フロントエンド >] をクリックし、次の設定を指定します (その他は既定値のままにします)。 設定が完了したら [OK] をクリックします。

    設定
    フロントエンド IP アドレス タイプ Public
    パブリック IP アドレス [新規追加]
    名前 az104-gwpip
    可用性ゾーン 1

    注: Application Gateway は、パブリックとプライベート両方の IP アドレスを持つことができます。

  9. ページの下部の [次へ: バックエンド >] をクリックし、[バックエンド プールの追加] をクリックします。 次の設定を指定します (他の設定は既定値のままにしておきます)。 完了したら、 [追加] をクリックします。

    設定
    名前 az104-appgwbe
    Add backend pool without targets いいえ
    仮想マシン az104-06-nic1 (10.60.1.4)
    仮想マシン az104-06-nic2 (10.60.2.4)
  10. [バックエンド プールの追加] をクリックします。 これは、画像のためのバックエンド プールです。 次の設定を指定します (他の設定は既定値のままにしておきます)。 完了したら、 [追加] をクリックします。

    設定
    名前 az104-imagebe
    Add backend pool without targets いいえ
    仮想マシン az104-06-nic1 (10.60.1.4)
  11. [バックエンド プールの追加] をクリックします。 これは、ビデオのためのバックエンド プールです。 次の設定を指定します (他の設定は既定値のままにしておきます)。 完了したら、 [追加] をクリックします。

    設定
    名前 az104-videobe
    Add backend pool without targets いいえ
    仮想マシン az104-06-nic2 (10.60.2.4)
  12. [次へ: 構成 >] を選択してから、[ルーティング規則の追加] を選択します。 情報を設定します。

    設定
    規則の名前 az104-gwrule
    優先順位 10
    リスナー名 az104-listener
    フロントエンド IP パブリック IPv4
    Protocol HTTP
    ポート 80
    リスナーの種類 Basic
  13. [バックエンド ターゲット] タブに移動します。基本情報を入力した後、[追加] を選びます。

    設定 Value
    バックエンド ターゲット az104-appgwbe
    バックエンド設定 az104-http (新規作成)

    注: 時間を取って、[Cookie ベースのアフィニティ][接続のドレイン] に関する情報を読んでください。

  14. [パスベースのルーティング] セクションで、[パスベースの規則を作成する複数のターゲットを追加します] を選択します。 2 つの規則を作ります。 最初のルールの後にある [追加] をクリックし、2 番目のルールの後にある [追加] をクリックします。

    規則 - 画像バックエンドへのルーティング

    設定 Value
    Path /image/*
    ターゲット名 images
    バックエンド設定 az104-http
    バックエンド ターゲット az104-imagebe

    規則 - ビデオ バックエンドへのルーティング

    設定 Value
    Path /video/*
    ターゲット名 videos
    バックエンド設定 az104-http
    バックエンド ターゲット az104-videobe
  15. 必ず保存して変更を確認してから、[次へ: タグ >] を選択できます。 変更は不要です。

  16. [次へ: 確認と作成 >][作成] の順にクリックします。

    :Application Gateway インスタンスが作成されるのを待ちます。 これには約 5 から 10 分かかります。 待っている間に、このページの最後にあるマイペースで進められるトレーニングのリンクをいくつか確認することを検討してください。

  17. Application Gateway がデプロイされたら、az104-appgw を検索して選びます。

  18. Application Gateway リソースの [監視] セクションで、[バックエンド正常性] を選びます。

  19. バックエンド プールの両方のサーバーが [正常] と表示されていることを確認します。

  20. [概要] ブレードで、[フロントエンド パブリック IP アドレス] の値をコピーします。

  21. 別のブラウザー ウィンドウを開始して、URL http://<frontend ip address>/image/ をテストします。

  22. 画像サーバー (vm1) に転送されることを確認します。

  23. 別のブラウザー ウィンドウを開始して、URL http://<frontend ip address>/video/ をテストします。

  24. ビデオ サーバー (vm2) に転送されることを確認します。

: 複数回更新するか、InPrivate モードで新しいブラウザー ウィンドウを開く必要がある場合があります。

リソースのクリーンアップ

自分のサブスクリプションで作業している場合は、お手数ですが、ラボ リソースを削除してください。 これにより、リソースが確実に解放されるため、コストが最小限に抑えられます。 ラボ リソースを削除する最も簡単な方法は、ラボ リソース グループを削除することです。

  • Azure portal で、リソース グループを選び、[リソース グループの削除][リソース グループ名を入力してください] の順に選び、[削除] をクリックします。
  • Azure PowerShell を使用する場合は、「Remove-AzResourceGroup -Name resourceGroupName」と入力します。
  • CLI を使用する場合は、「az group delete --name resourceGroupName」と入力します。

Copilot を使用して学習を拡張する

Copilot は、Azure スクリプト ツールの使用方法を学習するのに役立ちます。 Copilot は、ラボでは対象外の、またはさらに詳しい情報が必要な領域でも役立ちます。 Edge ブラウザーを開き、Copilot (右上) を選択するか、copilot.microsoft.com に移動します。 次のプロンプトを試すには数分かかります。

  • Azure Load Balancer と Azure Application Gateway の類似点と相違点を説明してください。 各製品を使用すべきシナリオを決めるサポートをしてください。
  • Azure Load Balancer への接続のトラブルシューティングに使用できるツールは何ですか?
  • Azure Application Gateway を構成するための基本的な手順は何ですか? 大まかなチェックリストを提供してください。
  • Azure 負荷分散ソリューションを際立たせた表を作成してください。 各ソリューションについて、サポートされているプロトコル、ルーティング ポリシー、セッション アフィニティ、TLS オフロードを示してください。

自習トレーニングでさらに学習する

要点

以上でラボは完了です。 このラボの重要なポイントを次に示します。

  • Azure Load Balancer は、トランスポート層 (OSI 階層 4 - TCP と UDP) で複数の仮想マシンにネットワーク トラフィックを分散させるための優れた選択肢です。
  • パブリック ロード バランサーは、インターネット トラフィックを VM に負荷分散する目的で使用されます。 内部 (プライベート) ロード バランサー は、フロントエンドのみでプライベート IP が必要な場合に使用されます。
  • Basic Load Balancer は、高可用性や冗長性を必要としない小規模なアプリケーション向けです。 Standard Load Balancer は、ハイ パフォーマンスで超低遅延のためのものです。
  • Azure Application Gateway は、Web アプリケーションに対するトラフィックを管理できる Web トラフィック (OSI レイヤー 7) ロード バランサーです。
  • Application Gateway の Standard レベルでは、負荷分散を含むすべての L7 機能が提供されます。WAF 層では、悪意のあるトラフィックを調べるためのファイアウォールが追加されます。
  • Application Gateway は、URI パスやホスト ヘッダーなど、HTTP 要求の追加属性に基づいて、ルーティングの決定を行うことができます。