アプリケーションの Azure コンピューティング サービスを選択するChoose an Azure compute service for your application

Azure では、複数の方法でお使いのアプリケーション コードをホストできます。Azure offers a number of ways to host your application code. "コンピューティング" という用語は、アプリケーションがそこで実行されるコンピューティング リソースのホスティング モデルを指します。The term compute refers to the hosting model for the computing resources that your application runs on. 次のフローチャートは、お使いのアプリケーションのコンピューティング サービスを選択するうえで役立ちます。The following flowchart will help you to choose a compute service for your application.

アプリケーションが複数のワークロードで構成されている場合は、それぞれのワークロードを個別に評価します。If your application consists of multiple workloads, evaluate each workload separately. 完全なソリューションに、複数のコンピューティング サービスに組み込むことができます。A complete solution may incorporate two or more compute services.

サービス候補を選択するChoose a candidate service

次のフローチャートを使用して、候補となるコンピューティング サービスを選択します。Use the following flowchart to select a candidate compute service.

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

定義:Definitions:

  • "リフト アンド シフト" は、アプリケーションの再設計やコード変更なしで、ワークロードをクラウドに移行する戦略です。"Lift and shift" is a strategy for migrating a workload to the cloud without redesigning the application or making code changes. "リホスト" とも呼ばれます。Also called rehosting. 詳細については、「Azure Migration Center」を参照してください。For more information, see Azure migration center.
  • クラウド用に最適化: アプリケーションをリファクタリングすることでクラウドネイティブの機能を利用して、クラウドに移行する戦略です。Cloud optimized is a strategy for migrating to the cloud by refactoring an application to take advantage of cloud-native features and capabilities.

このフローチャートの結果は、検討の 開始点 です。The output from this flowchart is a starting point for consideration. 次に、サービスのより詳細な評価を実行し、ニーズを満たすかどうかを確認します。Next, perform a more detailed evaluation of the service to see if it meets your needs.

この記事には、これらのトレードオフを決定する際に役立つ表がいくつか含まれています。This article includes several tables which may help you to make these tradeoff decisions. この分析に基づいて、最初の候補が特定のアプリケーションやワークロードに適していないことがわかるかもしれません。Based on this analysis, you may find that the initial candidate isn't suitable for your particular application or workload. その場合は、分析を拡張して他のコンピューティング サービスを含めます。In that case, expand your analysis to include other compute services.

基本的な機能を理解するUnderstand the basic features

前の手順で選択した Azure サービスについてよく知らない場合は、概要に関するドキュメントを読んでサービスの基本を理解してください。If you're not familiar with the Azure service selected in the previous step, read the overview documentation to understand the basics of the service.

  • App ServiceApp Service. Web アプリ、モバイル アプリ バックエンド、RESTful API、または自動化されたビジネス プロセスをホストするためのマネージド サービスです。A managed service for hosting web apps, mobile app back ends, RESTful APIs, or automated business processes.
  • Azure Kubernetes Service (AKS)。Azure Kubernetes Service (AKS). コンテナー化されたアプリケーションを実行するためのマネージド Kubernetes サービスです。A managed Kubernetes service for running containerized applications.
  • BatchBatch. 大規模な並列コンピューティングやハイ パフォーマンス コンピューティング (HPC) のアプリケーションを実行するためのマネージド サービスですA managed service for running large-scale parallel and high-performance computing (HPC) applications
  • Container InstancesContainer Instances. 仮想マシンをプロビジョニングしたり、より高度なサービスを採用したりせずに、Azure で最も高速かつ簡単にコンテナーを実行する方法です。The fastest and simplest way to run a container in Azure, without having to provision any virtual machines and without having to adopt a higher-level service.
  • FunctionsFunctions. マネージド FaaS サービスです。A managed FaaS service.
  • Service FabricService Fabric. Azure、オンプレミスなど、多数の環境で実行できる分散システム プラットフォームです。A distributed systems platform that can run in many environments, including Azure or on premises.
  • 仮想マシンVirtual machines. Azure 仮想ネットワーク内に VM をデプロイして管理します。Deploy and manage VMs inside an Azure virtual network.

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

Azure サービスを含むクラウド サービスは 3 つのカテゴリに分類されます。つまり、IaaS、PaaS、FaaS ですCloud services, including Azure services, generally fall into three categories: IaaS, PaaS, or FaaS. (SaaS (サービスとしてのソフトウェア) もありますが、これはこの記事の対象範囲外です)。この違いを理解しておくことは有益です。(There is also SaaS, software-as-a-service, which is out of scope for this article.) It's useful to understand the differences.

