Microsoft Azure上でさまざまな言語で開発されたウェブアプリケーションなどをホストし、アプリケーションの実行やスケーリングを行うサービスがAzure App Serviceです。Azure App Serviceを利用することでGitHubやVisual Studioなどで開発されたウェブアプリケーションを簡単にデプロイできます。
※ホスト:アプリケーションを動かすためにサーバーやプラットフォームを利用すること
※デプロイ:アプリケーションを運用環境に配置して利用できる状態にすること
 本記事では、Azure App Serviceの概要、特徴や利点、料金・価格、使い方を解説します。

Azure App Serviceとは?

 Azure App Serviceは、Microsoft Azureが提供する基本的なクラウドサービスの1つで、フルマネージドなプラットフォームサービス(PaaS)です。ウェブアプリケーション、REST API、およびモバイルバックエンドを簡単かつ迅速に構築、デプロイ、管理するサービスとなっています。

 Azure App Serviceを利用することでMicrosoft Azureが提供するセキュリティ、負荷分散、自動スケーリングなどの機能が使えるようになるため、インフラ管理の手間を減らしてアプリケーションの開発に注力できます。さらに、Azure DevOps、GitHub、Docker Hub およびその他のソースから、継続的インテグレーション/継続的デリバリー(CI/CD)、パッケージ管理などのDevOps機能が利用できます。

 同じような機能を持つAzureのサービスにAzure Functionsがあります。Azure Functionsは特定のイベントやタスクを処理する単一の関数としてのアプリケーションのホストに向いているのに対し、Azure App Serviceはフルスタックのアプリケーションのホストに向いています。

Azure App Serviceの特徴と利点

 Azure App Serviceには、以下のような特徴があります。

  1. フルマネージドサービス:Azure App Serviceは、Microsoftがインフラの運用や管理をすべて行い、ユーザーはサービスを利用するだけでよい状態となっているサービス、すなわちフルマネージドサービスとなっています。したがって、ユーザーはアプリケーションの開発に集中できます。
  2. スケーラビリティ:アプリケーションのトラフィックに応じて自動的にインスタンスのスケールアップやスケールダウンが行えます。これにより、アプリケーションの負荷が高くなっても安定したパフォーマンスが提供できます。
  3. 簡単なデプロイ:Visual StudioやGitHub、Bitbucketなどのさまざまなソースコードリポジトリから、簡単に直接アプリケーションをデプロイできます。また、継続的インテグレーション/継続的デリバリー(CI/CD)パイプラインを設定できます。
  4. 多言語サポート:ASP.NET、ASP.NET Core、Java、Node.js、Python、PHPといったさまざまなプログラミング言語に対応しており、開発者が得意な言語でアプリケーションを構築できます。
  5. カスタムドメインとSSL:カスタムドメインとして、独自のドメイン名を使用できます。カスタムドメインを用いることでSEO(検索エンジン最適化)において有利になることが期待できます。また、カスタムドメインによりSSL(Secure Sockets Layer:インターネット上でデータを安全に送受信するための暗号化プロトコル)が簡単に設定でき、セキュリティの確保につながります。
  6. コンテナ化:Dockerコンテナを使用してアプリケーションをホストすることも可能です。アプリケーションがDockerでコンテナ化できることにより、アプリケーションを小さな独立したサービスに分割するマイクロサービスアーキテクチャの開発に向きます。

 これらの特徴により、Azure App Serviceはアプリケーションの開発・運用において非常に便利なサービスとなっています。具体的には、以下のようなケースで活用されます。

  • イベント管理システム:参加者登録、スケジュール管理、フィードバック収集のための大規模イベント向けウェブアプリケーションをAzure App Serviceで構築。イベント当日のトラフィックピークに備えて、スケーリング設定を行う。
  • スマートフォン向けの健康管理アプリ:スマートフォン向けの健康管理アプリを開発し、Azure App ServiceでREST APIをホストする。データの保存や分析をAzure SQL Databaseと連携させて行う。
  • チャットボットのホスティング:顧客サポートのためのチャットボットを開発し、Azure App Service上でホスティング。Azure Functionsと連携し、ユーザーの問い合わせにリアルタイムで対応。

Azure App Serviceの価格・料金

 Azure App Serviceの価格はApp Serviceプラン(OSの種類、リージョン、VMインスタンスの数、VMインスタンスのサイズ、価格レベルが定義されたもの)によって決定されます。価格レベルには安い順にFree、Shared、Basic、Standard、Premium、Isolatedなどの種類があり、それぞれの価格レベルには下記の特徴があります。

