Azure コンピューティング サービスを選択する

App Service
Kubernetes Service

Azure では、多数の方法でお使いのアプリケーション コードをホスティングできます。 "コンピューティング" という用語は、アプリケーションがそこで実行されるリソースのホスティング モデルを指します。 この記事は、アプリケーションのコンピューティング サービスの選択に役立ちます。

サービス候補を選択する

次のフローチャートを使用して、候補となるコンピューティング サービスを選択します。

Azure コンピューティング サービスのデシジョン ツリーの図。

この図は、次の 2 つの移行戦略を示しています。

  • リフト アンド シフト: アプリケーションの再設計やコード変更なしで、ワークロードをクラウドに移行する戦略です。 "リホスト" とも呼ばれます。 詳細については、「Azure migration and modernization center」を参照してください。
  • クラウド用に最適化: アプリケーションをリファクタリングすることでクラウドネイティブの機能を利用して、クラウドに移行する戦略です。

このフローチャートからの出力が出発点です。 次に、サービスをより詳細に評価して、ニーズを満たしているかどうかを確認します。

この記事には、サービスの選択に役立つ可能性のある表がいくつか含まれています。 フローチャートの最初の候補は、アプリケーションやワークロードに適していない可能性があります。 その場合は、分析を拡張して他のコンピューティング サービスを含めます。

アプリケーションが複数のワークロードで構成されている場合は、それぞれのワークロードを個別に評価します。 完全なソリューションには、複数のコンピューティング サービスを組み込むことができます。

基本的な機能を理解する

前のセクションで選択した Azure サービスに慣れていない場合は、次の概要ドキュメントを参照してください。

  • Azure Virtual Machines。 Azure 仮想ネットワーク内に仮想マシン (VM) をデプロイして管理するサービス。
  • Azure App Service。 Web アプリ、モバイル アプリ バックエンド、RESTful API、または自動化されたビジネス プロセスをホストするためのマネージド サービスです。
  • Azure Functions。 サービスとしてのマネージド関数 (FaaS) サービス。
  • Azure Kubernetes Service (AKS)。 コンテナー化されたアプリケーションを実行するためのマネージド Kubernetes サービスです。
  • Azure Container Apps。 Kubernetes 上に構築されたマネージド サービスで、サーバーレス環境へのコンテナ化されたアプリケーションのデプロイを単純化します。
  • Azure Container Instances。 このサービスは、Azure でコンテナーを実行する高速で簡単な方法です。 仮想マシンをプロビジョニングしたり、より高いレベルのサービスを採用したりする必要はありません。
  • Azure Red Hat OpenShift。 Kubernetes を使用して運用環境でコンテナーを実行するためのフル マネージドの OpenShift クラスター。
  • Azure Spring アプリ。 Spring Boot アプリをホストするために設計および最適化されたマネージド サービス。
  • Azure Service Fabric。 Azure、オンプレミスなど、多数の環境で実行できる分散システム プラットフォームです。
  • Azure Batch 型のリンクされたサービスの JSON プロパティについて説明します。 大規模な並列およびハイ パフォーマンス コンピューティング (HPC) アプリケーションを実行するための管理サービス。

ホスティング モデルについて理解する

ホスティング モデルの場合、クラウド サービスは次の 3 つのカテゴリに分類されます。

  • サービスとしてのインフラストラクチャ (IaaS) を使用すると、仮想マシンと共に、関連するネットワークおよびストレージ コンポーネントをプロビジョニングできます。 その後、必要なソフトウェアとアプリケーションをそれらの仮想マシンにデプロイします。 このモデルは従来のオンプレミス環境に最も近いものです。 インフラストラクチャは Microsoft によって管理されます。 仮想マシンは引き続きご自身で管理します。

  • サービスとしてのプラットフォーム (PaaS) では、仮想マシンやネットワーク リソースを管理しなくても自分のアプリケーションをデプロイできるマネージド ホスティング環境が提供されます。 Azure App Service と Azure Container Apps は PaaS サービスです。

  • サービスとしての関数 (FaaS) を使用すると、コードをサービスにデプロイして自動的に実行できます。 Azure Functions は FaaS サービスの 1 つです。

    注意

    Azure Functions は、Azure サーバーレス コンピューティング オファリングです。 このサービスと、サーバーレス ワークフローを提供する Logic Apps などの他の Azure サーバーレス オファリングとの比較については、「Azure における統合と自動化の適切なサービスを選ぶ」を参照してください。

IaaS から純粋な PaaS への段階があります。 たとえば、Azure 仮想マシンは、仮想マシン スケール セットを使用して自動的にスケーリングできます。 この機能は厳密には PaaS ではありませんが、PaaS で見つかる管理機能の一種です。

