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 を使用したサービス間呼び出し、再試行などの機能が含まれています。