カテゴリー価格レベル
共有コンピューティング(他のApp Serviceアプリケーションと同じAzure VM上でアプリケーションを実行する)Free、Shared
専用のコンピューティング(専用のAzure VM上で同じApp Service内のアプリケーションを実行する)Basic、Standard、Premium、PremiumV2、PremiumV3
Isolated(専用のAzure VMが専用のAzure仮想ネットワークで実行される)Isolated、IsolatedV2
価格レベルの特徴

具体的な価格については公式サイト(WindowsLinux)にて利用したい価格プランを確認してください。

Azure App Serviceの使い方

 Azure App ServiceでPHPのウェブアプリケーションをデプロイし、継続的デプロイを実施する方法を説明します。

サンプルリポジトリの取得

ブラウザーにてサンプルコードを含むリポジトリに移動します。GitHubにログインした状態で、「Fork」(自分のアカウントにリポジトリのコピーを作成する)をクリックします。

サンプルコードを含むリポジトリのGitHubの画面

次に表示される画面で「Create Fork」をクリックします。

Forkの新規作成画面

App Serviceの作成

Azure Portalにログインします。 「App Service」で検索します。「+作成」>「Webアプリ」をクリックします。

Azure PortalのApp Serviceの画面

「基本」タブでの設定

「プロジェクトの詳細」にて「新規作成」をクリックして任意の名前のリソースグループを作成します。

「プロジェクトの詳細」の設定画面

「インスタンスの詳細」>「名前」は任意の名前(ただし、一意のホスト名となるようにすること)を入力します。「公開」が「●コード」となっていることを確認します。「ランタイムスタック」は「PHP 8.3」を選択します。「オペレーティングシステム」が「●Linux」となっていることを確認します。「リージョン」は「West Europe」を選択します。

「インスタンスの詳細」の設定画面

「価格プラン」は「Basic B1」を選択します。(継続的デプロイをサポートしているプランの中で最も安いため。)

「価格プラン」の設定画面

「デプロイ」タブでの設定

「デプロイ」タブをクリックし、「継続的デプロイ」を「●有効化」に変更します。「GitHub設定」>「組織」はご自身のGitHubアカウントを選択し、「リポジトリ」は「php-docs-hello-world」を選択します。

「デプロイ」タブの設定画面

初めてGitHubアカウントを設定する際は下記の画面が表示されますので、「Authorize AzureAppService」をクリックして認証を行ってください。

Azure App Serviceの認証画面

設定が完了したら「確認および作成」タブをクリックして「作成」ボタンをクリックします。Azure App Serviceのデプロイが完了したら、「リソースに移動」をクリックします。

ウェブアプリケーションへのアクセス

作成したAzure App Serviceの「既定のドメイン」をクリックします。

作成したAzure App Serviceの画面

下の画面が表示されることを確認します。

「Hello World!」と表示されている画面

継続的デプロイの実施

GitHubのページに戻り、キーボードの「.」を押下します。ブラウザー内でVisual Studioコードが起動するので、「index.php」をクリックします。3行目の「Hello Word!」を「Hello Azure!」に変更して、左側にある「ソース管理」ボタン(①と表示されているボタン)をクリックします。

Visual Studioコードの画面

入力欄に「test」と入力し、上の方にあるチェックマークをクリックしてコミットとプッシュを行います。

Visual Studioコードの「ソース管理」画面

しばらくしてから、手順5で開いた画面を更新すると、下の画面のように表示される文章が変化します。

「Hello Azure!」と表示されている画面

作成したリソースの削除

Azure Portalにて作成したAzure App Serviceの画面で「停止」をクリックしてアプリケーションの実行を停止します。手順3で作成したリソースグループを検索して、「リソースグループの削除」をクリックします。作成したリソースグループの名前を入力して「削除」をクリックすることで作成したAzure App ServiceやApp Serviceプランごとリソースが削除されます。

 今回はPHPのウェブアプリケーションをデプロイしましたが、前述したようにAzure App Serviceはさまざまな言語をサポートしています。他の言語のアプリケーションをデプロイする際は、公式のクイックスタートを参考にしてみてください。

まとめ

 本記事では、最初にAzure App Serviceがウェブアプリケーションなどをホストするスケーラビリティのあるフルマネージドサービスであり、アプリケーションのデプロイが簡単で、多くの言語をサポートしていることを説明しました。次に、Azure App Serviceの価格はApp Serviceプランによって決定されることを説明しました。最後に、Azure App Serviceを利用して実際にウェブアプリケーションをGitHubから簡単にデプロイする方法を説明しました。
 ここまでお読みいただきありがとうございました。本記事が皆様の仕事や学習に役立ちますと幸いです。