サービスとしてのインフラストラクチャ (IaaS) を使用すると、個々の VM と共に、関連するネットワークおよびストレージ コンポーネントをプロビジョニングすることができます。Infrastructure-as-a-Service (IaaS) lets you provision individual VMs along with the associated networking and storage components. その後、必要なソフトウェアとアプリケーションを、こうした VM にデプロイします。Then you deploy whatever software and applications you want onto those VMs. このモデルは従来のオンプレミス環境に最も近いものですが、Microsoft がインフラストラクチャを管理する点が異なります。This model is the closest to a traditional on-premises environment, except that Microsoft manages the infrastructure. 個々の VM は、ご自身で引き続き管理します。You still manage the individual VMs.

サービスとしてのプラットフォーム (PaaS) は、管理されたホスティング環境を提供します。この環境では、VM やネットワーク リソースを管理せずにアプリケーションをデプロイできます。Platform-as-a-Service (PaaS) provides a managed hosting environment, where you can deploy your application without needing to manage VMs or networking resources. Azure App Service は PaaS サービスの 1 つです。Azure App Service is a PaaS service.

サービスとしての関数 (FaaS) はさらに進んで、ホスティング環境について心配する必要がありません。Functions-as-a-Service (FaaS) goes even further in removing the need to worry about the hosting environment. FaaS モデルでは、コードをデプロイするだけで、サービスによって自動的にコードが実行されます。In a FaaS model, you simply deploy your code and the service automatically runs it. Azure Functions は FaaS サービスです。Azure Functions are a FaaS service.

IaaS から純粋な PaaS への中間領域もあります。There is a spectrum from IaaS to pure PaaS. たとえば、Azure VM では、仮想マシン スケール セットを使用して自動スケーリングを行うことができます。For example, Azure VMs can autoscale by using virtual machine scale sets. この自動スケーリング機能は厳密には PaaS ではありませんが、PaaS サービスの中で見つかる管理機能の一種です。This automatic scaling capability isn't strictly PaaS, but it's the type of management feature found in PaaS services.

一般に、制御と管理しやすさの間にはトレードオフの関係があります。In general, there is a tradeoff between control and ease of management. IaaS では最も細かな制御、柔軟性、移植性が提供されますが、自分で作成した VM とネットワーク コンポーネントをプロビジョニング、構成、管理する必要があります。IaaS gives the most control, flexibility, and portability, but you have to provision, configure and manage the VMs and network components you create. FaaS サービスでは、アプリケーション実行のほぼすべての側面が自動的に管理されます。FaaS services automatically manage nearly all aspects of running an application. PaaS サービスは、その中間に位置します。PaaS services fall somewhere in between.

条件Criteria Virtual MachinesVirtual Machines App ServiceApp Service Service FabricService Fabric Azure FunctionsAzure Functions Azure Kubernetes ServiceAzure Kubernetes Service Container InstancesContainer Instances Azure BatchAzure Batch
アプリケーションの構成Application composition 非依存Agnostic アプリケーション、コンテナーApplications, containers サービス、ゲスト実行可能ファイル、コンテナーServices, guest executables, containers 関数Functions ContainersContainers ContainersContainers スケジュールされたジョブScheduled jobs
密度Density 非依存Agnostic App Service プランによる、インスタンスごとの複数のアプリMultiple apps per instance via app service plans VM ごとに複数のサービスMultiple services per VM サーバーレス 1Serverless 1 ノードごとに複数のコンテナーMultiple containers per node 専用インスタンスなしNo dedicated instances VM ごとに複数のアプリMultiple apps per VM
最小ノード数Minimum number of nodes 1 21 2 11 5 35 3 サーバーレス 1Serverless 1 3 33 3 専用ノードなしNo dedicated nodes 1 41 4
状態管理State management ステートレスまたはステートフルStateless or Stateful ステートレスStateless ステートレスまたはステートフルStateless or stateful ステートレスStateless ステートレスまたはステートフルStateless or Stateful ステートレスStateless ステートレスStateless
Web ホスティングWeb hosting 非依存Agnostic 組み込みBuilt in 非依存Agnostic 適用なしNot applicable 非依存Agnostic 非依存Agnostic いいえNo
専用 VNet にデプロイできるかどうかCan be deployed to dedicated VNet? サポートされていますSupported サポートされています 5Supported5 サポートされていますSupported サポートされています 5Supported 5 サポートされていますSupported サポートされていますSupported サポートされていますSupported
ハイブリッド接続Hybrid connectivity サポートされていますSupported サポートされています 6Supported 6 サポートされていますSupported サポートされています 7Supported 7 サポートされていますSupported サポートされていませんNot supported サポートされていますSupported

