【初心者向け】Azure App Serviceをざっくり理解する

この記事の内容

  • Azure App Service は、世界中からアクセスできるWebサイトを簡単に作成・公開できるサービスです
  • App Service を動かすには「App Service プラン」が必須で、この2層構造を理解することが重要です
  • App Service プランは料金・性能の基盤となり、1つのプランで複数のアプリを動かすことができます
  • Webアプリ作成時には、ランタイムスタック(.NET / Java / Node.js / PHP / Python など)やOSを選択できます
  • GitHub Actions などとの継続的デプロイ連携や、デプロイスロットによるブルーグリーンデプロイも可能です

Azure App Service とは

Azure App Service は、インターネット上にWebサイトを公開するためのサービスです。世界中のどこからでもアクセスできるWebサーバーを、インフラを意識することなく簡単に立ち上げることができます。

裏側ではVMなどのサービスが動いていますが、そのような低レイヤーの部分はAzureが隠蔽してくれています。開発者はアプリケーションの開発に集中できるのが大きなメリットです。


App Service の2層構造を理解する

Azure App Service を理解するうえで最も重要なのが、2層構造です。

  • App Service プラン(下座となる基盤): CPU・メモリなどのリソースを定義するプラン。価格や性能もここで決まります
  • App Service(Web アプリ)(上物): App Service プランの上で動くWebアプリケーション本体

App Service プランは1つで複数のアプリを動かすことができますが、App Service を動かすためには必ず App Service プランが必要です。リソースグループを確認すると、ウィザードで一度に作成した場合でも、必ずこの2つのリソースがセットで作成されていることがわかります。

なお、App Service プランは Web アプリだけでなく、Azure Functions などの実行基盤としても利用できます。


Azure ポータルでの作成手順

1. App Service の作成を開始する

Azure 管理ポータルで「App Service」を検索し、「作成」をクリックします。作成時には以下の選択肢があります。

  • Web アプリ
  • 静的 Web アプリ
  • Web アプリとデータベース
  • WordPress on App Service

今回は「Web アプリ」を選択します。なお、「静的 Web アプリ」は料金が安い場合がありますが、サービスの構造が根本的に異なるため、別物として扱ってください。

2. 基本設定を構成する

サブスクリプションとリソースグループを選択したら、Web アプリの名前を入力します。この名前はインターネットからアクセスする際のグローバルな名前になります。

Azureはデフォルトで一意性を保証するIDを名前に付加するオプションを提供しています。これを有効にすると、他のユーザーと名前が衝突しないようAzureが自動的にユニークな名前を生成してくれます。

3. デプロイ方式とランタイムスタックを選択する

Webアプリの展開方式として、以下の2つから選択できます。

  • コード: ランタイムスタックを選択してコードをデプロイする
  • コンテナー: コンテナーイメージを展開して動かす

今回はコード方式を選択します。ランタイムスタックでは、以下のミドルウェアを選択できます。

  • .NET
  • Java
  • Node.js
  • PHP
  • Python

また、OSとして Linux または Windows を選択できます。

4. App Service プラン(価格プラン)を選択する

リージョンを選択したら、「価格プラン」でApp Service プランを選択します。プランによって性能と価格が変わります。

プランの種類目安スペック
Free(無料)1日60分の稼働制限あり
Basicメモリ 1.75 GB、vCPU 1 など
Standard/Premiumメモリ 16 GB、vCPU 2 など
独立環境完全隔離された専用環境

評価目的であれば Free プランでも問題ありませんが、常時稼働させたい場合は有料プランを選択する必要があります。

5. オプション設定

データベース

Web アプリと一緒にデータベースを作成することも可能です(Freeプランは不可)。Azure SQL Database や PostgreSQL、MySQL などを同時に作成して連携させることができます。

継続的デプロイ

GitHub ActionsなどのリポジトリとCI/CDを連携させる設定です。コードに変更が入ると自動的に新しいバージョンがデプロイされるパイプラインを構成できます。

ネットワーク

デフォルトではインターネットからのパブリックアクセスが有効になっていますが、以下のような構成も可能です。

  • 特定のネットワークからのアクセスのみ許可する
  • VPN や ExpressRoute と組み合わせ、社内ネットワークからのみアクセスできる社内向けWebサイトを構成する

仮想ネットワーク統合を有効にする場合は、より上位のプランが必要です。

監視とセキュリティ

  • Application Insights: アクセス数・応答時間などのアプリケーション監視を行うサービス
  • Microsoft Defender for Cloud: クラウドサービスを保護するセキュリティサービス(別途料金が発生)

6. 作成・確認

タグを設定したら「作成」をクリックします。デプロイが完了したら「リソースに移動」を選択すると、Web アプリの管理画面に遷移します。「参照」ボタンをクリックすると、インターネットに公開されたWebサイトにアクセスできることが確認できます。


デプロイ方法について

実際のコンテンツをデプロイする方法は主に以下があります。

  • GitHub / Azure Repos との連携(CD): リポジトリへのプッシュをトリガーに自動デプロイ
  • FTP: FTP資格情報を有効化してファイルをアップロード
  • Git による直接プッシュ: デプロイセンターから設定可能

一般的な構成では、GitHub などのリポジトリと連携してCDパイプラインを組み、ビルド済みアーティファクトを自動デプロイする形をとることが多いです。


デプロイスロットについて

デプロイスロットは、本番環境をダウンタイムなく更新するための機能です。ステージング用のスロットにデプロイして動作確認を行い、問題がなければ本番スロットとスワップ(入れ替え)することで安全に公開できます。

ただし、この機能は Standard プラン以上 でないと利用できません。


まとめ

Azure App Service は、Webアプリケーションをインターネット上に公開するためのPaaSサービスです。今回のポイントを整理すると以下の通りです。

  • 2層構造を理解する: App Service プラン(基盤)と App Service(Web アプリ本体)はセットで必要
  • App Service プランで性能と価格が決まる: 1つのプランで複数のアプリを動かすことも可能
  • コードかコンテナーか: デプロイ方式とランタイムスタックを用途に合わせて選択
  • CD連携が基本: GitHub Actions などと連携し、コード変更を自動デプロイする構成が一般的
  • デプロイスロット: Standard プラン以上でブルーグリーンデプロイが可能

まずは作成してみてWebサイトが公開できることを体感し、デプロイ方法やネットワーク設定などは少しずつ理解を深めていくのがおすすめです。