Azure には、アプリケーション コードをホストするためのさまざまな方法が用意されています。 コンピューティングという用語は、アプリケーションが実行されるリソースのホスティング モデルを指します。 この記事は、アプリケーションのコンピューティング サービスを選択する際に役立ちます。
Architecture
次のフローチャートを使用して、コンピューティング サービスの候補を選択します。
このアーキテクチャの Visio ファイル をダウンロードします。
前の図は、次の 2 つの移行戦略を示しています。
リフトアンドシフト: アプリケーションを再設計したり、コードを変更したりせずに、ワークロードをクラウドに移行するための戦略。 リ ホストとも呼ばれます。 詳細については、 Azure クラウド移行とモダン化センターに関するページを参照してください。
クラウド最適化: クラウドネイティブの機能を利用するようにアプリケーションをリファクタリングすることで、クラウドに移行するための戦略。
このフローチャートからの出力は、開始点です。 次に、サービスを評価して、ニーズを満たしているかどうかを確認します。
この記事には、サービスの選択に役立ついくつかのテーブルが含まれています。 フローチャートの最初の候補は、アプリケーションまたはワークロードに適していない可能性があります。 その場合は、分析を展開して他のコンピューティング サービスを含めます。
アプリケーションが複数のワークロードで構成されている場合は、各ワークロードを個別に評価します。 完全なソリューションには、2 つ以上のコンピューティング サービスを組み込むことができます。
基本的な機能を理解する
前のセクションで選択した Azure サービスに慣れていない場合は、次の概要ドキュメントを参照してください。
Azure App Service は、Web アプリ、モバイル アプリ バックエンド、RESTful API、または自動化されたビジネス プロセスをホストするためのマネージド サービスです。
Azure Batch は、大規模な並列コンピューティングおよびハイ パフォーマンス コンピューティング (HPC) アプリケーションを実行するためのマネージド サービスです。
Azure Container Apps は Kubernetes 上に構築されたマネージド サービスです。これにより、サーバーレス環境でのコンテナー化されたアプリケーションのデプロイが簡略化されます。
Azure Container Instances は、Azure で 1 つのコンテナーまたはコンテナーのグループを実行するためのサービスです。 コンテナー インスタンスは完全なコンテナー オーケストレーションを提供しませんが、仮想マシン (VM) をプロビジョニングしたり、より高いレベルのサービスを導入したりしなくても、コンテナーを実装できます。
Azure Functions は、イベント ドリブン アプリケーションのさまざまなトリガーの種類に基づいて実行されるマネージド関数を提供するサービスです。
Azure Kubernetes Service (AKS) は、コンテナー化されたアプリケーションを実行するためのマネージド Kubernetes サービスです。
Azure Red Hat OpenShift は、Kubernetes を使用して運用環境でコンテナーを実行するためのフル マネージドの OpenShift クラスターです。
Azure Service Fabric は、Azure やオンプレミスなど、多くの環境で実行できる分散システム プラットフォームです。
Azure VMware Solution は、Azure で VMware ワークロードをネイティブに実行するためのマネージド サービスです。
Azure Virtual Machines は、Azure 仮想 ネットワーク内に VM をデプロイして管理するサービスです。
ホスティング モデルを理解する
ホスティング モデルの場合、クラウド サービスは次の 3 つのカテゴリに分類されます。
サービスとしてのインフラストラクチャ (IaaS) を使用すると、関連付けられているネットワークおよびストレージ コンポーネントと共に VM をプロビジョニングできます。 その後、それらの VM に任意のソフトウェアとアプリケーションをデプロイできます。 このモデルは、従来のオンプレミス環境に最も近いモデルです。 Microsoft がインフラストラクチャを管理し、VM を管理します。
サービスとしてのプラットフォーム (PaaS) は、VM やネットワーク リソースを管理しなくてもアプリケーションをデプロイできるマネージド ホスティング環境を提供します。 App Service と Container Apps は PaaS サービスです。
サービスとしての関数 (FaaS) を使用すると、コードをサービスにデプロイして自動的に実行できます。 Azure Functions は FaaS サービスです。
注
Azure Functions は、 Azure サーバーレス コンピューティング オファリングです。 このサービスと、サーバーレス ワークフロー用の Azure Logic Apps などの他の Azure サーバーレス オファリングとの比較については、「 Azure での適切な統合および自動化サービスの選択」を参照してください。
IaaS からフル マネージド PaaS まで、さまざまなものがあります。 たとえば、Azure VM は仮想マシン スケール セットを使用して自動的にスケーリングできます。 この機能は厳密には PaaS ではありませんが、PaaS の管理機能に似ています。
管理と管理の容易さの間にはトレードオフがあります。 IaaS は、最も制御性、柔軟性、移植性を提供します。 ただし、作成する VM とネットワーク コンポーネントをプロビジョニング、構成、管理する必要があります。 FaaS サービスは、アプリケーションの実行に関するほぼすべての側面を自動的に管理します。 PaaS では、一部のユーザー構成を必要としながら部分的な管理が提供されます。
| サービス | アプリケーションの構成 | 密度 | ノードの最小数 | ステート管理 | Web ホスティング |
|---|---|---|---|---|---|
| Virtual Machines | 不可知的 | 不可知的 | 1 2 | ステートレスまたはステートフル | 不可知的 |
| App Service | アプリケーション、コンテナー | App Service プランを使用してインスタンスごとに複数のアプリを作成する | 1 | ステートレス | 組み込み |
| Azure Functions | 関数、コンテナー | サーバーレス 1 | サーバーレス 1 | ステートレスまたはステートフル 6 | 適用なし |
| AKS | Containers | ノードごとに複数のコンテナー | 3 3 | ステートレスまたはステートフル | 不可知的 |
| Container Apps | Containers | Serverless | Serverless | ステートレスまたはステートフル | 不可知的 |
| Container Instances | Containers | 専用インスタンスなし | 専用ノードなし | ステートレス | 不可知的 |
| Azure Red Hat OpenShift | Containers | ノードごとに複数のコンテナー | 6 5 | ステートレスまたはステートフル | 不可知的 |
| Service Fabric | サービス、ゲスト実行可能ファイル、コンテナー | VM ごとに複数のサービス | 5 3 | ステートレスまたはステートフル | 不可知的 |
| Batch | スケジュールされたジョブ | VM ごとに複数のアプリ | 1 4 | ステートレス | いいえ |
| Azure VMware Solution | 不可知的 | 不可知的 | 3 7 | ステートレスまたはステートフル | 不可知的 |
注:
1Azure Functions の場合、従量課金プランはサーバーレスです。App Service プランの場合、関数はそのプランに割り当てられた VM で実行されます。 Azure Functions の適切なサービス プランを選択します。
2 2つ以上のインスタンスを持つより高いサービス レベル アグリーメント (SLA)。
3運用環境に推奨されます。
4ジョブの完了後に 0 にスケールダウンできます。
53 つのプライマリ ノードと 3 つのワーカー ノード。
6持続的関数を使用する場合。
7ホストを参照してください。
ネットワーク
| サービス | 仮想ネットワークの統合 | ハイブリッド接続 |
|---|---|---|
| Virtual Machines | サポートされています | サポートされています |
| App Service | サポートされている 1 | サポートされている 2 |
| Azure Functions | サポートされている 1 | サポートされている 3 |
| AKS | Supported | サポートされています |
| Container Apps | サポートされています | サポートされています |
| Container Instances | Supported | Supported |
| Azure Red Hat OpenShift | Supported | サポートされています |
| Service Fabric | サポートされています | サポートされています |
| Batch | サポートされています | サポートされています |
| Azure VMware Solution | Supported | Supported |
注:
1App Service Environment または専用のコンピューティング価格レベルが必要です。
2App Service ハイブリッド接続を使用する。
3App Service プランまたは Azure Functions Premium プランが必要です。
DevOps
| サービス | ローカル デバッグ | プログラミング モデル | アプリケーションの更新 |
|---|---|---|---|
| Virtual Machines | 不可知的 | 不可知的 | 組み込みのサポートなし |
| App Service | IIS Express、その他 1 | Web アプリケーションと API アプリケーション、バックグラウンド タスク用の Web ジョブ | デプロイ スロット |
| Azure Functions | Visual Studio または Azure Functions CLI | サーバーレス、イベント ドリブン | デプロイ スロット |
| AKS | Minikube、Docker、その他 | 不可知的 | ローリング アップデート |
| Container Apps | ローカル コンテナー ランタイム | 不可知的 | リビジョン管理 |
| Container Instances | ローカル コンテナー ランタイム | 不可知的 | 適用なし |
| Azure Red Hat OpenShift | Minikube、Docker、その他 | 不可知的 | ローリング アップデート |
| Service Fabric | ローカル ノード クラスター | ゲスト実行可能ファイル、サービス モデル、アクター モデル、コンテナー | 各サービスのローリング アップグレード |
| Batch | サポートされていません | コマンド ライン アプリケーション | 適用なし |
| Azure VMware Solution | 不可知的 | 不可知的 | 組み込みのサポートなし |
Note:
1 つのオプションには、iis Express for ASP.NET または node.js (iisnode)、PHP Web サーバー、Azure Toolkit for IntelliJ、Azure Toolkit for Eclipse が含まれます。App Service では、デプロイされた Web アプリのリモート デバッグもサポートされています。
スケーラビリティ
| サービス | Autoscaling | ロードバランサー | スケール制限3 |
|---|---|---|---|
| Virtual Machines | 仮想マシン スケール セット | Azure Load Balancer | プラットフォーム イメージ: スケール セットごとに 1,000 ノード。 カスタム イメージ: スケール セットごとに 600 ノード。 |
| App Service | 組み込みサービス | 統合 | 30 インスタンス、App Service Environment で 100 個 |
| Azure Functions | 組み込みサービス | 統合 | 関数アプリごとに 200 インスタンス |
| AKS | ポッドの自動スケール1、クラスターの自動スケール2 | Load Balancer または Azure Application Gateway | アップタイム SLA を使用する場合、5,000 ノード |
| Container Apps | スケーリングルール4 | 統合 | リージョンごとに 15 個の環境 (既定の制限)、各環境に無制限のコンテナー アプリ、各コンテナー アプリのレプリカ (使用可能なコアに応じて) |
| Container Instances | サポートされていません | 組み込みのサポートなし | サブスクリプションごとに 100 個のコンテナー グループ (既定の制限) |
| Azure Red Hat OpenShift | ポッドの自動スケーリング、クラスターの自動スケーリング | Load Balancer または Application Gateway | クラスターごとに 250 ノード (既定の制限) |
| Service Fabric | 仮想マシン スケール セット | Load Balancer | 仮想マシン スケール セットごとに 100 ノード |
| Batch | 適用なし | Load Balancer | コア制限は 900 専用、低優先度は 100 (既定の制限) |
| Azure VMware Solution | 組み込みサービス5 | 統合6 | VMware vCenter あたり 3 ~ 16 個の VMware ESXi ホスト |
注:
1ポッドの自動スケーリングを参照してください。
2AKS でのアプリケーションの需要に合わせてクラスターを自動的にスケーリングする方法を参照してください。
3Azure サブスクリプションとサービスの制限、クォータ、制約を参照する
4Container Apps でのスケーリング ルールの設定を参照してください
5Azure VMware Solution のスケーリングに関するページを参照してください
6VMware NSX を参照する
可用性
| サービス | マルチリージョン フェールオーバー オプション |
|---|---|
| Virtual Machines | Azure Traffic Manager、Azure Front Door、およびリージョン間ロード バランサー |
| App Service | Traffic Manager と Azure Front Door |
| Azure Functions | Traffic Manager と Azure Front Door |
| AKS | Traffic Manager、Azure Front Door、および Multiregion クラスター |
| Container Apps | Traffic Manager と Azure Front Door |
| Container Instances | Traffic Manager と Azure Front Door |
| Azure Red Hat OpenShift | Traffic Manager と Azure Front Door |
| Service Fabric | Traffic Manager、Azure Front Door、およびリージョン間ロード バランサー |
| Batch | 適用なし |
| Azure VMware Solution | 適用なし |
サービスの保証に関するガイド付き学習については、 Azure のアーキテクチャとサービスの保証に関するページを参照してください。
セキュリティ
次の各サービスで使用可能なセキュリティ制御と可視性を確認し、理解します。
- AKS
- App Service
- Azure Functions
- Linux 用 Virtual Machines
- Azure VMware Solution
- Windows 用 Virtual Machines
- バッチ
- コンテナー アプリ
- コンテナー インスタンス
- Service Fabric
その他の条件
| サービス | TLS | 費用 | 適切なアーキテクチャ スタイル |
|---|---|---|---|
| Virtual Machines | VM で構成済み | Windows、 Linux | N 層、ビッグ コンピューティング (HPC) |
| App Service | サポートされています | App Service の価格 | Web-queue-worker |
| Azure Functions | サポートされています | Azure Functions の価格 | マイクロサービス、 イベント ドリブン アーキテクチャ |
| AKS | イングレス コントローラー | AKS の価格 | マイクロサービス、 イベント ドリブン アーキテクチャ |
| Container Apps | イングレス コントローラー | Container Apps の価格 | マイクロサービス、 イベント ドリブン アーキテクチャ |
| Container Instances | サイドカー コンテナーを使用する | Container Instances の価格 | マイクロサービス、タスクの自動化、バッチ ジョブ |
| Azure Red Hat OpenShift | サポートされています | Azure Red Hat OpenShift の価格 | マイクロサービス、 イベント ドリブン アーキテクチャ |
| Service Fabric | サポートされています | Service Fabric の価格 | マイクロサービス、 イベント ドリブン アーキテクチャ |
| Batch | サポートされています | Batch の価格 | ビッグ コンピューティング (HPC) |
| Azure VMware Solution | VM で構成済み | Azure VMware Solution の価格 | VMware 形式に基づく VM ワークロード |
制限とコストを検討する
前の比較表と共に、候補サービスの次の側面をより詳細に評価します。
貢献者達
Microsoft では、この記事を保持しています。 次の共同作成者がこの記事を書きました。
- あよばみあよでじ |シニア プログラム マネージャー
- ジェレ・ドルイツ |プリンシパル サービス エンジニア
- Martin Gjoshevski |シニア サービス エンジニア
- フィル・黄 |シニア クラウド ソリューション アーキテクト
- Julie Ng |シニア サービス エンジニア
- Paolo Salvatori | プリンシパル サービス エンジニア
公開されていない LinkedIn プロフィールを見るには、LinkedIn にサインインしてください。