NotesNotes

  1. 従量課金プランを使用している場合。App Service プランを使用している場合、関数は、App Service プランに割り当てられた VM 上で実行されます。Azure Functions の適切なサービス プランの選択に関する記事をご覧ください。If using Consumption plan. If using App Service plan, functions run on the VMs allocated for your App Service plan. See Choose the correct service plan for Azure Functions.
  2. 2 つ以上のインスタンスによる、より高い SLA。Higher SLA with two or more instances.
  3. 運用環境の場合に推奨されます。Recommended for production environments.
  4. ジョブの完了後、0 にスケールダウンできます。Can scale down to zero after job completes.
  5. App Service Environment (ASE) が必要です。Requires App Service Environment (ASE).
  6. Azure App Service のハイブリッド接続を使用します。Use Azure App Service Hybrid Connections.
  7. App Service プランまたは Azure Functions Premium プランが必要です。Requires App Service plan or Azure Functions Premium plan.

DevOpsDevOps

条件Criteria Virtual MachinesVirtual Machines App ServiceApp Service Service FabricService Fabric Azure FunctionsAzure Functions Azure Kubernetes ServiceAzure Kubernetes Service Container InstancesContainer Instances Azure BatchAzure Batch
ローカル デバッグLocal debugging 非依存Agnostic IIS Express、その他 1IIS Express, others 1 ローカル ノードのクラスターLocal node cluster Visual Studio または Azure Functions CLIVisual Studio or Azure Functions CLI Minikube、その他Minikube, others ローカルのコンテナー ランタイムLocal container runtime サポートされていませんNot supported
プログラミング モデルProgramming model 非依存Agnostic Web および API アプリケーション、バックグラウンド タスク用の Web ジョブWeb and API applications, WebJobs for background tasks ゲスト実行可能ファイル、サービス モデル、アクター モデル、コンテナーGuest executable, Service model, Actor model, Containers トリガーを持つ関数Functions with triggers 非依存Agnostic 非依存Agnostic コマンド ライン アプリケーションCommand line application
アプリケーションの更新Application update 組み込みのサポートなしNo built-in support デプロイ スロットDeployment slots ローリング アップグレード (サービスあたり)Rolling upgrade (per service) デプロイ スロットDeployment slots ローリング アップデートRolling update 適用なしNot applicable

NotesNotes

  1. オプションには、ASP.NET または node.js (iisnode) の IIS Express、PHP Web サーバー、Azure Toolkit for IntelliJ、Azure Toolkit for Eclipse などがあります。App Service では、デプロイ済みの Web アプリのリモート デバッグもサポートしています。Options include IIS Express for ASP.NET or node.js (iisnode); PHP web server; Azure Toolkit for IntelliJ, Azure Toolkit for Eclipse. App Service also supports remote debugging of deployed web app.
  2. Resource Manager のプロバイダー、リージョン、API のバージョン、スキーマに関する記事をご覧ください。See Resource Manager providers, regions, API versions and schemas.

スケーラビリティScalability

条件Criteria Virtual MachinesVirtual Machines App ServiceApp Service Service FabricService Fabric Azure FunctionsAzure Functions Azure Kubernetes ServiceAzure Kubernetes Service Container InstancesContainer Instances Azure BatchAzure Batch
自動スケールAutoscaling 仮想マシン スケール セットVirtual machine scale sets 組み込みのサービスBuilt-in service 仮想マシン スケール セットVirtual machine scale sets 組み込みのサービスBuilt-in service ポッドの自動スケーリング1、クラスターの自動スケーリング2Pod auto-scaling1, cluster auto-scaling2 サポートされていませんNot supported 該当なしN/A
Load BalancerLoad balancer Azure Load BalancerAzure Load Balancer 統合Integrated Azure Load BalancerAzure Load Balancer 統合Integrated Azure Load Balancer または Application GatewayAzure Load Balancer or Application Gateway 組み込みのサポートなしNo built-in support Azure Load BalancerAzure Load Balancer
スケールの制限3Scale limit3 プラットフォーム イメージ:スケール セットあたり 1,000 ノード、カスタム イメージ:スケール セットあたり 600 ノードPlatform image: 1000 nodes per scale set, Custom image: 600 nodes per scale set 20 個のインスタンス、App Service Environment で 10020 instances, 100 with App Service Environment スケール セットあたり 100 ノード100 nodes per scale set Function App あたり 200 個のインスタンス200 instances per Function app クラスターあたり 100 ノード (既定の制限)100 nodes per cluster (default limit) サブスクリプションあたり 20 コンテナー グループ (既定の制限)。20 container groups per subscription (default limit). 20 個のコアの制限 (既定の制限)。20 core limit (default limit).

