Azure Container Apps の詳細

完了

Azure Container Apps を使うと、Azure Kubernetes Service 上で動作するサーバーレス プラットフォーム上でマイクロサービスやコンテナー化されたアプリケーションを実行できます。 Azure Container Apps の一般的な用途には以下が含まれます。

  • API エンドポイントのデプロイ
  • バックグラウンド処理アプリケーションのホスティング
  • イベント 駆動型処理の処理
  • マイクロサービスの実行

Azure Container Apps 上に構築されたアプリは、HTTP トラフィック、イベントドリブン処理、CPU またはメモリの負荷、KEDA がサポートするスケーラーに基づいて動的にスケーリングできます。

Azure Container Apps を使用すると、次のことが行えます。

  • 複数のコンテナー リビジョンを実行し、コンテナー アプリのアプリケーション ライフサイクルを管理します。
  • KEDA でサポートされているスケール トリガーに基づいてアプリを自動スケーリングします。 ほとんどのアプリケーションは 0 にスケーリングできます (CPU またはメモリの負荷でスケーリングするアプリケーションは 0 にスケーリングできません)。
  • 他の Azure インフラストラクチャを管理することなく、HTTPS イングレスを有効にします。
  • ブルーグリーン デプロイと A/B テスト シナリオのために、複数のバージョンのアプリケーションにトラフィックを分割します。
  • DNS ベースのサービス検出が組み込まれた、セキュリティで保護された内部専用エンドポイントには、内部イングレスとサービス検出を使用します。
  • Dapr を使ってマイクロサービスを構築し、その豊富な API セットにアクセスする。
  • 任意のレジストリ (パブリックまたはプライベート) からコンテナーを実行します (Docker Hub および Azure Container Registry (ACR) を含む)。
  • アプリケーションを管理するには、Azure CLI 拡張機能、Azure portal、または ARM テンプレートを使用します。
  • コンテナー アプリの環境を作成するとき、既存の仮想ネットワークを指定します。
  • アプリケーションで直接シークレットを安全に管理します。
  • Azure Log Analytics を使用してログを監視します。

Azure Container Apps 環境

個々のコンテナー アプリは 1 つの Container Apps 環境にデプロイされます。これは、コンテナー アプリのグループに対するセキュリティで保護された境界として機能します。 同じ環境内のコンテナー アプリは、同じ仮想ネットワークにデプロイされ、同じ Log Analytics ワークスペースにログを書き込みます。 環境を作成するときに、既存の仮想ネットワークを指定できます。

コンテナー アプリを同じ環境にデプロイする理由には、以下が必要な状況が含まれます。

  • 管理に関連するサービス
  • 異なるアプリケーションを同じ仮想ネットワークにデプロイする
  • Dapr サービス呼び出し API を介して通信する Dapr アプリケーションをインストルメント化する
  • 複数のアプリケーションで同じ Dapr 構成を共有する
  • 複数のアプリケーションで同じ Log Analytics ワークスペースを共有する

コンテナー アプリをさまざまな環境にデプロイする理由には、以下を確実にしたい状況が含まれます。

  • 2 つのアプリケーションが同じコンピューティング リソースを共有しない
  • 2 つの Dapr アプリケーションが Dapr サービス呼び出し API を介して通信できない

Azure Container Apps を使用したマイクロサービス

マイクロサービス アーキテクチャ を使用すると、システム全体の機能のコア領域を個別に開発、アップグレード、バージョン管理、およびスケーリングできます。 Azure Container Apps は、次の機能を備えるマイクロサービスをデプロイする基盤を提供します。

  • 独立したスケーリング、バージョン管理、およびアップグレード
  • サービス検出
  • ネイティブの Dapr 統合

Dapr 統合

マイクロサービスで構成されるシステムを実装する場合、関数呼び出しはネットワーク全体に分散されます。 マイクロサービスの分散の性質をサポートするには、エラー、再試行、タイムアウトを考慮する必要があります。 Container Apps ではマイクロサービスを実行するための構成要素を備えていますが、Dapr を使用すると、さらに豊富なマイクロサービス プログラミング モデルが提供されます。 Dapr には、監視、pub/sub、相互 TLS を使用したサービス間呼び出し、再試行などの機能が含まれています。