ディレクター 井上です。

今回は、なかなか自分で触る機会のなかったAzureのApplication Gateway V2(AGW v2)を使う機会があったので、
簡単にご紹介したいと思います。
LYZONが構築するインフラでは以前から色々な案件で活躍してくれています。

目次

    そもそもAGWって?

    AGWは、WAF(Web Application Firewall)の機能と、URLやパスなどに応じてトラフィックをルーティングできる機能の2つを持っています。
    いずれの機能もレイヤー7(アプリケーション層)で機能します。1台で2度おいしいですね!

    スタンダードではルーティング機能のみ、WAFを選択するとルーティング機能に加えてWAFの機能も利用できます。
    もちろんWAFにするとお値段も上がるのでご注意ください。

    ルーティング

    AGWではリスナーを複数作成でき、複数のドメインをホスティングすることができます。
    リスナーで受けたトラフィックを、設定したルールに基づいてバックエンドのサーバーへルーティングすることができます。
    もちろんバックエンドサーバーも複数設定できますし、ドメインに対してパスベースで異なるバックエンドサーバーへ割り振ることもできます。

    WAFルール

    AGWのWAFルールはOWASPのバージョンに基づいて構成されています。
    AGW v2でサポートされている最新バージョンはOWASP3.2です。AGW v1では古いOWASPバージョンしか選択できないため、理由がない限りAGW v2を選択しましょう。

    もちろんOWASPのルールセットをカスタムして除外をしたり、独自のカスタムルールを追加することもできますので、環境に応じたルールを設定することができます。

    スケーリング

    AGW v2ではインスタンス数のみでスケールが決まります。
    AGW v1ではサイズとインスタンス数の2軸で決まっていたので、シンプルになりました。

    また、AGW v2ではオートスケールが新たにサポートされたため、急激なトラフィック増加に備えておくことができます。
    AGWがトラフィックに耐えてもバックエンドのサーバーが落ちてしまっては意味がないので、AppServiceのオートスケールも有効にしておくと良いかと思います。

    スケールはコストにも影響してきますが、容量ユニットも絡んできて少々複雑なのでここでは割愛します。

    その他もろもろ

    SSLオフロード

    AGWではSSLオフロードができます。TLSの最小バージョンも指定できるため、必要に応じて指定しましょう。
    現在の指定できる最新バージョンはTLS1.2。TLS1.3はプレビューとなっています。

    HTTP/2の利用

    AGWではHTTP/2が利用できます。(外部接続のみ、バックエンドへの接続はHTTP1.1が利用されます)
    HTTP/2で接続するとページの表示速度が改善する可能性があるので、可能であれば有効にしておくと良いと思います。

    カスタムエラーページの設定

    カスタムエラーページとして502と403を指定することができます。
    外部からアクセス可能なBLOBのURLを指定する必要があります。

    さいごに

    AGW v2は、v1ではサポートされていない各機能の最新バージョンが利用できます。
    また、オートスケールがサポートされたため、トラフィック急増によるトラブルを回避しやすくなりました。

    上記には書ききれなかったですが、運用面ではデプロイの時間がかなり短縮されたことが実感できます。
    設定変更やSSL証明書を更新する場合の、Azureが処理して完了するまでの時間がかなり短くなったので、使いやすくなりました。
    運用する立場としてはうれしいですね。

    以上、今回はApplication Gatewayの概要だけをざっくりとお話しました。そのうちもう少し細かい話もできればと思います。

    井上

    井上 Webディレクター

    2018年入社。2019年よりチーフ。
    大手IT企業でのハードウェアの企画、塾講師 etc.を経て現職という異色の経歴を持つ。
    趣味はテニス・スノボ等。でも休日はだいたい家にいる、インドア兼アウトドア。