Azure Container Apps とは?Azure のサーバーレスコンテナ
Azure Container Apps はサーバーレスなコンテナプラットフォームです。コンテナイメージをデプロイすると、Kubernetes を管理することなく Azure がそれらを(ゼロへを含めて)autoscaling します。
Container Apps は、Kubernetes cluster を運用せずにコンテナベースのマイクロサービスと autoscaling を提供します。裏側は Kubernetes と KEDA の上に構築されていますが、より単純なモデルを公開します。イメージをデプロイし、スケーリングルールを設定し、あとは Azure に任せます。App Service とフルの AKS の間に位置します。
提供するもの
Container Apps は、HTTP ingress、サービス間の内部呼び出し、イベント駆動のスケーリングとともに、コンテナのリビジョンを実行します。background job、マイクロサービスパターンのための Dapr 統合、リビジョン間のトラフィック分割をサポートします。
イベント駆動の autoscaling
KEDA を基盤に、Container Apps は HTTP トラフィック、CPU、あるいはキューの長さのような外部イベントに基づいてスケールできます。アイドル時にはゼロへスケールできるため、リクエストの合間には何も支払わず、次のリクエストで cold start が発生します。
選ぶとき
- AKS を管理せずにコンテナとマイクロサービスが欲しい。
- イベント駆動または scale-to-zero の workload が必要。
- App Service より柔軟性が欲しいが、Kubernetes ほどの運用は避けたい。
Container Apps vs AKS
AKS は cluster を運用する代わりに、フルの Kubernetes 制御とそのエコシステム全体を与えます。Container Apps は Kubernetes を隠し、はるかに単純ですが、公開する調整項目は少なくなります。生の Kubernetes が本当に必要なときは AKS を選び、そうでなければ Container Apps のほうが軽量です。
CI/CD での役割
パイプラインはイメージを Azure Container Registry へプッシュし、az containerapp update を実行して新しいリビジョンをデプロイし、任意で canary 向けにトラフィックを分割します。GitHub Actions は OIDC 経由で service principal に認証するため、workflow に secret は保存されません。
重要なポイント
- Container Apps はイベント駆動の autoscaling でコンテナをサーバーレスに実行します。
- Kubernetes を隠し(AKS と KEDA の上に構築)、より単純なデプロイモデルを提供します。
- パイプラインは ACR へプッシュしてリビジョンを更新し、任意で canary のトラフィック分割を行います。