Skip to content
Latchkey

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 のトラフィック分割を行います。

関連ガイド