このエントリは2020/03/30現在の情報に基づいています。将来の機能追加や変更に伴い記載内容との乖離が発生する可能性があります。
先日以下のエントリを発見した。
Integrating API Management with App Gateway
https://techcommunity.microsoft.com/t5/azure-paas-developer-blog/integrating-api-management-with-app-gateway/ba-p/1241650
このエントリは自動翻訳で日本語にもできるが、単純に日本語化するのであれば自動翻訳とあまり変わらないので、設定時のはまりどころをメモしておく。なお、以下ではAPI ManagementをAPIM、Application GatewayをAppGWと略して記述する。
AppGWとAPIMの統合
文字通りのドキュメントに従って、AppGWおよびAPIMのインストールや設定を実施する。
内部 VNET 内の API Management と Application Gateway の統合 / Integrate API Management in an internal VNET with Application Gateway
https://docs.microsoft.com/azure/api-management/api-management-howto-integrate-internal-vnet-appgateway
はまりどころ、注意点など
VNetへのデプロイ
VNetにAPIMをデプロイするには、DeveloperもしくはPremiumプランでなければならない(BasicおよびStandardでは下図の「仮想ネットワーク」が表示されない)。また、選択するサブネットはAPIM専用、かつ/29以上にしておく必要がある。もしサブネットに別のリソースが存在するとデプロイに失敗する。
Azure API Management で仮想ネットワークを使用する方法 / How to use Azure API Management with virtual networks
https://docs.microsoft.com/azure/api-management/api-management-using-with-vnet
今回の例では、内部VNetモードとあるので、「内部」を選択する。

内部、外部の違いはドキュメントに記載がある。

VNET 接続の有効化 / Enable VNET connection
https://docs.microsoft.com/azure/api-management/api-management-using-with-vnet#enable-vnet-connection
内部モードでVNetへのデプロイが完了すると、概要ページでプライベートIPを確認できる(この例では10.1.0.5)。

もしAPIMをデプロイしたVNetのサブネットでNSGを構成している場合、以下のドキュメントに記載のAPIMが使うポートを空けておく必要がある。
ネットワーク構成に関する一般的な問題 / Common Network Configuration Issues
https://docs.microsoft.com/azure/api-management/api-management-using-with-vnet#common-network-configuration-issues
カスタム ドメインの設定
デフォルトのドメイン(azure-api.net)以外に変更したいなら、以下のドキュメントに従って構成する。なお、従量課金の場合、Gatewayエンドポイントのみカスタムドメインを適用できる。Premiumの場合、複数のホスト名をGatewayに指定できる。
カスタム ドメイン名の構成 / Configure a custom domain name
https://docs.microsoft.com/azure/api-management/configure-custom-domain
カスタムドメインを追加する場合、証明書(.pfx形式)が必要。エンドポイントをAppGWで保護する場合にはV1、V2で必要な証明書が異なるので注意。必要な証明書は以下のドキュメントに記載がある。
Azure Application Gateway でバックエンドを許可する証明書を作成する / Create certificates to allow the backend with Azure Application Gateway
https://docs.microsoft.com/azure/application-gateway/certificates-for-backend-authentication
証明書のオートローテーションは、SLAが存在するプラン、つまりDeveloperプラン以外でのみ利用可能。そのため、もし証明書のオートローテーションをしたい場合、このシナリオではPremiumプランでのみ実行可能。