Azure Cloud Services と他のサービスのどちらを選択すればよいかShould I choose Azure Cloud Services or something else?

Azure Cloud Services が最適な選択ですか?Is Azure Cloud Services the choice for you? Azure にはアプリケーションを実行するための複数のホスティング モデルがあります。Azure provides different hosting models for running applications. それぞれの実行モデルで異なるサービスのセットが提供されます。Each one provides a different set of services. 実行する内容に正確に基づいて実行モデルを選択してください。Which one you choose depends on exactly what you're trying to do.

コンピューティング オプションCompute Options 対象となる読者Audience
App ServiceApp Service 任意のデバイス用のスケーラブルな Web Apps、Mobile Apps、API Apps、Logic AppsScalable Web Apps, Mobile Apps, API Apps, and Logic Apps for any device
Cloud ServicesCloud Services OS のより詳細な制御が可能な、可用性と拡張性の高い N 階層のクラウド アプリケーションHighly available, scalable n-tier cloud apps with more control of the OS
Virtual MachinesVirtual Machines OS の完全な制御が可能な、カスタマイズされた Windows と Linux VMCustomized Windows and Linux VMs with complete control of the OS

Azure Cloud Services の概要Tell me about Azure Cloud Services

Azure Cloud Services は、サービスとしてのプラットフォーム (PaaS) の 1 つの例です。Azure Cloud Services is an example of a platform as a service (PaaS). このテクノロジは、Azure App Service と同様に、スケーラブルで信頼性が高く、運用コストが低いアプリケーションをサポートするように設計されています。Like Azure App Service, this technology is designed to support applications that are scalable, reliable, and inexpensive to operate. App Service と同様に、Azure Cloud Services も仮想マシン (VM) 上でホストされます。In the same way that App Service is hosted on virtual machines (VMs), so too is Azure Cloud Services. しかし、VM に対してより細かな制御を行うことができます。However, you have more control over the VMs. Azure Cloud Services を使用する VM に独自のソフトウェアをインストールし、それらにリモートでアクセスできます。You can install your own software on VMs that use Azure Cloud Services, and you can access them remotely.

Azure Cloud Services の図

コントロール能力の高さは、使いやすさが低下することも意味します。More control also means less ease of use. 追加のコントロール オプションを必要としない限り、通常は App Service の Web Apps 機能の方が Azure Cloud Services よりも迅速かつ容易に Web アプリケーションを実行できます。Unless you need the additional control options, it's typically quicker and easier to get a web application up and running in the Web Apps feature of App Service compared to Azure Cloud Services.

Azure Cloud Services ロールには、次の 2 種類があります。There are two types of Azure Cloud Services roles. 2 つの唯一の違いは、VM でロールがホストされる方法です。The only difference between the two is how your role is hosted on the VMs:

  • Web ロール: IIS を使用して自動的にアプリをデプロイおよびホストします。Web role: Automatically deploys and hosts your app through IIS.

  • worker ロール: IIS を使用せず、アプリをスタンドアロンで実行します。Worker role: Does not use IIS, and runs your app standalone.

たとえば、単純なアプリケーションでは、web ロールを 1 つだけ使用して web サイトにサービスを提供している場合があります。For example, a simple application might use just a single web role, serving a website. もっと複雑なアプリケーションでは、Web ロールを使用してユーザーからの受信要求を処理し、次にそれらの要求を worker ロールに渡して処理を行っている場合があります A more complex application might use a web role to handle incoming requests from users, and then pass those requests on to a worker role for processing. (この通信は、Azure Service Bus または Azure Queue Storage を使用する可能性があります)。(This communication might use Azure Service Bus or Azure Queue storage.)

上記の図に示すように、1 つのアプリケーションのすべての VM は同じクラウド サービスで実行されます。As the preceding figure suggests, all the VMs in a single application run in the same cloud service. ユーザーは 1 つのパブリック IP アドレスを通してアプリケーションにアクセスし、要求はアプリケーションの VM 間で自動的に負荷分散されます。Users access the application through a single public IP address, with requests automatically load balanced across the application's VMs. プラットフォームは、ハードウェアの単一障害点を回避するように、Azure Cloud Services アプリケーションで VM をスケールおよびデプロイします。The platform scales and deploys the VMs in an Azure Cloud Services application in a way that avoids a single point of hardware failure.

