Azure Application Gatewayを構築してみた

2019-05-26Application Gateway,Azure

 Azure Portalを使ったApplication Gateway(V1) の構築を実施してみました。
 Application Gateway用のサブネット作成、ネットワークセキュリティグループ設定と言った事前準備作業からApplication Gateway作成まで一連の流れをAzure Portalを利用してやってみました。
 インターネットからHTTPを受信するという一番基本的な構成を想定し作成しています。

スポンサーリンク

Application Gateway(アプリケーションゲートウェイ)の構成要素

アプリケーションゲートウェイは複数の要素で構成されます。

    • フロントエンド IP アドレス
      • アプリケーションゲートウェイが受信するIPアドレスになります。パブリックIPアドレスの場合はインターネットに公開するアドレスになります。
    • リスナー
      • リスナーはアプリケーションゲートウェイがアクセスを受け付ける為の設定になります。プロトコル、ポート、ホスト、IP アドレスの組み合わせで設定します。httpsを受付ると言った設定やマルチドメイン設定を行います。
    • HTTP設定
      • バックエンドに転送する為の設定になります。バックエンドにHTTP、HTTPSどちらで転送するのかと言った設定を行います。自分で作成した正常性プローブを利用した設定も出来ます。
    • ルール(ルーティング規則)
      • HTTP設定、リスナー、バックエンド プールを結びつける設定になります。パスベースで転送するバックエンドプール(サーバやApp Service等)を変更すると言った設定が可能です。
    • バックエンド プール
      • 転送先のWEBサーバを指定する設定になります。複数のWEBサーバを設定すると負荷分散(ラウンドロビン)したトラフィックの転送が出来ます。仮想マシンだけではなくApp Service等を指定する事が可能です。
    • 正常性プローブ
      • バックエンド プールに指定したWEBサーバの死活監視を行う設定になります。バックエンドにHTTP(S)で確認を行いHTTPの正常な応答(200-299)があったWEBサーバのみに転送すると言ったような設定を行う項目です。

※これ以外にもWAF(Web アプリケーション ファイアウォール)があります。

Application Gateway用のネットワークセキュリティグループ(NSG)とサブネットを作成

Application Gatewayでは専用のサブネットを準備する必要があります。併せてそのサブネットに適用するネットワークセキュリティグループを作成します。

ネットワークセキュリティグループの作成

ネットワークセキュリティグループの作成を行います。

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

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

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

作成したネットワークセキュリティグループへ移動しますので受信規則の作成を行います。

アプリケーションゲートウェイで必要となる受信規則を作成する

アプリケーションゲートウェイで必要となる受信規則を作成します。

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

2)受信規則の設定を行います。ルール1はアプリケーションゲートウェイでは必須の設定になります。2と3は特定のIPからの許可のみする為の設定となっています。特定のIPからの許可とする為に、許可IP以外のアクセスを遮断する設定となっています。(1だけあればアプリケーションゲートウェイは動作します。)

ルール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へのアクセスが許可されている必要があります。

これでネットワークセキュリティグループの設定は完了です。

Application Gateway用のサブネットを作成

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

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

2)サブネットの追加を行います。名前やアドレス範囲のサブネット適時入力します。ネットワークセキュリティグループには先ほど作成したネットワークセキュリティグループを指定します。なおサブネットは/27以上のIP範囲(32個以上のIP)である必要があります。またアプリケーションゲートウェイ専用である必要があります。

※V2を利用する場合は/24以上が強く推奨されています。

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

Application Gatewayを作成

事前準備が出来ましたのでApplication Gatewayを作成します。今回は試験用なので最小規模(インスタンス数1)で作成しています。インスタンス数は2以上が推奨なので実際の利用時は注意して下さい。以前はバラバラの作成だったのですが、2020年7月12日現在では一元的に作成するようになっています。

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

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

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

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

アプリケーションゲートウェイの基本情報設定

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

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

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

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

フロントエンドの作成

1)今回は外部公開用を想定する為パブリックを選択します。併せてパブリックIPも新規作成する場合は、パブリックIPアドレスの新規追加をクリックし追加します。なおパブリックIPは動的である必要があります。(V1の場合です。)

バックエンドプールの作成

1)バックエンドプールの追加をクリックします。

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

ルーティング規則の作成

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

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

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

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

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

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

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

Application Gatewayの追加設定

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

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

既定の正常性プローブの設定(公式サイト)

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

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

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

パスベースのルールの作成についてはこちら。

Application Gatewayのテンプレートエクスポートについてはこちら。