【初心者向け】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サイトが公開できることを体感し、デプロイ方法やネットワーク設定などは少しずつ理解を深めていくのがおすすめです。