ラボ 09a - Web Apps を実装する
ラボ概要
このラボでは、Azure Web アプリについて学習します。 外部 GitHub リポジトリに Hello World アプリケーションを表示するように Web アプリを構成する方法について学習します。 ステージング スロットを作成し、運用スロットとスワップする方法について学習します。 また、需要の変化に対応するための自動スケーリングについても学習します。
このラボでは Azure サブスクリプションが必要です。 お使いのサブスクリプションの種類により、このラボの機能が使用できるかどうかに影響する可能性があります。 リージョンを変更できますが、手順は米国東部を使って作成されています。
推定時間:20 分
ラボのシナリオ
あなたの組織は、自社の Web サイトをホストするための Azure Web アプリに関心を持っています。 この Web サイトは、現在、オンプレミスのデータ センターでホストされています。 この Web サイトは、PHP ランタイム スタックを使用して Windows サーバー上で実行されています。 ハードウェアは寿命に近づいており、間もなく交換が必要になります。 組織は、Web サイトのホストに Azure を使用して、新しいハードウェア コストを回避したいと考えています。
対話型ラボ シミュレーション
このトピックで役に立つ対話型ラボ シミュレーションがあります。 シミュレーションを使うと、同様のシナリオを自分のペースでクリックして進めることができます。 対話型シミュレーションとこのラボには違いがありますが、主要な概念の多くは同じです。 Azure サブスクリプションは必要ありません。
-
Web アプリを作成する。 Docker コンテナーを実行する Web アプリを作成します。
-
Azure Web アプリを実装する。 Azure Web アプリを作成し、デプロイを管理し、アプリをスケーリングします。
アーキテクチャの図
職務スキル
- タスク 1:Azure Web アプリを作成して構成する。
- タスク 2:デプロイ スロットを作成して構成する。
- タスク 3: Web アプリのデプロイ設定を構成する。
- タスク 4:デプロイ スロットのスワップ。
- タスク 5:Azure Web アプリの自動スケールを構成およびテストします。
タスク 1:Azure Web アプリを作成して構成する
このタスクでは、Azure Web アプリを作成します。 Azure App Service は、Web、モバイル、その他の Web ベースのアプリケーション用のサービスとしてのプラットフォーム (PAAS) ソリューションです。 Azure Web アプリは、PHP、Java、.NET などのほとんどのランタイム環境をホストする Azure App Service の一部です。 選択した App Service プランによって、Web アプリのコンピューティング、ストレージ、機能が決まります。
-
Azure portal -
https://portal.azure.com
にサインインします。 -
App services
を検索して選択します。 -
[+ 作成] を選び、ドロップダウン メニューから [Web アプリ] を選びます。 その他の選択肢に注目してください。
-
[Web アプリの作成] ブレードの [基本] タブで、次の設定を指定します (他の設定は既定値のままにします)。
設定 値 サブスクリプション お使いの Azure サブスクリプション Resource group az104-rg9
(必要に応じて、[新規作成] を選択)Web アプリの名前 グローバルに一意な任意の名前 発行 コード ランタイム スタック PHP 8.2 オペレーティング システム Linux リージョン 米国東部 価格プラン Premium V3 P1V3 ゾーン冗長性 既定値を受け入れる -
[確認と作成] をクリックし、[作成] をクリックします。
注:Web アプリの作成が完了してから、次のタスクに進みます。 これにはおよそ 1 分かかります。
注: デプロイに失敗した場合は、別のリージョンに変更して、もう一度やり直してください。 たとえば、米国東部 2 に切り替えます。
-
デプロイ後、[リソースに移動] を選択します。
タスク 2:デプロイ スロットを作成して構成する
このタスクでは、ステージング デプロイ スロットを作成します。 デプロイ スロットを使用すると、アプリを一般 (またはエンド ユーザー) に公開する前にテストを実行できます。 テストを実行したら、スロットを開発またはステージングから運用環境にスワップできます。 多くの組織が、スロットを使用して運用前テストを実行しています。 さらに、多くの組織が、アプリケーションごとに複数のスロット (開発、QA、テスト、運用など) を実行しています。
-
新しくデプロイした Web アプリのブレードで [既定のドメイン] リンクをクリックし、新しいブラウザー タブに既定の Web ページを表示します。
-
新しいブラウザー タブを閉じ、Azure portal に戻って、[Web アプリ] ブレードの [デプロイ] セクションで [デプロイ スロット] をクリックします。
注:この時点で、Web アプリには PRODUCTION というラベルが付けられたデプロイ スロットが 1 つあります。
-
[スロットの追加] をクリックし、次の設定で新しいスロットを追加します。
設定 値 名前 staging
設定の複製先 設定を複製しない -
[追加] を選択します。
-
Web アプリの [デプロイ スロット] ブレードに戻り、新しく作成されたステージング スロットを表すエントリをクリックします。
注:ステージング スロットのプロパティを表示するブレードが開きます。
-
ステージング スロット ブレードを確認し、URL が運用スロットに割り当てられているものと異なることを確認します。
タスク 3:Web アプリのデプロイ設定を構成する
このタスクでは、Web アプリのデプロイ設定を構成します。 デプロイ設定を使用すると、継続的デプロイが可能になります。 これにより、アプリ サービスにアプリケーションの最新バージョンが確実に適用されます。
-
ステージング スロットで、[デプロイ センター]、[設定] の順に選びます。
注: 運用スロットではなく、ステージング スロットのブレードであることを確認します。
-
[ソース] ドロップダウン リストで、[外部 Git] を選びます。 その他の選択肢に注目してください。
-
[リポジトリ] フィールドに「
https://github.com/Azure-Samples/php-docs-hello-world
」と入力します -
[ブランチ] フィールドに「
master
」と入力します。 -
[保存] を選択します。
-
ステージング スロットから、[概要] を選びます。
-
[既定のドメイン] リンクを選び、新しいタブでその URL を開きます。
-
ステージング スロットに Hello World が表示されていることを確認します。
注: デプロイには少し時間がかかる場合があります。 必ずアプリケーション ページを更新してください。
タスク 4:デプロイ スロットのスワップ
このタスクでは、ステージング スロットを運用スロットにスワップします。 スロットをスワップすると、ステージング スロットでテストしたコードを使用して、運用環境に移行できます。 Azure portal では、そのスロット用にカスタマイズした他のアプリケーション設定を移動する必要があるかどうかを確認するメッセージも表示されます。 スロットのスワップは、アプリケーション チームとアプリケーション サポート チーム、特にアプリの定期的な更新プログラムとバグ修正を展開するチームにとって一般的なタスクです。
-
[デプロイ スロット] ブレードに戻り、[スワップ] を選びます。
-
既定の設定を確認し、[スワップの開始] をクリックします。
-
Web アプリの [概要] ブレードで、[既定のドメイン] リンクを選び、Web サイトのホーム ページを表示します。
-
運用 Web ページに Hello World が 表示されていることを確認します。 のページを参照してください。
注: 既定のドメイン URL をコピーします。これは次のタスクのロード テストで必要になります。
タスク 5:Azure Web アプリの自動スケーリングを構成およびテストする
このタスクでは、Azure Web アプリの自動スケーリングを構成します。 自動スケーリングを使用すると、Web アプリへのトラフィックが増加した場合でも、Web アプリの最適なパフォーマンスを維持できます。 アプリをスケーリングするタイミングを判断するために、CPU 使用率、メモリ、帯域幅などのメトリックを監視できます。
-
[設定] セクションで [スケールアウト (App Service プラン)] を選びます。
注: ステージング スロットではなく運用スロットで作業していることを確認してください。
-
[スケーリング] セクションで、[自動] を選びます。 [ルール ベース] オプションに注目してください。 ルール ベースのスケーリングは、さまざまなアプリ メトリックに対して構成できます。
-
[最大バースト] フィールドで、[2] を選びます。
-
[保存] を選択します。
-
[問題の診断と解決] (左側のペイン) を選びます。
-
[アプリのロード テスト] ボックスで、[ロード テストの作成] を選びます。
- [+ 作成] を選び、ロード テストに名前を付けます。 名前は一意である必要があります。
- [確認および作成] 、 [作成] の順に選択します。
-
ロード テストの作成が完了したら、[リソースに移動] を選びます。
-
[概要] [HTTP 要求を追加する] で、[作成] を選びます。 -
[テスト計画] タブで、[要求の追加] を選択します。 [URL フィールド] に、お使いの既定のドメイン URL を貼り付けます。 正しく書式設定され、https:// で始まっていることを確認します。
-
[確認と作成]、[作成] の順に選択します。
注: テストの作成には数分かかる場合があります。
-
仮想ユーザー、応答時間、要求/秒などのテスト結果を確認します。
- [停止] を選択してテストの実行を完了します。
リソースのクリーンアップ
自分のサブスクリプションで作業している場合は、お手数ですが、ラボ リソースを削除してください。 これにより、リソースが確実に解放されるため、コストが最小限に抑えられます。 ラボ リソースを削除する最も簡単な方法は、ラボ リソース グループを削除することです。
- Azure portal で、リソース グループを選び、[リソース グループの削除]、[リソース グループ名を入力してください] の順に選び、[削除] をクリックします。
- Azure PowerShell を使用する場合は、「
Remove-AzResourceGroup -Name resourceGroupName
」と入力します。 - CLI を使用する場合は、「
az group delete --name resourceGroupName
」と入力します。
Copilot を使用して学習を拡張する
Copilot は、Azure スクリプト ツールの使用方法を学習するのに役立ちます。 Copilot は、ラボでは対象外の、またはさらに詳しい情報が必要な領域でも役立ちます。 Edge ブラウザーを開き、Copilot (右上) を選択するか、copilot.microsoft.com に移動します。 次のプロンプトを試すには数分かかります。
- Azure Web アプリと環境を作成して構成する手順をまとめてください。
- Azure Web アプリをスケーリングする方法は?
自習トレーニングでさらに学習する
- App Service のデプロイ スロットを使ってテストとロールバック用に Web アプリのデプロイをステージングする。 Azure App Service でデプロイ スロットを使い、デプロイの効率化と Web アプリのロールバックを行います。
- App Service のスケール アップとスケール アウトにより、効率的に需要に対応するために App Service Web アプリをスケーリングする。使用可能なリソースを段階的に追加することで、アクティビティの増加期間に対応し、その後アクティビティが減少したら、コストを削減するためにこれらのリソースを減らします。
要点
以上でラボは完了です。 このラボの要点は次のとおりです。
- Azure App Service を使用すると、Web アプリの構築、デプロイ、スケーリングをすばやく行える。
- App Service には、ASP.NET、Java、PHP、Python など、多くの開発者環境のサポートが含まれている。
- デプロイ スロットを使用すると、Web アプリをデプロイしてテストするための個別の環境を作成できる。
- 追加の需要に対応するために、Web アプリを手動または自動でスケーリングできる。
- さまざまな診断とテストのツールを利用できる。