NotesNotes

  1. ポッドを自動スケールする」を参照してください。See Autoscale pods.
  2. Azure Kubernetes Service (AKS) でのアプリケーションの需要を満たすようにクラスターを自動的にスケーリング」を参照してください。See Automatically scale a cluster to meet application demands on Azure Kubernetes Service (AKS).
  3. Azure サブスクリプションとサービスの制限、クォータ、制約」をご覧ください。See Azure subscription and service limits, quotas, and constraints.

可用性Availability

条件Criteria Virtual MachinesVirtual Machines App ServiceApp Service Service FabricService Fabric Azure FunctionsAzure Functions Azure Kubernetes ServiceAzure Kubernetes Service Container InstancesContainer Instances Azure BatchAzure Batch
SLASLA Virtual Machines の SLASLA for Virtual Machines App Service の SLASLA for App Service Service Fabric の SLASLA for Service Fabric Functions の SLASLA for Functions AKS の SLASLA for AKS Container Instances の SLASLA for Container Instances Azure Batch の SLASLA for Azure Batch
複数リージョンのフェールオーバーMulti region failover Traffic ManagerTraffic manager Traffic ManagerTraffic manager Traffic manager、複数リージョンのクラスターTraffic manager, Multi-Region Cluster Azure Front DoorAzure Front Door Traffic ManagerTraffic manager サポートされていませんNot supported サポートされていませんNot Supported

サービスの保証に関するガイド付き学習については、「コア Cloud Services - Azure アーキテクチャとサービスの保証」をご確認ください。For guided learning on Service Guarantees, review Core Cloud Services - Azure architecture and service guarantees.

セキュリティSecurity

各サービスの使用可能なセキュリティ制御と可視性を確認して理解してくださいReview and understand the available security controls and visibility for each service

その他の条件Other criteria

条件Criteria Virtual MachinesVirtual Machines App ServiceApp Service Service FabricService Fabric Azure FunctionsAzure Functions Azure Kubernetes ServiceAzure Kubernetes Service Container InstancesContainer Instances Azure BatchAzure Batch
SSLSSL VM で構成済みConfigured in VM サポートされていますSupported サポートされていますSupported サポートされていますSupported イングレス コントローラーIngress controller サイドカー コンテナーを使用Use sidecar container サポートされていますSupported
コストCost WindowsLinuxWindows, Linux App Service 価格App Service pricing Service Fabric の価格Service Fabric pricing Azure Functions の価格Azure Functions pricing AKS の価格AKS pricing Container Instances の価格Container Instances pricing Azure Batch の価格Azure Batch pricing
適切なアーキテクチャ スタイルSuitable architecture styles n 層ビッグ コンピューティング (HPC)N-Tier, Big compute (HPC) Web キューワーカーn 層Web-Queue-Worker, N-Tier マイクロサービスイベント駆動型アーキテクチャMicroservices, Event-driven architecture マイクロサービスイベント駆動型アーキテクチャMicroservices, Event-driven architecture マイクロサービスイベント駆動型アーキテクチャMicroservices, Event-driven architecture マイクロサービス、タスクの自動化、バッチ ジョブMicroservices, task automation, batch jobs ビッグ コンピューティング (HPC)Big compute (HPC)

このフローチャートの結果は、検討の 開始点 です。The output from this flowchart is a starting point for consideration. 次に、サービスのより詳細な評価を実行し、ニーズを満たすかどうかを確認します。Next, perform a more detailed evaluation of the service to see if it meets your needs.

制限とコストを考慮するConsider limits and cost

より詳細な評価を実行し、サービスの次の側面を確認します。Perform a more detailed evaluation looking at the following aspects of the service:

次のステップNext steps