Azure Container Apps x Kong Gateway

Azure Container Appsについて
この資料がわかりやすかった:
AKS(Azure Kubernetes Service)上にKEDA, Envoy, Daprが組み込まれたコンテナの実行環境
Environmentsという単位が存在していて、この中に1つ以上のContainer Appsを紐づける
Revisionも存在していて、B/Gデプロイなどが可能
ひとまず、stdout/errにログを出力しておけば、Azure側のサービスでなんとかしてくれる

概要は大体わかったので、公式ドキュメントベースでKong Konnect DPを構築する上での課題などがないかを調査してみる。

DedicatedとPAYGのプランが存在しているみたい
scale-to-zero (ゼロへのスケール)をサポートし、アプリが使用するリソースに対してのみ料金を支払うサーバーレス環境。
どちらにせよ、ゼロスケールをサポートしている。Kong Gatewayみたいなユースケースだとゼロスケールすることはないので、ここはデフォルトのオプションを確認した方が良さそう。

Docker Hub では、Docker イメージのダウンロード数が制限されています。 制限に達すると、アプリ内のコンテナーの起動に失敗します。 この問題を回避するには、Azure Container Registry などの制限に余裕があるレジストリを使用します。
Azure Container Appsに限った話ではないが、Kong GatewayのコンテナイメージもDocker Hubに格納されているので、「起動に失敗 -> イメージの再取得 -> Rate Limitにあたってしまう」みたいなことを避けるために Azure Container Registry に可能であればミラーリングしておいた方が良さそう。

計画メンテナンスがあるので、ダウンタイムをなくしたい場合は、複数の可用性ゾーンに冗長構成を組む必要がある。
Container Apps のゾーン冗長機能を有効にすると、レプリカがリージョン内のゾーン間に自動的に分散されます。
このように書いてあるので、何か設定項目が存在して有効にするだけで冗長構成になるっぽい?

CI/CD
Azure Pipelinesを使う例が書いてあるので、中身はあまり読んでいないが普通にできるはず

オブザーバビリティ
ログやトレースはなんとでもなりそう。
メトリクスは、Azure MonitorがPrometheus形式で取得できれば最高なんだが...。
Azure ManagedなPrometheusがあるみたいなので、これで行けそう。

と思いきや、これはAKS前提だった。

OpenTelemetryのAzure Monitor Exporterが使えそう。結局トレースやアクセスログも送りたいので、サイドカーコンテナにOTel Collectorを構築してAzure Monitorに送信するのが良い手段な気がしてきた。

こんな感じでいけないかしら?

OpenTelemetry Collectorエージェントなるものがあるらしい