アプリケーションは VM で実行しますが、Azure Cloud Services はサービスとしてのインフラストラクチャ (IaaS) ではなく PaaS を提供することを理解することが重要です。Even though applications run in VMs, it's important to understand that Azure Cloud Services provides PaaS, not infrastructure as a service (IaaS). 次の例を考えてみましょう。Here's one way to think about it. Azure Virtual Machines のような IaaS では、アプリケーションが実行する環境を最初に作成して構成します。With IaaS, such as Azure Virtual Machines, you first create and configure the environment your application runs in. 次に、この環境にアプリケーションをデプロイします。Then you deploy your application into this environment. この方法では、パッチが適用された新しいオペレーティング システムのバージョンを各 VM にデプロイするなど、ほとんどの管理をユーザーが担当します。You're responsible for managing much of this world, by doing things such as deploying new patched versions of the operating system in each VM. それに対し、PaaS では環境が既に存在するかのように管理できます。In PaaS, by contrast, it's as if the environment already exists. ユーザーはアプリケーションをデプロイするだけで済みます。All you have to do is deploy your application. オペレーティング システムの新バージョンのデプロイをはじめ、実行するプラットフォームの管理がユーザーに代わって処理されます。Management of the platform it runs on, including deploying new versions of the operating system, is handled for you.

スケーリングと管理Scaling and management

Azure Cloud Services では、ユーザーは仮想マシンを作成しません。With Azure Cloud Services, you don't create virtual machines. 代わりに、"Web ロール インスタンスを 3 個"、"worker ロール インスタンスを 2 個" のように、それぞれがいくつ必要かを Azure に指示する構成ファイルを提供します。Instead, you provide a configuration file that tells Azure how many of each you'd like, such as "three web role instances" and "two worker role instances." すると、プラットフォームによってそれらが自動的に作成されます。The platform then creates them for you. その場合も、バッキング VM の サイズ を選択する必要がありますが、自身で明示的に作成する必要はありません。You still choose what size those backing VMs should be, but you don't explicitly create them yourself. アプリケーションが高い負荷を処理する場合は、追加の VM を要求すると、Azure がそれらのインスタンスを作成します。If your application needs to handle a greater load, you can ask for more VMs, and Azure creates those instances. 負荷が減少した場合は、それらのインスタンスをシャットダウンして支払いを停止できます。If the load decreases, you can shut down those instances and stop paying for them.

Azure Cloud Services アプリケーションは通常、2 つの手順から成るプロセスで利用可能になります。An Azure Cloud Services application is typically made available to users via a two-step process. 最初に、開発者はプラットフォームのステージング領域に アプリケーションをアップロード します。A developer first uploads the application to the platform's staging area. アプリケーションを稼働する準備が整ったら、Azure Portal を使用して運用とステージングを切り替えます。When the developer is ready to make the application live, they use the Azure portal to swap staging with production. ステージングと運用の切り替え にはダウンタイムが生じないため、ユーザーに支障を与えることなく、実行中のアプリケーションを新バージョンにアップグレードできます。This switch between staging and production can be done with no downtime, which lets a running application be upgraded to a new version without disturbing its users.

監視Monitoring

Azure Cloud Services は監視も提供します。Azure Cloud Services also provides monitoring. Virtual Machines と同様に、故障した物理サーバーを検出し、そのサーバーで実行していた VM を別のマシンで再開します。Like Virtual Machines, it detects a failed physical server and restarts the VMs that were running on that server on a new machine. さらに、Azure Cloud Services はハードウェアの故障だけではなく、エラーが発生した VM やアプリケーションも検出します。But Azure Cloud Services also detects failed VMs and applications, not just hardware failures. Virtual Machines と異なり、各 Web ロール内と Worker ロール内にエージェントが含まれているので、エラーが発生したときに、新しい VM とアプリケーションのインスタンスを開始できます。Unlike Virtual Machines, it has an agent inside each web and worker role, and so it's able to start new VMs and application instances when failures occur.

PaaS という Azure Cloud Services の本質には、他の含意もあります。The PaaS nature of Azure Cloud Services has other implications, too. 最も重要なことの 1 つは、このテクノロジを基盤に構築されるアプリケーションは、Web または Worker ロール インスタンスでエラーが発生したときに正しく実行するように記述することが必要です。One of the most important is that applications built on this technology should be written to run correctly when any web or worker role instance fails. これを実現するには、Azure Cloud Services のアプリケーションがそれ自体の VM のファイル システムで状態を維持してはなりません。To achieve this, an Azure Cloud Services application shouldn't maintain state in the file system of its own VMs. Virtual Machines で作成された VM と異なり、Azure Cloud Services VM への書き込みは永続的ではありません。Unlike VMs created with Virtual Machines, writes made to Azure Cloud Services VMs aren't persistent. Virtual Machines のデータ ディスクのようなものはありません。There's nothing like a Virtual Machines data disk. Azure Cloud Services アプリケーションはすべての状態を Azure SQL Database、BLOB、テーブルか、その他の外部ストレージに明示的に書き込む必要があります。Instead, an Azure Cloud Services application should explicitly write all state to Azure SQL Database, blobs, tables, or some other external storage. この方法でアプリケーションを構築すると、スケーリングしやすく、耐障害性が備わります。この 2 つは Azure Cloud Services の重要なゴールです。Building applications this way makes them easier to scale and more resistant to failure, which are both important goals of Azure Cloud Services.

次の手順Next steps