このエントリは2025/02/25現在の情報に基づいています。将来の機能追加や変更に伴い、記載内容からの解離が発生する可能性があります。
Azure Container Apps (ACA) で、Private Endpointを構成できるようになった(執筆時点ではPublic Preview)。これを使えば、ACAのあるVNet外(カスタム、マネージドを問わず)からもセキュアにアクセスできるように構成できる。基本的なことは以下のドキュメントに記載があるが、特にFront DoorからのPrivate Link Serviceを構成した場合にハマりがちな箇所について備忘録がてら記載しておく(もしかするとGAのタイミングで解消されている可能性がある)。
Azure Container Apps 環境 (プレビュー) でプライベート エンドポイントを使用する / Use a private endpoint with an Azure Container Apps environment (preview)
https://learn.microsoft.com/azure/container-apps/how-to-use-private-endpoint
Azure Front Door を使用して Azure Container App へのプライベート リンクを作成する (プレビュー) / Create a private link to an Azure Container App with Azure Front Door (preview)
https://learn.microsoft.com/azure/container-apps/how-to-integrate-with-azure-front-door
1) ACA環境に対するPrivate Link Serviceへの接続
Front Doorからの接続先はACA環境のPrivate Link Serviceで、Front Doorからのトラフィックはそこを経由してOriginのACAにルーティングされる。少々混乱する可能性があるのが、以下の点。
- OriginはACAを明示的に指定
- ACA環境へのPrivate Link Service接続は1個だけ (Originの個数ではない)
書いてみれば当たり前だが、Originを明示的に指定してPrivate Link Serviceを使った接続を構成する場合、各ACA環境へのPrivate Link接続は1個だけである。同一ACA環境で動作しているACAをOriginとした場合には、その1個の接続を使う(下図)。

当然ながら、異なるACA環境で動作するACAをOriginとする場合、Private Link Serviceへの接続はACA環境の個数だけ作成される。
2) ACA環境へのPrivate Link Service接続は自動承認されない
これは字面通りで、ACA環境で接続を承認する必要がある。「Front DoorでPrivate Link Service接続を構成したが、いつまでも接続できないまま」という場合には、承認したかどうかを確認すべき。
3) Health ProbeではGETを使おう
これも基本ではあるが、HEADだとメタデータのみ取得するが、厳密に正常性を監視したいならGETを使うことを推奨する。Azure Portalから構成するとデフォルトがHEAD(宛先がルート (/) )で、特に問題なく正常と判断するが、本当に正常性を監視したい箇所に向けて構成する必要がある。