App Service プランと Web App の作成
App Service プランをプロビジョニングし、SKU レベルを理解して、継続的デプロイを使用して ZIP ファイルまたは GitHub リポジトリから Web アプリケーションをデプロイします。
「App Service プランと Web App の作成」はCoddyKit上の無料Azure Fundamentalsレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAzure Fundamentals学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Azure Fundamentalsコースには全4レッスンが含まれています。
Azure App Service とは
Azure App Serviceは、Web アプリケーション、REST API、モバイルバックエンドをホストする、完全に管理された Platform as a Service (PaaS) です。コードをデプロイすると、基盤となるインフラストラクチャの OS パッチ適用、負荷分散、自動スケーリングを Azure が処理します。App Service は .NET、Node.js、Python、Java、PHP、Ruby とカスタムコンテナーをサポートしており、Azure で最も汎用性の高いコンピューティングサービスの 1 つです。
App Service プラン: 課金単位
App Service プランは、アプリに割り当てるリージョン、OS(Windows または Linux)、コンピューティングリソース(CPU、RAM)を定義します。料金は個々のアプリではなくプランに対して発生するため、複数のアプリで同じプランを追加料金なしに共有できます。プランのSKU レベルによって、デプロイ スロット数、自動スケーリング機能、VNet 統合のサポートなどの機能が決まります。
# Create an App Service Plan (Linux, Standard S1 tier)
az appservice plan create \
--name MyAppServicePlan \
--resource-group MyRG \
--location eastus \
--sku S1 \
--is-linuxApp Service プランの SKU レベル
App Service プランには、機能とコストが段階的に増加する複数のレベルがあります。Free (F1) と Shared (D1) は共有インフラストラクチャ上で実行され、開発専用です。Basic (B1-B3) は専用コンピューティングを提供しますが、自動スケーリングとスロットには対応していません。Standard (S1-S3) では自動スケーリングと 5 つのデプロイ スロットが追加されます。Premium (P1-P3v3) は、より多くのコンピューティングリソースと VNet 統合を提供します。Isolated (I1-I3) は、専用のプライベート環境で実行されます。
# App Service Plan tiers (ordered by capability)
# Free: F1 — shared, 60 min/day compute
# Shared: D1 — shared, custom domain support
# Basic: B1, B2, B3 — dedicated, no autoscale
# Standard: S1, S2, S3 — autoscale, 5 slots
# Premium: P1v3, P2v3, P3v3 — VNet integration
# Isolated: I1v2, I2v2 — App Service Environment (ASE)Web App の作成
Web Appは、App Service プラン内でホストされる個別のアプリケーションです。各 Web App には、<appname>.azurewebsites.net 形式の一意の既定のホスト名が割り当てられます。アプリの作成時にランタイムスタック(例: NODE:18-lts または DOTNET:7.0)を指定しますが、再デプロイせずに後から変更できます。
# Create a Node.js Web App on the Linux plan
az webapp create \
--name MyUniqueWebApp \
--resource-group MyRG \
--plan MyAppServicePlan \
--runtime 'NODE:18-lts'
# Access the app
# https://MyUniqueWebApp.azurewebsites.netApp Service へのコードのデプロイ
App Service は複数のデプロイ方法をサポートしています。ZIP deployは最も簡単な方法で、アプリをパッケージ化して ZIP ファイルをプッシュします。Git deployは Git リポジトリに接続し、プッシュ時にビルドします。GitHub ActionsとAzure Pipelinesは、推奨される CI/CD 統合です。Azure Container Registry または任意のパブリックレジストリから Docker コンテナーイメージをデプロイすることもできます。
# Deploy a ZIP package
zip -r app.zip . --exclude '.git/*' --exclude 'node_modules/*'
az webapp deploy \
--name MyUniqueWebApp \
--resource-group MyRG \
--src-path app.zip
# Configure deployment from GitHub
az webapp deployment source config \
--name MyUniqueWebApp \
--resource-group MyRG \
--repo-url https://github.com/myorg/myrepo \
--branch main \
--manual-integrationアプリケーション設定と環境変数
App Service はアプリケーション設定を環境変数としてアプリコードに公開します。これは、データベース接続文字列、API キー、機能フラグなどの構成をハードコーディングせずに注入する推奨方法です。設定は保存時に暗号化され、Azure Key Vault シークレットを Key Vault 参照文字列で参照できるため、ポータルにシークレットを保存する必要がありません。
# Set application settings
az webapp config appsettings set \
--name MyUniqueWebApp \
--resource-group MyRG \
--settings \
NODE_ENV=production \
DATABASE_URL='@Microsoft.KeyVault(SecretUri=https://mykv.vault.azure.net/secrets/dburl/)'
# View current settings
az webapp config appsettings list \
--name MyUniqueWebApp \
--resource-group MyRGAlways On と正常性チェック
既定では、App Service は一定時間操作がないとアプリをアンロードします。Always On(Standard レベル以上)を有効にすると、アプリケーションを常に読み込んだ状態に保てます。これは、バックグラウンドジョブや高速なコールドスタート応答が必要な API にとって重要です。正常性チェック機能は、指定した URL に ping を送信し、正常でないインスタンスをロードバランサーから除外することで、インスタンスの自動置換を可能にします。
# Enable Always On
az webapp config set \
--name MyUniqueWebApp \
--resource-group MyRG \
--always-on true
# Configure health check endpoint
az webapp config set \
--name MyUniqueWebApp \
--resource-group MyRG \
--generic-configurations '{"healthCheckPath": "/health"}'App Service のログと診断
App Service には、アプリケーションログ(コードからの stdout/stderr)、Web サーバーログ(HTTP アクセスログ)、デプロイログの組み込みログ機能があります。Azure CLI を使用してログをリアルタイムでストリーミングしたり、Blob Storage へのログ保存を有効にしたりできます。要求のライフサイクル全体にわたる分散トレースとパフォーマンス監視には、Application Insightsを有効にします。
# Enable application logging to file system
az webapp log config \
--name MyUniqueWebApp \
--resource-group MyRG \
--application-logging filesystem \
--level information
# Tail logs in real time
az webapp log tail \
--name MyUniqueWebApp \
--resource-group MyRGApp Service の手動スケーリング
App Service はスケールアップ(より多くの CPU/RAM を備えた上位 SKU への変更)またはスケールアウト(インスタンス数の追加)が可能です。手動によるスケールアウトではインスタンス数がすぐに増加し、Basic レベル以上で利用できます。上位レベルへスケールアップすると、サービスを停止することなく、デプロイ スロットや VNet 統合などの追加機能を利用できます。SKU の変更中はアプリが短時間再起動します。
# Scale out: increase instance count to 3
az appservice plan update \
--name MyAppServicePlan \
--resource-group MyRG \
--number-of-workers 3
# Scale up: upgrade from S1 to P2v3
az appservice plan update \
--name MyAppServicePlan \
--resource-group MyRG \
--sku P2V3Azure portal での監視
App Service の概要ブレードには、要求数、応答時間、送受信データ量、エラー率のリアルタイム グラフが表示されます。問題の診断と解決ブレードでは、一般的な問題を自動検出する診断機能が実行されます。メトリックタブでは、カスタム グラフをピン留めしたり、アラート ルールを設定したりできます。Application Insightsと統合すると、アプリケーション スタック全体のエンドツーエンドの要求トレースや依存関係マップを利用できます。
# View recent HTTP metrics via CLI
az monitor metrics list \
--resource '/subscriptions/<sub>/resourceGroups/MyRG/providers/Microsoft.Web/sites/MyUniqueWebApp' \
--metric 'Requests,Http5xx,AverageResponseTime' \
--interval PT1M \
--start-time 2025-01-01T00:00:00Z \
--end-time 2025-01-01T01:00:00ZApp Service の料金戦略
リソース要件に互換性がある複数のアプリを単一のプランに統合し、開発環境やテスト環境ではFree レベルを使用し、予測可能な本番ワークロードにはAzure Reservations(1 年または 3 年契約)を適用することで、App Service のコストを最適化できます。最大 55% の節約が可能です。オートスケーリング(次のレッスンで説明します)を利用すると、負荷の低い時間帯にアイドル状態のインスタンスへ料金を支払わずに済みます。
クイック チェック
このレッスンで学んだ Microsoft Azure Fundamentals (AZ-900) の概念について、理解度を確認します。
レッスンのまとめ
このレッスンでは、App Service プランが Web アプリのコンピューティング レベルと課金単位を定義すること、ZIP、Git、または CI/CD パイプラインを使用してコードをデプロイできること、そしてアプリケーション設定によってシークレットをハードコーディングせずに環境変数として構成を設定できることを学びました。次は、ダウンタイムなしのリリースを実現するデプロイ スロットについて説明します。
よくある質問
「App Service プランと Web App の作成」レッスンは無料ですか?
はい。「App Service プランと Web App の作成」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Azure Fundamentalsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Azure Fundamentalsコースには全4レッスンが含まれています。
「App Service プランと Web App の作成」で何を学びますか?
App Service プランをプロビジョニングし、SKU レベルを理解して、継続的デプロイを使用して ZIP ファイルまたは GitHub リポジトリから Web アプリケーションをデプロイします。 ブラウザで直接実行するハンズオンコードでAzure Fundamentalsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Azure Fundamentalsを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAzure Fundamentalsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「App Service プランと Web App の作成」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAzure Fundamentalsレッスンでコードを書いて実行できますか?
はい。すべてのAzure Fundamentalsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- App Service プランと Web App の作成
- デプロイ スロットとスワップ
- 自動スケーリングとカスタム ドメイン
- App Service の認証とネットワーク