Azure では、多数の方法でお使いのアプリケーション コードをホスティングできます。 "コンピューティング" という用語は、アプリケーションがそこで実行されるリソースのホスティング モデルを指します。 この記事は、アプリケーションのコンピューティング サービスの選択に役立ちます。
サービス候補を選択する
次のフローチャートを使用して、候補となるコンピューティング サービスを選択します。
このデシジョン ツリーのVisio ファイルをダウンロードします。
この図は、2 つの移行戦略を示しています。
- リフト アンド シフト: アプリケーションの再設計やコード変更なしで、ワークロードをクラウドに移行する戦略。 "リホスト" とも呼ばれます。 詳細については、「Azure migration and modernization center」を参照してください。
- クラウド用に最適化: アプリケーションをリファクタリングすることで、クラウドネイティブの機能を利用して、クラウドに移行する戦略。
このフローチャートからの出力が出発点です。 次に、サービスを評価して、ニーズを満たしているかどうかを確認します。
この記事には、サービスの選択に役立つ可能性のある表がいくつか含まれています。 フローチャートの最初の候補は、アプリケーションやワークロードに適していない可能性があります。 その場合は、分析を拡張して他のコンピューティング サービスを含めます。
アプリケーションが複数のワークロードで構成されている場合は、それぞれのワークロードを個別に評価します。 完全なソリューションには、複数のコンピューティング サービスを組み込むことができます。
基本的な機能を理解する
前のセクションで選択した Azure サービスに慣れていない場合は、次の概要ドキュメントを参照してください。
- Azure Virtual Machines: Azure 仮想ネットワーク内に仮想マシン (VM) をデプロイして管理するサービス。
- Azure App Service: Web アプリ、モバイル アプリ バックエンド、RESTful API、または自動化されたビジネス プロセスをホストするための管理サービス。
- Azure Functions: サービスとしてのマネージド関数。
- Azure Kubernetes Service (AKS): コンテナ化されたアプリケーションを実行するためのマネージド Kubernetes サービス。
- Azure Container Apps: Kubernetes 上に構築され管理サービス。サーバーレス環境でのコンテナ化されたアプリケーションのデプロイを単純化します。
- Azure Container Instances: このサービスは、Azure でコンテナーを実行する高速で簡単な方法です。 VM をプロビジョニングしたり、より高いレベルのサービスを採用したりする必要はありません。
- Azure Red Hat OpenShift: Kubernetes を使用して運用環境でコンテナーを実行するためのフル マネージドの OpenShift クラスター。
- Azure Spring Apps: Spring Boot アプリをホストするために設計および最適化された管理サービス。
- Azure Service Fabric: Azure、オンプレミスなど、多数の環境で実行できる分散システム プラットフォーム。
- Azure Batch: 大規模な並列コンピューティングやハイ パフォーマンス コンピューティング (HPC) のアプリケーションを実行するための管理サービス。
ホスティング モデルについて理解する
ホスティング モデルの場合、クラウド サービスは次の 3 つのカテゴリに分類されます。
サービスとしてのインフラストラクチャ (IaaS): VM と共に、関連するネットワークおよびストレージ コンポーネントをプロビジョニングすることができます。 その後、必要なソフトウェアやアプリケーションをそれらの VM にデプロイできます。 このモデルは従来のオンプレミス環境に最も近いものです。 インフラストラクチャは Microsoft によって管理されます。 VM はご自身で引き続き管理します。
サービスとしてのプラットフォーム (PaaS): マネージド ホスティング環境が提供され、VM やネットワーク リソースを管理せずにアプリケーションをデプロイできます。 Azure App Service と Azure Container Apps は PaaS サービスです。
サービスとしての関数 (FaaS): コードをサービスにデプロイして自動的に実行できます。 Azure Functions は FaaS サービスの 1 つです。
注意
Azure Functions は、Azure サーバーレス コンピューティング オファリングです。 このサービスと、サーバーレス ワークフローを提供する Logic Apps などの他の Azure サーバーレス オファリングとの比較については、「Azure における統合と自動化の適切なサービスを選ぶ」を参照してください。
IaaS から純粋な PaaS への段階があります。 たとえば、Azure VM では、仮想マシン スケール セットを使用して自動スケーリングできます。 この機能は厳密には PaaS ではありませんが、PaaS で見つかる管理機能の一種です。
制御と管理しやすさの間にはトレードオフの関係があります。 IaaS では最も細かな制御、柔軟性、移植性が提供されますが、自分で作成した VM とネットワーク コンポーネントをプロビジョニング、構成、管理する必要があります。 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 | ステートレス | いいえ |
メモ
- 従量課金プランを使用している場合。 App Service プランの場合、関数は、App Service プランに割り当てられた VM 上で実行されます。 Azure Functions の適切なサービス プランの選択に関する記事を参照してください。
- 2 つ以上のインスタンスを持つより高いサービス レベル アグリーメント (SLA)。
- 運用環境の場合に推奨されます。
- ジョブの完了後、0 にスケールダウンできます。
- プライマリ ノードの場合は 3 つ、ワーカー ノードの場合は 3 つ。
- Durable Functions を使用する場合。
ネットワーク
サービス | 仮想ネットワークの統合 | ハイブリッド接続 |
---|---|---|
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
- App Service Environment が必要です。
- Azure App Service のハイブリッド接続を使用します。
- 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
- オプションには、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 | 組み込みのサービス | 統合 | 関数アプリあたり 200 個のインスタンス |
Azure Kubernetes Service | ポッドの自動スケーリング1、クラスターの自動スケーリング2 | Azure Load Balancer または Azure Application Gateway | アップタイム SLA を使用する場合は 5,000 ノード |
Azure Container Apps | スケーリング ルール4 | 統合 | リージョンあたり 5 つの環境、環境あたり 20 個のコンテナー アプリ、コンテナー アプリあたり 30 個のレプリカ |
Azure Container Instances | サポートされていません | 組み込みのサポートなし | サブスクリプションあたり 20 コンテナー グループ (既定の制限) |
Azure Red Hat OpenShift | ポッドの自動スケーリング、クラスターの自動スケーリング | Azure Load Balancer または Azure Application Gateway | クラスターあたり 60 ノード (既定の制限) |
Azure Spring Apps | 組み込みのサービス | 統合 | Standard で 500 個のアプリ インスタンス |
Azure Service Fabric | 仮想マシン スケール セット | Azure Load Balancer | 仮想マシン スケール セットあたり 100 ノード |
Azure Batch | 該当なし | Azure Load Balancer | 20 個のコアの制限 (既定の制限) |
Notes
- 「ポッドを自動スケールする」を参照してください。
- 「Azure Kubernetes Service でのアプリケーションの需要を満たすようにクラスターを自動的にスケーリング」を参照してください。
- 「Azure サブスクリプションとサービスの制限、クォータ、制約」をご覧ください。
- 「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) | AKS の SLA | Azure Traffic Manager、Azure Front Door、マルチリージョン クラスター |
Azure Container Apps | 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 | Batch の SLA | 適用できません |
サービスの保証に関するガイド付き学習については、「コア クラウド サービス - Azure アーキテクチャとサービスの保証」を参照してください。
セキュリティ
各サービスで使用可能なセキュリティ制御と可視性を確認して理解してください。
- Azure Windows 仮想マシン
- Azure Linux 仮想マシン
- Azure App Service
- Azure Functions
- Azure Kubernetes Service
- Azure Container Instances
- Azure Spring Apps
- Azure Service Fabric
- Azure Batch
その他の条件
サービス | TLS | コスト | 適切なアーキテクチャ スタイル |
---|---|---|---|
Azure Virtual Machines | VM で構成済み | Windows、Linux | n 層、ビッグ コンピューティング (HPC) |
Azure App Service | サポートされています | App Service 価格 | Web-queue-worker |
Azure Functions | サポートされています | Functions の価格 | マイクロサービス、イベント駆動型アーキテクチャ |
Azure Kubernetes Service (AKS) | イングレス コントローラー | AKS の価格 | マイクロサービス、イベント駆動型アーキテクチャ |
Azure Container Apps | イングレス コントローラー | Container Apps の価格 | マイクロサービス、イベント駆動型アーキテクチャ |
Azure Container Instances | サイドカー コンテナーを使用 | Container Instances の価格 | マイクロサービス、タスクの自動化、バッチ ジョブ |
Azure Red Hat OpenShift | サポートされています | Azure Red Hat OpenShift の価格 | マイクロサービス、イベント駆動型アーキテクチャ |
Azure Spring Apps | サポートされています | Azure Spring アプリの価格 | Spring Boot、マイクロサービス |
Azure Service Fabric | サポートされています | Service Fabric の価格 | マイクロサービス、イベント駆動型アーキテクチャ |
Azure Batch | サポートされています | Batch の価格 | ビッグ コンピューティング (HPC) |
制限とコストを考慮する
前の比較表と共に、候補サービスの次の側面をより詳細に評価します。
共同作成者
この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。
- Ayobami Ayodeji | シニア プログラム マネージャー
- Jelle Druyts | プリンシパル サービス エンジニア
- Martin Gjoshevski | シニア サービス エンジニア
- Phil Huang | シニア クラウド ソリューション アーキテクト
- Julie Ng |シニア サービス エンジニア
- Paolo Salvatori | プリンシパル サービス エンジニア
公開されていない LinkedIn プロフィールを見るには、LinkedIn にサインインしてください。
次のステップ
コア クラウド サービス - Azure コンピューティング オプション。 この Learn モジュールでは、コンピューティング サービスが一般的なビジネス ニーズをどのように解決できるかを紹介します。