Azure Application Gatewayを構築してみた

 

Azure Portalを利用してApplication Gateway(V1) の構築を実施してみました。

主な作成手順は下記の通りになります。

    1. Application Gateway用のSubnetのNSG設定
    2. Application Gateway用のSubnet作成
    3. Application Gateway作成(パブリックIPの作成も同時に行います)
    4. (任意)Application Gateway追加設定(正常性プローブ設定)

なお今回は、インターネット等の外部ネットワークからHTTPを受信するという一番基本的な構成を想定し作成しています。

※本記事は2020年7月12日に更新した内容になります。

1.Application Gateway用のNSGを作成する

Application Gateway用のサブネットに適用するNSGを作成します。

1)ネットワークセキュリティグループの画面で追加を選択します。

2)ネットワークセキュリティグループの作成画面が表示されますので、名前を入力し、リソースグループや地域(ロケーション)を選択します。確認および作成をクリックすると確認画面が表示されますので、そのまま作成を行います。

3)デプロイが完了したら下記画面が表示されますので、リソースの移動をクリックします。

4)ネットワークセキュリティの画面で受信規則を選択します。下記画面が表されますので、追加をクリックします。

5)受信規則の設定を行います。(今回は特定のIPからの許可のみの設定を前提としています。)

ルール1

    • 優先順位:100
    • 宛先ポート: 65503-65534
    • プロトコル:Any(or TCP)
    • ソース:Any
    • 宛先:Any
    • アクション:許可

ルール2

    • 優先順位:101
    • 宛先ポート:*
    • プロトコル:TCP
    • ソース: AzureLoadBalancer  (Service Tag)
    • 宛先:Any
    • アクション:許可

ルール3

    • 優先順位:102
    • 宛先ポート:80,443
    • プロトコル:TCP
    • ソース: 接続許可するIPアドレス  (IPアドレス)
    • 宛先:Any
    • アクション:許可

ルール4

    • 優先順位:104
    • 宛先ポート:*
    • プロトコル:*
    • ソース: InterNet(Service Tag)
    • 宛先:Any
    • アクション:拒否

実際に設定が完了すると、下記のようになります。APGW01のプロトコルはAnyで作成との記載があったりもしますのでAnyで作成すべきかと思われます。

※なお、送信規則は、InterNetへのアクセスが許可されている必要があります。別途停止させている場合は、送信許可設定を追加します。

これでNSGの設定は完了です。

2.Application Gateway用のサブネットを作成する

Application Gateway用のサブネットを作成します。Application GatewayのサブネットにはAzure VM等は設置できません。個別で専用に作成する必要があります。

1)仮想ネットワークの画面でサブネットを選択します。以下の画面が表示されますので、サブネットを追加します。

2)サブネットの追加を行います。名前やアドレス範囲(/27以上)のサブネット適時入力します。ネットワークセキュリティグループには先ほど作成したNSGを指定します。

これで、サブネットの追加作業は完了です。

3.Application Gatewayを作成する

事前準備が完了したので、Application Gatewayを作成します。なお今回は試験用なので最小規模で作成しています。インスタンス数は2以上が推奨なので実際の利用時は注意して下さい。

以前はバラバラの作成だったのですが、2020年7月12日現在では一元的に作成するようになっています。

作成は以下の通りの流れで進みます。

      • 基本情報の設定
      • フロントエンドの作成(パブリックIPの作成も行います)
      • バックエンドプールの作成
      • ルーティング規則の作成

ルーティング規則の作成では、以下の内容を作成します。

      • リスナーの作成
      • HTTP設定の作成

1)Azure Portalでアプリケーション ゲートウェイのメニューを開きます。追加をクリックします。

2)アプリケーション ゲートウェイの作成画面が表示されますので、設定を進めていきます。

今回、設定値は下記の通り指定います。環境に合わせて適時修正頂ければと思います。

設定項目設定値備考
名前APGW適時命名してください。
レベルStandard 
インスタンス数 
SKUサイズ 
リソースグループ適時環境に合わせて選択します 
場所適時環境に合わせて選択します 
仮想ネットワークApplication Gateway用のサブネットがある仮想ネットワークを指定 
サブネットApplication Gateway用のサブネットを指定 

3)次はフロントエンドの設定になります。今回は外部公開用を想定する為、パブリックIPも新規作成します。パブリックIPアドレスの新規追加をクリックし追加します。

4)次にバックエンドプールの作成になります。下記画面が表示されますので、バックエンドプールの追加をクリックします。

下記画面が表示されますので、バックエンドプールを追加します。ターゲットはhttpを受信するWebサーバ(Azure VMやWeb Apps等)を適時選択します。(Webを受信する環境が無い場合は、ターゲットを持たないバックエンドプールを追加しますの項目で”はい”を選択します。)

5)構成画面が表示されます。ルーティング規則の追加をクリックし設定を行っていきます。

6)ルーティング規則の作成で、まずリスナーの設定を行います。ルール名やリスナー名を適時入力します。またフロントエンドIPでパブリックを選択します。

7)バックエンドターゲット側の設定を行います。バックエンドターゲットは作成したバックエンドを指定します。HTTP設定は新規追加をクリックします。

HTTP設定の追加ではHTTP設定名を入力します。今回はその他の項目は設定は変更しません。

設定作業が完了したら、追加をクリックします。

8)タグの画面が表示されますので、環境に合わせて適時設定します。(必要が無ければ、何も入力しなくてもOKです。)

9)確認画面が表示されますので、問題なければ作成をクリックし作成します。これで作成作業は完了です。

4.Application Gatewayの追加設定

正常性プローブの設定は必須ではありませんがこっちも設定してみます。正常性プローブはバックエンドプールの正常性を確認するものです。

デフォルトは/へのアクセスで確認になります。詳細は下記サイトをご確認してください。

https://docs.microsoft.com/ja-jp/azure/application-gateway/application-gateway-probe-overview#default-health-probe-settings

1)作成したアプリケーションゲートウェイの画面で、正常性プローブを選択します。下記画面が表示されますので、追加をクリックします。

2)名前を入力します。またホスト部分ですがマルチサイトでない場合は127.0.0.1を指定します。パスはURLのパスを適時指定します。下記画面はhttp://ドメイン/index.htmlを正常性プローブとして指定しています。設定が終わったら保存をクリックします。

3)作成した正常性プローブをHTTP設定と関連付けします。関連付けを行うHTTP設定を行うと下記のように追加の画面が表示されますので、カスタムプローブの使用を”はい”を選択、カスタムプローブに先ほど作成した正常性プローブを選択します。最後に更新すれば作業完了です。

Azure Monitorを利用したバックエンド正常性監視については下記記事に記載しております。

Azure Monitorを使ってAzure Application Gateway正常性プローブのステータス変化を検知する

パスベースのルールの作成については下記記事に記載しております。

Azure Application Gatewayで特定のパスに来たアクセスを特定のVirtual Machineに振り分ける

--------