Azure Application Gatewayを構築してみた
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サーバのみに転送すると言ったような設定を行う項目です。
- フロントエンド IP アドレス
※これ以外にも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 | |
インスタンス数 | 1 | |
SKUサイズ | S | |
リソースグループ | 適時環境に合わせて選択します | |
場所 | 適時環境に合わせて選択します | |
仮想ネットワーク | 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のテンプレートエクスポートについてはこちら。