目的
Azure のコンテナに関するサービスは複数あり、各サービスの特徴や利用目的を調べた結果を共有します。
Azure のコンテナに関するサービス
2024年10月時点のコンテナに関するサービスとしては、MSドキュメントで以下が紹介されています。
サービス | 主な利用目的 |
---|---|
Azure Container Apps | サーバーレス コンテナを使用してモダンなアプリとマイクロサービスの構築とデプロイを行う。 |
Azure App Service (Web App for Containers) | コンテナ化された Web アプリを Windows および Linux で実行する。 |
Azure Container Instances | ハイパーバイザーの分離を使用してコンテナを起動する。 |
Azure Kubernetes Service (AKS) | マネージド Kubernetes でコンテナのデプロイとスケーリングを行う。 |
Azure Functions | エンドツーエンドの開発環境でイベントドリブン型のサーバーレス コードを実行する。 |
Azure Red Hat OpenShift | マネージド Red Hat OpenShift でコンテナのデプロイとスケーリングを行う。 |
Azure Spring Apps | マネージド Spring アプリを Kubernetes の必要なくコンテナのデプロイとスケーリングを行う。 |
Azure Service Fabric | 常時稼働していてスケーラブルな分散型アプリをデプロイおよび運用する。 |
Azure Container Registry | コンテナ イメージと成果物の構築、保存、保護、レプリケートを行う。 |
※参考にしたMSドキュメント
Azure のコンテナのデプロイに関するサービスの特徴
Azure Container Apps
- マネージドなコンテナランタイム。マイクロサービスやコンテナベースのアプリケーションを、サーバーレスな環境で自動スケーリングとともにデプロイ可能。
- Kubernetesベースで、 Dapr、 KEDA、 envoyなどのオープンソースのテクノロジが利用されている。
- Kubernetes API への直接アクセスは提供されない。
Azure App Service (Web App for Containers)
- 完全マネージドなPaaSで、コンテナ化されたWebアプリを簡単にデプロイ可能。
- インフラ管理を最小限にし、AzureのCI/CD統合とオートスケーリング機能を提供。
Azure Container Instances
- シンプルでスケーラブルなコンテナランタイム。
- VMの管理なしで単一コンテナを素早くデプロイ可能。小規模なアプリケーションやテスト環境に適しているが、高度なオーケストレーションはない。
- オンデマンドで Hyper-V 分離コンテナの単一ポッドが提供される。
Azure Kubernetes Service (AKS)
- マネージドなKubernetesクラスター。コンテナオーケストレーションが可能で、複雑なマイクロサービスやコンテナベースのアプリケーションに適している。
- フルコントロールとカスタマイズが可能だが、より高度な運用管理が必要。
- Kubernetes API を利用できる。
Azure Functions
- サーバーレスなFaaS(Function as a Service)。
- イベント駆動型で、コードを関数単位で実行可能。
- 小さなタスクやイベント処理に適しているが、コンテナを直接管理するには不向き。
- Azure Functions のプログラミング モデルは基本コンテナ イメージとして使用でき、他のコンテナ ベースのコンピューティング プラットフォームに移植可能。
Azure Spring Apps
- Spring Bootアプリケーションに特化したマネージドサービス。
- コンテナ化されたJavaアプリケーションのデプロイに適しており、マイクロサービスアーキテクチャとの統合が容易。
- 包括的な監視と診断、構成管理、サービス検出、CI/CD 統合、ブルー/グリーン デプロイなどを使用して、ライフサイクルを管理できる。
Azure Red Hat OpenShift
- OpenShift(Kubernetesベース)のマネージドサービス。
- 高度なセキュリティ、CI/CDパイプライン、エンタープライズ環境に最適化されたデプロイ機能を提供。
- 独自のレジストリ、ネットワーク、ストレージ、CI/CD ソリューションを選択できる。
- 大規模なエンタープライズアプリケーションに適している。
Azure Service Fabric
- マイクロサービスやコンテナベースのアプリケーションをホストするための分散システムプラットフォーム。
- 状態管理されたサービスやアプリケーションを効率的に実行でき、複雑なアーキテクチャに適している。
- Azure 以外にも Windows Server、Linux のオンプレミスや他のパブリック クラウドなど、Service Fabric クラスターは任意の場所に作成できる。
Webアプリのコンテナ デプロイにおける比較
サーバーレス / マネージドサービス
サービス名 | 特徴 | 強み | 適しているユースケース |
---|---|---|---|
Azure Container Apps | サーバーレス、スケーラビリティ、オートスケーリング | サーバーレスで手軽にコンテナをデプロイ、オートスケーリングでコスト最適化 | イベントドリブンなマイクロサービス、小規模から中規模のWebアプリ、実験的なアプリ |
Azure App Service (Web App for Containers) | パスの管理、カスタムドメイン、CI/CD統合 | 簡単な設定でコンテナをデプロイ、PaaSの利便性 | Webアプリの迅速なデプロイ、既存のWebアプリのコンテナ化、カスタムドメインが必要な場合 |
Azure Functions | イベントドリブン、サーバーレス、スケーラビリティ | 特定の機能を小さなコンテナ単位で実行、コスト効率が高い | APIエンドポイント、バックグラウンドジョブ、IoTイベント処理 |
Azure Spring Apps | Spring Boot/Spring Cloudベース、エンタープライズJava | Springフレームワークに特化、エンタープライズJavaアプリケーションのデプロイ | Spring Boot/Spring Cloudアプリケーションの迅速なデプロイ、エンタープライズレベルの機能 |
フルマネージド Kubernetes
サービス名 | 特徴 | 強み | 適しているユースケース |
---|---|---|---|
Azure Kubernetes Service (AKS) | フルマネージドKubernetes、高度なカスタマイズ性 | Kubernetesのフル機能、高度なオーケストレーション | 大規模なコンテナ化されたアプリケーション、複雑なマイクロサービスアーキテクチャ、高度なカスタマイズが必要な場合 |
Azure Red Hat OpenShift | フルマネージドOpenShift、エンタープライズグレード | OpenShiftのフル機能、エンタープライズ向けのサポート | エンタープライズレベルのコンテナプラットフォーム、既存のRed Hat環境との統合 |
その他
サービス名 | 特徴 | 強み | 適しているユースケース |
---|---|---|---|
Azure Container Instances | 単一のコンテナ実行、短寿命タスク | コスト効率の良い短期間実行、バッチ処理 | 短期間実行のタスク、ビルドプロセス、テスト環境 |
Azure Service Fabric | マイクロサービスオーケストレーション、状態管理 | 大規模なマイクロサービスアプリケーション、状態管理が必要な場合 | 大規模な状態を持つマイクロサービス、ゲームバックエンド、IoTアプリケーション |
参考
-
Azure コンテナ - サービスと管理
-
Container Apps と他の Azure コンテナ オプションの比較
-
Microsoft Azure コンテナ サービスのドキュメント
-
Azure Service Fabric のドキュメント