Azure コンピューティング サービスを選択する
Azure では、多数の方法でお使いのアプリケーション コードをホスティングできます。 The term compute refers to the hosting model for the resources that your application runs on. この記事は、アプリケーションのコンピューティング サービスの選択に役立ちます。
サービス候補を選択する
次のフローチャートを使用して、候補となるコンピューティング サービスを選択します。
このデシジョン ツリーのVisio ファイルをダウンロードします。
この図は、2 つの移行戦略を示しています。
- リフト アンド シフト: アプリケーションの再設計やコード変更なしで、ワークロードをクラウドに移行する戦略。 It's also called rehosting. 詳細については、「Azure migration and modernization center」を参照してください。
- Cloud optimized: A strategy for migrating to the cloud by refactoring an application to take advantage of cloud-native features and capabilities.
このフローチャートからの出力が出発点です。 次に、サービスを評価して、ニーズを満たしているかどうかを確認します。
この記事には、サービスの選択に役立つ可能性のある表がいくつか含まれています。 フローチャートの最初の候補は、アプリケーションやワークロードに適していない可能性があります。 その場合は、分析を拡張して他のコンピューティング サービスを含めます。
アプリケーションが複数のワークロードで構成されている場合は、それぞれのワークロードを個別に評価します。 完全なソリューションには、複数のコンピューティング サービスを組み込むことができます。
基本的な機能を理解する
前のセクションで選択した Azure サービスに慣れていない場合は、次の概要ドキュメントを参照してください。
- Azure Virtual Machines: Azure 仮想ネットワーク内に仮想マシン (VM) をデプロイして管理するサービス。
- Azure App Service: Web アプリ、モバイル アプリ バックエンド、RESTful API、または自動化されたビジネス プロセスをホストするための管理サービス。
- Azure Functions: A service that provides managed functions that run based on a variety of trigger types for event-driven applications.
- Azure Kubernetes Service (AKS): コンテナ化されたアプリケーションを実行するためのマネージド Kubernetes サービス。
- Azure Container Apps: Kubernetes 上に構築され管理サービス。サーバーレス環境でのコンテナ化されたアプリケーションのデプロイを単純化します。
- Azure Container Instances: このサービスは、Azure で単一のコンテナーまたはコンテナー のグループを実行するための高速かつ簡単な方法です。 Azure Container Instances では完全なコンテナー オーケストレーションは提供されませんが、VM をプロビジョニングしたり、より高いレベルのサービスを導入したりする必要なく、それらを実装できます。
- Azure Red Hat OpenShift: Kubernetes を使用して運用環境でコンテナーを実行するためのフル マネージドの OpenShift クラスター。
- Azure Service Fabric: Azure、オンプレミスなど、多数の環境で実行できる分散システム プラットフォーム。
- Azure Batch: A managed service for running large-scale parallel and high-performance computing (HPC) applications.
- Azure VMware Solution: Azure 上で VMware ワークロードをネイティブに実行するためのマネージド サービスです。
ホスティング モデルについて理解する
ホスティング モデルの場合、クラウド サービスは次の 3 つのカテゴリに分類されます。
サービスとしてのインフラストラクチャ (IaaS): VM と共に、関連するネットワークおよびストレージ コンポーネントをプロビジョニングすることができます。 その後、必要なソフトウェアやアプリケーションをそれらの VM にデプロイできます。 このモデルは従来のオンプレミス環境に最も近いものです。 インフラストラクチャは Microsoft によって管理されます。 VM はご自身で引き続き管理します。
サービスとしてのプラットフォーム (PaaS): マネージド ホスティング環境が提供され、VM やネットワーク リソースを管理せずにアプリケーションをデプロイできます。 Azure App Service と Azure Container Apps は PaaS サービスです。
サービスとしての関数 (FaaS): コードをサービスにデプロイして自動的に実行できます。 Azure Functions は FaaS サービスの 1 つです。
Note
Azure Functions is an Azure serverless compute offering. このサービスと、サーバーレス ワークフローを提供する Logic Apps などの他の Azure サーバーレス オファリングとの比較については、「Azure における統合と自動化の適切なサービスを選ぶ」を参照してください。
IaaS から純粋な PaaS への段階があります。 たとえば、Azure VM では、仮想マシン スケール セットを使用して自動スケーリングできます。 この機能は厳密には PaaS ではありませんが、PaaS で見つかる管理機能の一種です。
制御と管理しやすさの間にはトレードオフの関係があります。 IaaS では最も細かな制御、柔軟性、移植性が提供されますが、自分で作成した VM とネットワーク コンポーネントをプロビジョニング、構成、管理する必要があります。 FaaS サービスでは、アプリケーション実行のほぼすべての側面が自動的に管理されます。 PaaS はその中間に位置します。
Service | Application composition | Density | 最小ノード数 | State management | Web hosting |
---|---|---|---|---|---|
Azure 仮想マシン | Agnostic | Agnostic | 1 2 | ステートレスまたはステートフル | Agnostic |
Azure App Service | Applications, containers | App Service プランを使用するインスタンスごとの複数のアプリ | 1 | Stateless | Built in |
Azure Functions | Functions, containers | Serverless 1 | Serverless 1 | Stateless or stateful 6 | Not applicable |
Azure Kubernetes Service | Containers | ノードごとに複数のコンテナー | 3 3 | ステートレスまたはステートフル | Agnostic |
Azure Container Apps | Containers | Serverless | Serverless | ステートレスまたはステートフル | Agnostic |
Azure Container Instances | Containers | 専用インスタンスなし | 専用ノードなし | Stateless | Agnostic |
Azure Red Hat OpenShift | Containers | ノードごとに複数のコンテナー | 6 5 | ステートレスまたはステートフル | Agnostic |
Azure Service Fabric | サービス、ゲスト実行可能ファイル、コンテナー | VM ごとに複数のサービス | 5 3 | ステートレスまたはステートフル | Agnostic |
Azure Batch | Scheduled jobs | VM ごとに複数のアプリ | 1 4 | Stateless | No |
Azure VMware Solution | Agnostic | Agnostic | 3 7 | ステートレスまたはステートフル | Agnostic |
Notes
- 従量課金プランを使用している場合。 App Service プランの場合、関数は、App Service プランに割り当てられた VM 上で実行されます。 Azure Functions の適切なサービス プランの選択に関する記事を参照してください。
- 2 つ以上のインスタンスを持つより高いサービス レベル アグリーメント (SLA)。
- 運用環境の場合に推奨されます。
- ジョブの完了後、0 にスケールダウンできます。
- プライマリ ノードの場合は 3 つ、ワーカー ノードの場合は 3 つ。
- Durable Functions を使用する場合。
- 3 つのノード 最小数が必要です。
ネットワーク
Service | 仮想ネットワークの統合 | Hybrid connectivity |
---|---|---|
Azure 仮想マシン | Supported | Supported |
Azure App Service | Supported 1 | Supported 2 |
Azure Functions | Supported 1 | Supported 3 |
Azure Kubernetes Service | Supported | Supported |
Azure Container Apps | Supported | Supported |
Azure Container Instances | Supported | Supported |
Azure Red Hat OpenShift | Supported | Supported |
Azure Service Fabric | Supported | Supported |
Azure Batch | Supported | Supported |
Azure VMware Solution | Supported | Supported |
Notes
- App Service Environment または専用のコンピューティング価格レベルが必要です。
- Azure App Service のハイブリッド接続を使用します。
- App Service プランまたは Azure Functions Premium プランが必要です。
DevOps
Service | Local debugging | Programming model | Application update |
---|---|---|---|
Azure 仮想マシン | Agnostic | Agnostic | 組み込みのサポートなし |
Azure App Service | IIS Express, others 1 | Web および API アプリケーション、バックグラウンド タスク用の Web ジョブ | Deployment slots |
Azure Functions | Visual Studio または Azure Functions CLI | Serverless, event-driven | Deployment slots |
Azure Kubernetes Service | Minikube、Docker、その他 | Agnostic | Rolling update |
Azure Container Apps | ローカルのコンテナー ランタイム | Agnostic | Revision management |
Azure Container Instances | ローカルのコンテナー ランタイム | Agnostic | Not applicable |
Azure Red Hat OpenShift | Minikube、Docker、その他 | Agnostic | Rolling update |
Azure Service Fabric | ローカル ノードのクラスター | ゲスト実行可能ファイル、サービス モデル、アクター モデル、コンテナー | ローリング アップグレード (サービスあたり) |
Azure Batch | Not supported | Command-line application | Not applicable |
Azure VMware Solution | Agnostic | Agnostic | 組み込みのサポートなし |
Notes
- オプションには、ASP.NET または node.js (iisnode) の IIS Express、PHP Web サーバー、Azure Toolkit for IntelliJ、Azure Toolkit for Eclipse などがあります。 App Service では、デプロイ済みの Web アプリのリモート デバッグもサポートしています。
Scalability
Service | Autoscaling | Load balancer | Scale limit3 |
---|---|---|---|
Azure 仮想マシン | 仮想マシン スケール セット | Azure Load Balancer | プラットフォーム イメージ:スケール セットあたり 1,000 ノード、カスタム イメージ:スケール セットあたり 600 ノード |
Azure App Service | Built-in service | Integrated | 30 個のインスタンス、App Service Environment で 100 |
Azure Functions | Built-in service | Integrated | 関数アプリあたり 200 個のインスタンス |
Azure Kubernetes Service | Pod autoscaling1, cluster autoscaling2 | Azure Load Balancer または Azure Application Gateway | 5,000 nodes when using Uptime SLA |
Azure Container Apps | Scaling rules4 | Integrated | リージョンあたり 15 個の環境 (既定の制限)、環境あたりのコンテナー アプリ数に制限なし、コンテナー アプリあたりのレプリカ数 (使用可能なコアに応じて) |
Azure Container Instances | Not supported | 組み込みのサポートなし | サブスクリプションあたり 100 個のコンテナー グループ (既定の制限) |
Azure Red Hat OpenShift | ポッドの自動スケーリング、クラスターの自動スケーリング | Azure Load Balancer または Azure Application Gateway | クラスターあたり 250 ノード (既定の制限) |
Azure Service Fabric | 仮想マシン スケール セット | Azure Load Balancer | 仮想マシン スケール セットあたり 100 ノード |
Azure Batch | Not applicable | Azure Load Balancer | コア制限は 900 専用、低優先度は 100 (既定の制限) |
Azure VMware Solution | Built-in service5 | Integrated6 | VMware vCenter ごとに、3 ~ 16 個の VMware ESXi ホストを管理できます |
Notes
- 「ポッドを自動スケールする」を参照してください。
- 「Azure Kubernetes Service でのアプリケーションの需要を満たすようにクラスターを自動的にスケーリング」を参照してください。
- 「Azure サブスクリプションとサービスの制限、クォータ、制約」をご覧ください。
- 「Azure Container Apps でスケーリング ルールを設定する」を参照してください。
Azure VMware Solution のスケーリングに関するページを参照してください。 VMware NSX を参照してください。
Availability
Service | マルチリージョン フェールオーバー オプション |
---|---|
Azure 仮想マシン | Azure Traffic Manager、Azure Front Door、およびリージョン間の Azure Load Balancer |
Azure App Service | Azure Traffic Manager と Azure Front Door |
Azure Functions | Azure Traffic Manager と Azure Front Door |
Azure Kubernetes Service (AKS) | Azure Traffic Manager、Azure Front Door、マルチリージョン クラスター |
Azure Container Apps | Azure Traffic Manager と Azure Front Door |
Azure Container Instances | Azure Traffic Manager と Azure Front Door |
Azure Red Hat OpenShift | Azure Traffic Manager と Azure Front Door |
Azure Service Fabric | Azure Traffic Manager、Azure Front Door、およびリージョン間の Azure Load Balancer |
Azure Batch | Not applicable |
Azure VMware Solution | Not applicable |
サービスの保証に関するガイド付き学習については、「コア クラウド サービス - Azure アーキテクチャとサービスの保証」を参照してください。
セキュリティ
各サービスで使用可能なセキュリティ制御と可視性を確認して理解してください。
- Azure Windows 仮想マシン
- Azure Linux 仮想マシン
- Azure App Service
- Azure Functions
- Azure Kubernetes Service
- Azure Container Instances
- Azure Container Apps
- Azure Service Fabric
- Azure Batch
- Azure VMware Solution の
Other criteria
Service | TLS | Cost | 適切なアーキテクチャ スタイル |
---|---|---|---|
Azure 仮想マシン | VM で構成済み | Windows, Linux | N-tier, big compute (HPC) |
Azure App Service | Supported | App Service 価格 | Web-queue-worker |
Azure Functions | Supported | Functions pricing | Microservices, event-driven architecture |
Azure Kubernetes Service (AKS) | Ingress controller | AKS pricing | Microservices, event-driven architecture |
Azure Container Apps | Ingress controller | Container Apps の価格 | Microservices, event-driven architecture |
Azure Container Instances | Use sidecar container | Container Instances の価格 | Microservices, task automation, batch jobs |
Azure Red Hat OpenShift | Supported | Azure Red Hat OpenShift の価格 | Microservices, event-driven architecture |
Azure Service Fabric | Supported | Service Fabric の価格 | Microservices, event-driven architecture |
Azure Batch | Supported | Batch pricing | Big compute (HPC) |
Azure VMware Solution | VM で構成済み | Azure VMware Solution の価格 を |
VMware 形式に基づく VM ワークロード |
制限とコストを考慮する
前の比較表と共に、候補サービスの次の側面をより詳細に評価します。
Contributors
この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。
- Ayobami Ayodeji | Senior Program Manager
- Jelle Druyts | Principal Service Engineer
- Martin Gjoshevski | Senior Service Engineer
- Phil Huang | Senior Cloud Solution Architect
- Julie Ng | Senior Service Engineer
- Paolo Salvatori | Principal Service Engineer
公開されていない LinkedIn プロフィールを見るには、LinkedIn にサインインしてください。
Next steps
コア クラウド サービス - Azure コンピューティング オプション。 この Learn モジュールでは、コンピューティング サービスが一般的なビジネス ニーズをどのように解決できるかを紹介します。