制御と管理しやすさの間にはトレードオフの関係があります。 IaaS では最も細かな制御、柔軟性、移植性が提供されますが、自分で作成した仮想マシンとネットワーク コンポーネントをプロビジョニング、構成、管理する必要があります。 FaaS サービスでは、アプリケーション実行のほぼすべての側面が自動的に管理されます。 PaaS はその中間に位置します。

サービス アプリケーションの構成 密度 最小ノード数 状態管理 Web ホスティング
Azure Virtual Machines 非依存 非依存 1 2 ステートレスまたはステートフル 非依存
Azure App Service アプリケーション、コンテナー App Service プランを使用するインスタンスごとの複数のアプリ 1 ステートレス 組み込み
Azure Functions 関数、コンテナー サーバーレス 1 サーバーレス 1 ステートレスまたはステートフル 6 該当なし
Azure Kubernetes Service Containers ノードごとに複数のコンテナー 3 3 ステートレスまたはステートフル 非依存
Azure Container Apps Containers サーバーレス サーバーレス ステートレスまたはステートフル 非依存
Azure Container Instances Containers 専用インスタンスなし 専用ノードなし ステートレス 非依存
Azure Red Hat OpenShift Containers ノードごとに複数のコンテナー 6 5 ステートレスまたはステートフル 非依存
Azure Spring Apps アプリケーション、マイクロサービス サービス インスタンスごとの複数のアプリ 2 ステートレス 組み込み
Azure Service Fabric サービス、ゲスト実行可能ファイル、コンテナー VM ごとに複数のサービス 5 3 ステートレスまたはステートフル 非依存
Azure Batch スケジュールされたジョブ VM ごとに複数のアプリ 1 4 ステートレス いいえ

メモ

  1. 従量課金プランを使用している場合。 App Service プランの場合、関数は、App Service プランに割り当てられた VM 上で実行されます。 Azure Functions の適切なサービス プランの選択に関する記事を参照してください。
  2. 2 つ以上のインスタンスによる、より高い SLA。
  3. 運用環境の場合に推奨されます。
  4. ジョブの完了後、0 にスケールダウンできます。
  5. プライマリ ノードの場合は 3 つ、ワーカー ノードの場合は 3 つ。
  6. Durable Functions を使用する場合。

ネットワーク

サービス VNet 統合 ハイブリッド接続
Azure Virtual Machines サポートされています サポートされています
Azure App Service サポート対象 1 サポート対象 2
Azure Functions サポート対象 1 サポート対象 3
Azure Kubernetes Service サポートされています サポートされています
Azure Container Apps サポートされています サポートされています
Azure Container Instances サポートされています サポートされています
Azure Red Hat OpenShift サポートされています サポートされています
Azure Spring Apps サポートされています サポートされています
Azure Service Fabric サポートされています サポートされています
Azure Batch サポートされています サポートされています

Notes

  1. App Service Environment (ASE) が必要です。
  2. Azure App Service のハイブリッド接続を使用します。
  3. App Service プランまたは Azure Functions Premium プランが必要です。

DevOps

サービス ローカル デバッグ プログラミング モデル アプリケーションの更新
Azure Virtual Machines 非依存 非依存 組み込みのサポートなし
Azure App Service IIS Express、その他 1 Web および API アプリケーション、バックグラウンド タスク用の Web ジョブ デプロイ スロット
Azure Functions Visual Studio または Azure Functions CLI サーバーレス、イベント ドリブン デプロイ スロット
Azure Kubernetes Service Minikube、Docker、その他 非依存 ローリング アップデート
Azure Container Apps ローカルのコンテナー ランタイム 非依存 リビジョン管理
Azure Container Instances ローカルのコンテナー ランタイム 非依存 適用なし
Azure Red Hat OpenShift Minikube、Docker、その他 非依存 ローリング アップデート
Azure Spring Apps Visual Studio Code、Intellij、Eclipse Spring Boot、Steeltoe ローリング アップグレード、ブルーグリーン デプロイ
Azure Service Fabric ローカル ノードのクラスター ゲスト実行可能ファイル、サービス モデル、アクター モデル、コンテナー ローリング アップグレード (サービスあたり)
Azure Batch サポートされていません コマンド ライン アプリケーション 適用なし

Notes

  1. オプションには、ASP.NET または node.js (iisnode) の IIS Express、PHP Web サーバー、Azure Toolkit for IntelliJ、Azure Toolkit for Eclipse などがあります。 App Service では、デプロイ済みの Web アプリのリモート デバッグもサポートしています。

スケーラビリティ

