Slide 1

Slide 1 text

座礁しないための Azure コンテナーの選び方 2023/07/17 Miho Kurimoto

Slide 2

Slide 2 text

自己紹介:Miho Kurimoto (mihohoi) • 日本マイクロソフト Cloud Solution Architect • 特に好きな分野 • Kubernetes などコンテナー製品 • 運用と監視、IaC (とにかく運用が楽になる事) • SNS • Twitter:@Danny_miho • Zenn:https://zenn.dev/mihohoi • 技術書典に出店しました(本はこちら) • 趣味 • 編み物 • 将棋(観る将) • JOJO が好きです!

Slide 3

Slide 3 text

お品書き • Azure にあるコンテナー サービス • Azure コンテナーサービスの比較とそれぞれのシナリオ例 • まとめ

Slide 4

Slide 4 text

コンテナーとは Infrastructure Host Operations System Hypervisor Gest OS Gest OS Gest OS Bins/Library App Bins/Library App Bins/Library App Infrastructure Operations System Container Engine Bins/Library App Bins/Library App Bins/Library App Bins/Library App

Slide 5

Slide 5 text

Azure のコンテナー サービス Azure Kubernetes Service Azure RedHat OpenShift Azure Container Apps Azure Container Instance Azure Web App for Container Azure Container Registry

Slide 6

Slide 6 text

Azure Web App for Containers ✓Web Apps の実行イメージとしてコンテナーイメージを使用する ✓組み込みの自動スケーリングと自動負荷分散を活用 ✓Web アプリケーション用に最適化 ✓コンテナーとしても利用できる。マルチコンテナーはプレビュー ✓Linux/Windows(制限あり) コンテナーが利用可能 ✓つまり、Web Apps 特有の機能が使える

Slide 7

Slide 7 text

Azure Container Instance ✓ 単純なアプリケーション、タスク自動化、ジョブ作成など、分離されたコンテナーで 操作できるあらゆるシナリオ向けサービス。 ✓ スケーリングや負荷分散、証明書の概念はない ✓ Azure Spot 割引が使える ✓ GPU リソースも利用できる(プレビュー) ✓ Linux/Windows(制限あり) コンテナーが利用可能

Slide 8

Slide 8 text

Azure Container Apps ✓証明書・リビジョン・スケーリング、環境など、多くのアプリケーション固有概念がコ ンテナーの上に提供される ✓独自の VNET 上に作成できる ✓コマンドのオーバーライドができる ✓KEDA・Dapr・envoy が取り入れられている

Slide 9

Slide 9 text

Azure Kubernetes Service ✓フルマネージドの Kubernetes オプションの提供 ✓すべての Kubernetes ワークロードが実行される ✓分散系のアプリケーションに最適

Slide 10

Slide 10 text

Azure RedHat OpenShift ✓フルマネージドの OpenShift オプションの提供 ✓Red Hat と Microsoft が共同で設計、運用、サポートを行い、 統合されたサポート エクスペリエンスを実現 ✓OpenShift の GUI が利用できる

Slide 11

Slide 11 text

Azure Container Registry ✓Docker コンテナイメージを管理して Azure のすべてのサービスからプライベート にアクセスできるようにするサービス ✓レジストリーを複数の地域にレプリケートできる SKU があり、高可用性を保つ

Slide 12

Slide 12 text

コンテナーサービスの特徴と利点 サービス 特徴 利点 Azure Container Instances (ACI) 短時間のジョブ シンプルなアプリケーションなどのスピーディーでサーバーレスのコ ンテナー実行環境 VM を管理する手間がなく、リソースの使用量に応じて 課金される Azure Kubernetes Service (AKS) フルマネージド型の Kubernetes サービス 大規模なマイクロサービスアーキテクチャに対応 クラスタの設定、アップデート、スケーリングが容易 Azure Container Apps トラフィックに基づくスケーリングをサポート Kubernetes のいいとこどりのサービスが利用できる 自動スケーリング、リビジョントラッキング、イベント駆動 型の動作が可能 Azure Red Hat OpenShift エンタープライズ向けに設計された、フルマネージド型の OpenShift クラスターサービス セキュリティとコンプライアンス要件を満たす能力と、 Red Hat エコシステムとの互換性 Azure Web App for Containers Web アプリケーションに最適化されたコンテナーの実行環境 Web アプリケーションに必要な要素が用意されている

Slide 13

Slide 13 text

スケーラビリティ・管理性・コストからみた比較 サービス スケーラビリティ 管理性 コスト Azure Container Instances (ACI) 低 (個々のコンテナのみ) スケールする分だけコンテナが必要 高 (少ない管理が必要) コンテナ使用量に基づく Azure Spot 割引が使える Azure Kubernetes Service (AKS) 高 (大規模なマイクロサービスアーキテクチャ に適応) 中 (一部自動化されているが、 Kubernetes の知識が必要) アップグレードなどは定期的に必要 クラスターの規模と使用状況に基づく 利用しないときはクラスターを停止できる Azure Spot 割引が使える Azure Container Apps 高 (イベント駆動の自動スケーリングができ る) 高 (フルマネージドサービス) 使用したリソースに基づく(リソース使用量と HTTP 要求による) Azure Red Hat OpenShift 高 (大規模なエンタープライズアプリケーショ ンに適応) 中 (OpenShift の管理が必要だが、一部 が自動化) アップグレードなどは定期的に必要 クラスターの規模と使用状況に基づく Azure Web App for Containers 中 (App Service Plan に基づく) 高 (フルマネージドサービス) 選択した App Service Plan に基づく

Slide 14

Slide 14 text

各サービスが適しているシナリオ – Azure Container Instance 短期間のデータ処理ジョブや小規模なアプリケーション、テスト環境など (例) Azure DevOps self-hosted Agent で利用する イメージのデプロイ self-hosted Pipeline Repository

Slide 15

Slide 15 text

各サービスが適しているシナリオ – Azure Container Apps マイクロサービスのアーキテクチャ、イベント駆動型のアプリケーション、リアルタイムのスケーリングが必要なアプリケー ション (例) AKS のインフラストラクチャーを簡素化し、Kubernetes の強みを生かしたコンテナーサービスをデプロイする 「Azure Container Apps を使用したマイクロサービスのデプロイ」より参照 https://learn.microsoft.com/ja-jp/azure/architecture/example-scenario/serverless/microservices-with-container-apps

Slide 16

Slide 16 text

各サービスが適しているシナリオ – Azure Kubernetes Service 大規模な分散アプリケーションや、マイクロサービスアーキテクチャを使用する企業向け (例) 商品を購入すると、バックエンド側で配送の手続きを行う、または割り当てを行う コンテナーイメージの格納 PV 先 Secret 情報格納先 Ingress front app backend app

Slide 17

Slide 17 text

ポイントとまとめ ✓ Azure コンテナーサービスの主要な利点 ✓ Azure のコンテナーサービスは他の Azure サービスと連携することで、監視やセキュリティ、コスト 効率を提供します ✓ Azure のコンテナー サービスの多様性 ✓ Azure はさまざまなコンテナー サービスを提供しており、それぞれが特定のニーズと要件を満たす ように設計されています。用途に合ったコンテナー サービスを選択しましょう ✓ 規模が大きいアプリケーション→AKS、ARO ✓ バッチ処理用のアプリケーション→ACI…など ✓ ユースケースによるサービス選択 ✓ 最適なコンテナーサービスを選択するためには、具体的な要件、コスト、スキルセットなどを考慮 する必要があります ✓ 例えば、Kubernetes を運用するためにはスキルの学習が必要です

Slide 18

Slide 18 text

enjoy 🥳