ブラウザ上で動作するWebアプリケーションは、チャットのようなコミュニケーションツールはもちろん、財務会計システムまで拡大しています。Webアプリケーションを構築するためにはフロントエンドとバックエンドの開発が必要になりますが、この開発環境をAzure上で提供するサービスが「Azure Web Apps」です。
Azure Web Appsでは、WindowsとLinuxのプラットフォームをサポートしています。さまざまなライブラリを活用することにより、開発のスピードアップを支援します。また、利用状況に合わせて自動的にスケーリングして負荷を分散させることができるため、設計時の想定を超えたアクセスにも対応可能です。
ここでは、Azure Web Appsの概要とメリットを解説するとともに、AWSと比較します。
Azure Web Appsとは
Webアプリケーションの構築にあたっては、要件定義の段階で「どのようなシステムが求められているのか」「ユーザーエクスペリエンスとして何が重要か」という全体設計から、プログラム言語、フレームワーク、開発ツールを選定し、開発チームと運用チームを編成する必要があります。同時に、ハードウェアなどのインフラストラクチャーを準備します。AzureのようなPaaS(Platform as a Services)であれば、開発環境の構築からデプロイまでをクラウド上でスムーズに行うことができるので効率的です。
AzureにはWebアプリケーションあるいはモバイルアプリケーションを構築、デプロイ、スケーリングするサービスとして「App Service」があり、以下の3つのサービスを提供しています。
- Azure Web Apps
- Azure Web App for Containers
- Azure API Apps
このうちAzure Web Appsはエンタープライズ向けのWebアプリケーションからモバイルアプリケーションまで、アプリケーションを迅速に構築、デプロイして、利用規模に合わせてスケーリングできるサービスです。Azure Web App for Containersはコンテナー化されたアプルケーションのデプロイのためのサービス、Azure API Appsはクラウド内のAPIを効率的に作成して利用するためのサービスになります。
それでは、Azure Web Appsにはどのようなメリットがあるのでしょうか。
Azure Web Appsのメリット
Azure Web Appsは、PaaSとIDaaSによるAzureの機能を使って、Webアプリケーションの構築とデプロイ、運用を簡単かつ迅速にします。以下のようなメリットがあります。
幅広いプラットフォーム、言語、CMSに対応
OSとしてWindowsはもちろんLinuxのプラットフォームもサポートしています。また、Windows環境では.NET、Java、Node.js、PHP、Python、Linux環境では.NET Core、Node.js、PHP、Rubyを使うことができます。Web制作には欠かせないCMS(Content Management System:コンテンツ管理システム)として最もポピュラーなWordPressのほか、オープンソースのUmbraco(アンブラコ)、Joomla!(ジュームラ!)、Drupal(ドルーパス)をサポートし、最適な環境を選べます。
開発の負荷を軽減する機能
GitHubを利用したソースコードの統合、ライブデバッグが可能で、Microsoft Visual Studio IDEからワンクリックで処理を行うことができます。Azure Marketplaceを使えばオープンソースソフトウェア(OSS)のパッケージやAPI、コネクタなどを活用できるので、ゼロからプログラムを組み上げる必要がありません。Azure Portal によって統合したシングルサインオン (SSO)、アプリケーションが正常に作動しているかどうかを監視する機能の追加など、さまざまな面から開発者を支援する機能を備えています。
ワンクリックによるデプロイと更新の自動化
開発者としては慣れたコマンドラインインターフェイス(CLI)の操作に加えて、Azure Portalから構成済みのテンプレートを使用して、ワンクリックによるデプロイができます。
またDevOps、Bit Bucket、GitHubで運用を自動化し、継続的インテグレーション(CI:Continuous Integration)/継続的デプロイ(CD:Continuous Deployment)を実現します。リポジトリを連携し、ソースコードが変更されるたびにアプリを更新します。パフォーマンスや品質をテストした後、デプロイスロットで運用環境に数秒で移行させ、ダウンタイムなしで前のバージョンにロールバックすることも可能です。
柔軟な開発環境とスケーリングによる高可用性
Azureやその他のクラウドと、オンプレミスで稼働するWebアプリケーションを構築して管理できます。オンプレミスの場合は、Azure Stackによってデプロイが可能です。App Service Environmentでプライバシー、電力、パフォーマンスを強化し、大規模な Azure Virtual Networkを使ってWebアプリケーションを稼働させます。
ワンクリックで複数のAzureリージョンにデプロイできる高可用性もメリットのひとつです。 アプリケーションのピークを自動的に制御して、それ以外のコストを最低限に抑えるパフォーマンスの自動的なスケーリングが可能です。Virtual Machinesシリーズ最新世代のDシリーズ汎用コンピューティングのオプションでは、高速CPU、ハイパフォーマンスのディスク、大容量のメモリを必要とするアプリケーションでも、パフォーマンスやスケーラビリティの厳しい要件にこたえます。
堅牢性の高いセキリュティとIDaaSを実現
クラウドサービスの普及にしたがって、セキュリティが重視されるようになりました。AzureはISO情報セキュリティ標準、SOC2会計標準、PCIセキュリティ標準に準拠し、エンタープライズレベルのSLA(Service Level Agreement:サービス品質保証)を提供します。
またIDaaSとして、Azure Active Directoryとそれ以外に利用しているクラウドのIDを統合管理することが可能です。Office 365、SalesforceといったSaaSアプリケーションと連携してシングルサインオン(SSO)を実現します。
Azure Web Appsの試用版、開発/テスト環境版の価格
Azure Web Appsは無料版が提供されています。有料になりますが、開発/テストの目的であれば低コストで利用できます。ただし、OS(WindowsまたはLinux)の選択とリージョン(日本の場合、東日本または西日本)で異なります。
以下にWindows環境で利用した場合のリージョン別価格を示します(価格は2019年9月14日現在)。
東日本リージョン(Windows)
|
FREE |
SHARED |
BASIC |
時間あたりの料金 |
Free |
¥1.714 |
¥9.912 |
Web、Mobile、API、API Apps |
10 |
100 |
無制限 |
ディスク領域 |
1GB |
1GB |
10GB |
最大インスタンス数 |
– |
– |
最大3 |
カスタムドメイン |
– |
サポート対象 |
サポート対象 |
西日本リージョン(Windows)
|
FREE |
SHARED |
BASIC |
時間あたりの料金 |
Free |
¥1.546 |
¥9.520 |
Web、Mobile、API、API Apps |
10 |
100 |
無制限 |
ディスク領域 |
1GB |
1GB |
10GB |
最大インスタンス数 |
– |
– |
最大3 |
カスタムドメイン |
– |
サポート対象 |
サポート対象 |
FREEおよびSHAREDのプランでは、アプリケーションをテストするために予算に応じたオプションが用意されています。BASICは専用の仮想マシンで運用するためのプランです。
なお、無料版と開発/テスト環境版では、自動スケール、VPNハイブリッド接続、ネットワークの分離はサポートしていません。これらの機能を利用するためには、「STANDARD(運用環境のワークロードの実行)」、「PREMIUM(強化されたパフォーマンスとスケール)」、「ISOLATED(ハイパフォーマンス、セキュリティおよび分離)」のプランを利用する必要があります。サービスによってサポート対象が変わります。
Azure Web AppsとAWS Elastic Beanstalk
Azure Web Appsと競合するAmazon Web Servicesは「AWS Elastic Beanstalk」になりますが、仮想マシンの「Amazon Elastic Compute Cloud(EC2)」と、ロードバランサの「Elastic Load Balancing(ELB)」を同時に利用しなければならないため、厳密にはAzure Web Appsと比較できません。
AWS Elastic Beanstalkは、複数のサービスを集めたパッケージとして提供されています。AmazonのEC2に該当するAzureのサービスは「Azure Virtual Machines」であり、Elastic Load Balancing に対応するのは「Azure Load Balancer」です。
リソースが必要な環境を仮想マシンのレベルから作ることを「Cold Pool」、アプリケーションをすぐにデプロイできる環境があって必要なときにデプロイできることを「Hot Pool」と呼ぶことがあります。その分類ではAWS Elastic Beanstalkは細かい設定は可能ですがCold Poolです。一方でAzure Web Appsは簡単にデプロイできる面からHot Poolであることが大きな違いといえます。
まとめ
変化が激しく正解のみえない時代において、ビジネスチャンスを的確につかむためには、開発期間を短縮しつつ、プロトタイピングを繰り返しながら完成度を高めてサービスを提供することが重要です。したがってセキュアで高速のインフラストラクチャーはもちろん、PaaSとして幅広い機能を備えていることと柔軟性が求められます。
Azure Web Appsは大規模なWebアプリケーションからモバイルアプリケーションまで開発ができ、ワンクリックで迅速にデプロイ可能なサービスです。柔軟にスケールできるため、ビジネスの急速な成長に合わせて手間をかけずにシステムを最適化できます。