本記事について
Azure Container Apps でウェブアプリケーションをホストする際、URL パスベースのルーティングや WAF (ウェブアプリケーションファイアウォール) などの機能を利用するために、Application Gateway (V2) を前段に置きたいことがあるかと思います。
その際に、特に Container Apps でデフォルトのドメイン名を使うときと、カスタムドメインを追加して Application Gateway と Container Apps 間でホスト名の保存を行いたいときで設定が変わってきます。本稿では、その違いについて簡単にまとめたいと思います。
デフォルトドメインを利用する時 (ホスト名の保存を行わないとき)
以下のようなケースを考えてみます。
この場合、Application Gateway で HTTP(S) リクエストを処理する際に、ヘッダーの 'Host'
の値を Container Apps のホスト名に変更する必要があります。
これは、バックエンド設定で新しいホスト名でオーバーライドを有効化するか、書き換えの設定でヘッダー値を書き換える必要があります。
バックエンド設定
書き換え
逆に、Application Gateway で受けたドメイン名を Host
の値にしたままにすることはできず (その場合は Container Apps から HTTP 403 エラーが返ってきます)、その場合は下記のパターンの構成を取る必要があります。
カスタムドメインを利用し、ホスト名の保存を行う時
次に、以下のようなケースを考えます。Application Gateway でリクエストを受け付けるドメインと Container Apps 上のアプリケーションでリクエストを受けるドメインを同じにしたい場合を考えます。
この場合は、まず Container Apps 側でカスタムドメインを追加する必要があります。その際に、DNS Zone に CNAME と TXT レコードを追加することが必要です。もし、Application Gateway を使っていて、既に Aレコードで Application Gateway のもつパブリック IP アドレスに対して名前解決を行っている場合、一度その Aレコードを削除して、両レコードを追加する必要があります。そして、ドメインの検証を完了し、カスタムドメイン追加後に再度 Aレコードを追加します。(この場合、マネージド証明書を Container Apps 側で利用するとその更新などに影響が出る可能性があります。)
そして、デフォルトドメインを利用する際と異なり、ホスト名のオーバーライドや書き換えをしない設定にします。すると、カスタムドメインが追加されていない際は、HTTP 403 エラーが返ってきますが、追加されるとページが表示されるようになります。
カスタムドメインが追加されていないケース
カスタムドメインが追加されているケース
最後に
*本稿は、個人の見解に基づいた内容であり、所属する会社の公式見解ではありません。また、いかなる保証を与えるものでもありません。正式な情報は、各製品の販売元にご確認ください。