サービス 自動スケール Load Balancer スケールの制限3
Azure Virtual Machines 仮想マシン スケール セット Azure Load Balancer プラットフォーム イメージ:スケール セットあたり 1,000 ノード、カスタム イメージ:スケール セットあたり 600 ノード
Azure App Service 組み込みのサービス 統合 30 個のインスタンス、App Service Environment で 100
Azure Functions 組み込みのサービス 統合 Function App あたり 200 個のインスタンス
Azure Kubernetes Service ポッドの自動スケーリング1、クラスターの自動スケーリング2 Azure Load Balancer または Application Gateway アップタイム SLA を使用する場合は 5,000 ノード
Azure Container Apps スケーリング ルール4 統合 リージョンあたり 5 つの環境、環境あたり 20 個のコンテナー アプリ、コンテナー アプリあたり 30 個のレプリカ
Azure Container Instances サポートされていません 組み込みのサポートなし サブスクリプションあたり 20 コンテナー グループ (既定の制限)
Azure Red Hat OpenShift ポッドの自動スケーリング、クラスターの自動スケーリング Azure Load Balancer または Application Gateway クラスターあたり 60 ノード (既定の制限)
Azure Spring Apps 組み込みのサービス 統合 Standard で 500 個のアプリ インスタンス
Azure Service Fabric 仮想マシン スケール セット Azure Load Balancer 仮想マシン スケール セットあたり 100 ノード
Azure Batch 該当なし Azure Load Balancer 20 個のコアの制限 (既定の制限)

Notes

  1. ポッドを自動スケールする」を参照してください。
  2. Azure Kubernetes Service (AKS) でのアプリケーションの需要を満たすようにクラスターを自動的にスケーリング」を参照してください。
  3. Azure サブスクリプションとサービスの制限、クォータ、制約」をご覧ください。
  4. Azure Container Apps でスケーリング ルールを設定する」を参照してください

可用性

サービス SLA 複数リージョンのフェールオーバー
Azure Virtual Machines Virtual Machines の SLA Azure Traffic Manager、Azure Front Door、およびリージョン間の Azure Load Balancer
Azure App Service App Service の SLA Azure Traffic Manager と Azure Front Door
Azure Functions Functions の SLA Azure Traffic Manager と Azure Front Door
Azure Kubernetes Service AKS の SLA Azure Traffic Manager、Azure Front Door、マルチリージョン クラスター
Azure Container Apps Azure Container Apps の SLA Azure Traffic Manager と Azure Front Door
Azure Container Instances Container Instances の SLA Azure Traffic Manager と Azure Front Door
Azure Red Hat OpenShift Azure Red Hat OpenShift の SLA Azure Traffic Manager と Azure Front Door
Azure Spring Apps Azure Spring アプリの SLA Azure Traffic Manager、Azure Front Door、マルチリージョン クラスター
Azure Service Fabric Service Fabric の SLA Azure Traffic Manager、Azure Front Door、およびリージョン間の Azure Load Balancer
Azure Batch Azure Batch の SLA 該当なし

サービスの保証に関するガイド付き学習については、「コア Cloud Services - Azure アーキテクチャとサービスの保証」をご確認ください。

セキュリティ

各サービスで使用可能なセキュリティ制御と可視性を確認して理解してください。

その他の条件

サービス TLS コスト 適切なアーキテクチャ スタイル
Azure Virtual Machines VM で構成済み WindowsLinux n 層ビッグ コンピューティング (HPC)
Azure App Service サポートされています App Service 価格 Web キュー ワーカー
Azure Functions サポートされています Azure Functions の価格 マイクロサービスイベント駆動型アーキテクチャ
Azure Kubernetes Service イングレス コントローラー AKS の価格 マイクロサービスイベント駆動型アーキテクチャ
Azure Container Apps イングレス コントローラー Azure Container App の価格 マイクロサービスイベント駆動型アーキテクチャ
Azure Container Instances サイドカー コンテナーを使用 Azure Container Instances の価格 マイクロサービス、タスクの自動化、バッチ ジョブ
Azure Red Hat OpenShift サポートされています Azure Red Hat OpenShift の価格 マイクロサービスイベント駆動型アーキテクチャ
Azure Spring Apps サポートされています Azure Spring アプリの価格 Spring Boot、マイクロサービス
Azure Service Fabric サポートされています Azure Service Fabric の価格 マイクロサービスイベント駆動型アーキテクチャ
Azure Batch サポートされています Azure Batch の価格 ビッグ コンピューティング (HPC)

制限とコストを考慮する

前の比較表と共に、候補サービスの次の側面をより詳細に評価します。

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパルの作成者:

パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。

次のステップ