フリーランスエンジニアの東と申します。
現在は、株式会社ギブリー様でお仕事を頂いております。
ここ、4年程は、Kubernetes を活用したプロジェクトに携わらせて頂いております。
※本記事は、MS Copilot で下書きしています。
Kubernetesを利用するには、
kubeadm等を利用してオンプレで構築
EKS、AKS、GKEなどのKubernetes as a Serviceの利用
ECS、Container Apps などのKubernetes as a Serviceをラップしたサービス
があると思います。
AKS
Azure 上で Kubernetes を簡単にデプロイ、管理できるサービス
- 高い柔軟性: Kubernetes のすべての機能を利用できるため、複雑なワークロードに対応可能
- Istio、AlgoCDなどの拡張アドオン的なものを自由にインストール出来ます。
- セキュリティ: EntraID と統合されており、セキュリティが強化
- Kubernetes RBACをEntraIDで認証・認可に利用することができます。
- 管理: KubeAPIなどの管理が不要に
- バージョン管理、ノードOSへのパッチの適用有無などは判断する必要はありますが、KubeAPIなどの管理は不要のためオンプレに比べると運用負荷は低いと考えております。
Container Apps
Container Apps は、Azure 上でコンテナアプリケーションを簡単にデプロイ、スケーリングできるサービス
- シンプルさ: コンテナ化されたアプリケーションを簡単にデプロイできるため、初心者にも使いやすい
- スケーラビリティ: 自動的にスケーリングし、負荷に応じてリソースを調整
- コスト効率: リソースの使用を最適化し、コストを削減
比較ポイント
特徴 | AKS | Container Apps |
---|---|---|
柔軟性 | 高い | 中 |
管理の容易さ | 中 | 高い |
セキュリティ | 高い | 中 |
スケーラビリティ | 高い | 高い |
コスト | 高い | 高い |
Container Apps の構成
- Container Apps は依存関係として Container Apps Enviroment があります。
- Container Apps Enviroment がKubernetesでのマスターノード、ワーカーノードを提供するような形
- Container Apps が KubernetesのDeployment, Service に該当するような形
- シークレットをKey Vault に格納することが可能
- AKSに比べて、Secret Manager, CSIドライバーを気にしなくても格納出来るので、管理面が簡略化されています。
どちらを選ぶべきか?
AKS は、高い柔軟性とセキュリティが求められる複雑なワークロードに適しています。
一方、Container Apps は、シンプルでコスト効率の良いスケーラブルなアプリケーションに適しています。
また、バージョンアップの時期などをコントロール出来るのはAKSになります。
結論
どちらのサービスも優れた選択肢ですが、プロジェクトの要件に応じて選ぶことが重要です。
AKS は高度な機能が必要な場合に、Container Apps はシンプルでコスト効率の良い場合に適しています。
個人的には、AKSを利用していた環境ではアップグレード戦略、夜間にアップグレード作業を行ったりが必要だったので
要件が満たせるのであれば Container Apps の法が運用負荷も低くて良いかなと思っております。
参考
https://learn.microsoft.com/ja-jp/azure/container-apps/compare-options
Container AppsでGPUが利用可能になりました。