始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Deploy an application to App Engine
/ 50
Create an App Engine latency alert
/ 50
このラボでは、アプリケーションを App Engine にデプロイし、そのアプリケーションにアクセスできなくなった場合やエラーが生成された場合に通知するアラート ポリシーを作成します。
このラボでは、次のタスクの実行方法について学びます。
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] パネルでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] パネルでもパスワードを確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
最初のログイン手順を完了すると、プロジェクト ダッシュボードが表示されます。
Google Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。
Google Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
Google Cloud コンソールで、右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。
[続行] をクリックします。
環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続した時点で認証が完了しており、プロジェクトに各自のプロジェクト ID が設定されます。次に例を示します。
gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
出力:
出力例:
出力:
出力例:
次のコマンドを実行して Python 環境を更新します。
GitHub から Cloud Shell 環境に Google Training Data Analyst のクローンを作成します。このリポジトリには、この演習の要件に最適な、シンプルなアプリケーションが含まれています。
クローンの作成が完了したら、リポジトリの deploying-apps-to-gcp フォルダに移動します。このフォルダにサンプルアプリが含まれています。
main.py ファイルを Cloud Shell エディタで開きます。プロンプトが表示されたら、[新しいウィンドウで開く] をクリックします。少し時間をかけて、この基本的な「Hello GCP」Python Flask アプリケーションを確認します。
エディタを閉じて Cloud Shell ターミナルに戻り、右上にある [ターミナルを開く] をクリックしてターミナル ウィンドウを開きます。プログラムをテストするために、Python アプリケーションの依存関係をすべて読み込んでアプリを起動します。
プログラムが実行されていることを確認するために、Cloud Shell のツールバーにある [ウェブでプレビュー] ボタンをクリックし、[ポート 8080 でプレビュー] を選択します。
新しいブラウザタブが開いて「Hello GCP」というメッセージが表示されるはずです。
アプリケーションが機能することがわかったので App Engine にデプロイします。
Cloud Shell コードエディタに切り替えます(または再度開きます)。左側のエクスプローラ ツリーで training-data-analyst/courses/design-process/deploying-apps-to-gcp フォルダを展開します。
[File] メニューから [New File] を選択し、app.yaml という名前の新しいファイルを作成します。
作成したファイル内に次のコードを貼り付けます。
ファイルが確実に保存されるように、[File] > [Save] を選択します。
どのプロジェクトでも、App Engine アプリケーションを使用するには、まずそれを作成する必要があります。この作業は、コンソールまたは gcloud app create コマンドを使用してプロジェクトごとに 1 回だけ行います。いずれの場合も、アプリを作成するリージョンを指定する必要があります。
Cloud Shell ターミナルで次のコマンドを実行します。変更を加えるために Cloud Shell の承認を求められる場合があります。
この基本的なアプリケーションを App Engine にデプロイします。次のコマンドを実行すると、現在のディレクトリでアプリケーションが検索されます。Python アプリケーションを宣言している app.yaml ファイルが見つかると、フォルダのその他の内容がアプリケーションそのものであると見なされて、main.py がアプリケーションの開始点として使用されます。依存関係が読み込まれ、アプリケーションがパッケージ化されて、App Engine にサービスとしてデプロイされます。
アプリケーションのデプロイが完了するまで待ちます。
Google Cloud コンソール ウィンドウのナビゲーション メニュー()で、[すべてのプロダクトを表示] > [サーバーレス] > [App Engine] > [ダッシュボード] をクリックします。
ダッシュボードの右上に、デプロイされたアプリケーションのリンクが以下のように表示されます。
https://project-id.wl.r.appspot.com の形式になっています。そのリンクをクリックして、新たにデプロイされたアプリをテストします。先ほど Cloud Shell で実行したときとまったく同じように機能するはずです。
Google Cloud がサンプルデータを収集できるように、更新ボタンを数回クリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
コンソールに戻り、左側の [App Engine] の下にある [バージョン] リンクをクリックします。
[診断] 列から [ログ] を選択します。
アプリケーションが実行されるようになったので、レイテンシが異常に大きくなった場合に生成されるアラートを作成します。まず、アプリケーションの現在のレイテンシを確認します。
Google Cloud コンソールのナビゲーション メニューで [すべてのプロダクトを表示] をクリックし、[オブザーバビリティ] > [Monitoring] > [Metrics Explorer] に移動します。
[指標を選択] プルダウンをクリックし、[Active] オプションのチェックボックスをオフにします。
[指標] を [GAE Application] > [Http] > [Response latency] に設定し、[適用] をクリックします。稼働時間チェックではなく App Engine の指標であることを確認してください。稼働時間チェックはまだないため、2 つ目のオプションは機能しません。
[集計] フィールドのプルダウンをクリックし、[99 パーセンタイル] を選択します。
少し時間をかけてグラフを確認します。
データは多くはありませんが、アプリケーションの平均レスポンス タイムのグラフを表示するには十分なはずです。これは処理時間の短い 99% のリクエストの平均レスポンス タイムで、残りの 1% は異常値として切り捨てられています。
現時点のアプリケーションのパフォーマンスは想定どおりです。最初にアプリケーションを起動したときにレスポンスが遅れることがあったとしても、平均すると、レスポンス タイムは 200 ミリ秒未満になるはずです。
では、レスポンス タイムが 5 秒を上回る状態が 1 分を超えたら通知するアラートを作成しましょう。
Google Cloud コンソールのナビゲーション メニュー()で、[すべてのプロダクトを表示] > [オブザーバビリティ] > [Monitoring] > [アラート] をクリックします。
上部にある [EDIT NOTIFICATION CHANNELS] をクリックし、[Email] セクションまでスクロールします。[Add New] をクリックして、自分のメールアドレスを有効な通知チャンネルとして追加します。[Display Name] に任意の名前を入力し、[Save] をクリックします。
[アラート] のメインページに戻り、[Create Policy] をクリックします。
[指標を選択] をクリックし、[Active] オプションのチェックボックスをオフにします。先ほどと同じ Metrics Explorer のページが表示されます。[指標] を再度 [GAE Application] > [Http] > [Response latency] に設定し、[適用] をクリックします。[ローリング ウィンドウ] を [1 分] に設定し、[Next] をクリックします。
Metrics Explorer の標準ウィンドウの左下に新しい [Configuration] セクションが追加されます。
条件を設定します。[しきい値の位置] で [しきい値より上] を選択して、[しきい値] を「8000 ms」に設定します。この条件が満たされるとアラートがトリガーされます。
[条件名] を「Response latency [MEAN] for 99th% over 8s」に設定します。
少し時間をかけてアラートのグラフを確認します。先ほど Metrics Explorer で作成したのと同じグラフですが、今度は 8 秒の位置にアラートの線があります。
[Next] をクリックします。
[通知と名前] で、[通知チャンネル] を展開して自分のチェックボックスをオンにし、[OK] をクリックします(このセクションで前に作成した通知チャンネル)。
このアラートに「Hello too slow」という名前を付けて、[NEXT] をクリックします。アラートを確認し、[ポリシーを作成] をクリックします。
アプリケーション コードを更新して遅延を追加します。Cloud Shell コードエディタに戻り、左側のエクスプローラ ツリーで training-data-analyst/courses/design-process/deploying-apps-to-gcp フォルダを展開します。
main.py をクリックしてエディタで開きます。次の import ステートメントを 2 行目に追加します(一部は後ほど使用します)。
現在の main() 関数を次の内容に置き換えます。この新しいバージョンには sleep コマンドが追加されており、各リクエストの途中でコードが 10 秒間一時停止します。これはしきい値を十分上回る長さです。
次のコマンドを再実行してアプリケーションを再デプロイします。
再デプロイが完了するまで待ちます。
コマンドが完了したら、[サーバーレス] > [App Engine] > [ダッシュボード] に戻り、リンクが機能することを確認します。
一貫した負荷を生成するために、Cloud Shell で次のコマンドを入力します。
しばらく待ちます。アラートを通知するメールが数分(通常は約 5 分)後に届くはずです。メールが届いたら、Cloud Shell ターミナルに戻り、Ctrl+C キーを押して負荷テスターのループを停止します。
Google Cloud コンソールのナビゲーション メニュー()で、[すべてのプロダクトを表示] > [オブザーバビリティ] > [Monitoring] > [アラート] をクリックします。
アラートが発生してインシデントが作成されたことを確認します。
そのインシデントをクリックして詳細を表示します。
詳細ページを調べ、一番上までスクロールして [インシデントを確認する] を選択します。
[アラート] のメインページに戻って変更を確認します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
コードやスクリプトでアラート ポリシーを適用する場合は、アラートの CLI(および API)を使用すると非常に効果的です。
Cloud Shell コードエディタに戻り、左側のエクスプローラ ツリーで training-data-analyst/courses/design-process/deploying-apps-to-gcp フォルダを選択します。
[File] メニューから [New File] を選択し、ファイルに app-engine-error-percent-policy.json という名前を付けます。
500 エラーの数をレスポンスの合計数で割った値が 0.01 を超えると(500 エラーの割合が 1% を超えると)トリガーされるアラート ポリシーを作成します。作成したファイル内に次のコードを貼り付けます。
ファイルを保存します。現在のフォルダを調べて、アラート ポリシーが正しいフォルダに保存されていることを確認してください。
次のコマンドを使用してこのアラート ポリシーをデプロイします。
Google Cloud コンソールのナビゲーション メニュー()で、[オブザーバビリティ] > [Monitoring] > [アラート] をクリックします。デプロイしたアラート ポリシーが [Policies] セクションに表示されるはずです。
その「HTTP error…」ポリシーをクリックして詳細を表示します。通知チャンネルを編集して、アラートが発生するとメールが届くようにします。
ランダムなエラーを含む App Engine アプリをデプロイして、このポリシーをテストします。Cloud Shell コードエディタに戻り、左側のエクスプローラ ツリーで training-data-analyst/courses/design-process/deploying-apps-to-gcp フォルダを展開します。
main.py ファイルを Cloud Shell エディタで開きます。
現在の main() 関数を次の内容に置き換えます。この新しい関数は、先ほどの sleep コマンドの代わりに乱数ジェネレーターを使用して、約 2% の割合で 500 エラーを返します。これは、「HTTP error count…」ポリシーがトリガーされるのに十分な割合です。
次のコマンドを使用してアプリケーションを再デプロイします。
再デプロイが完了するまで待ちます。
コマンドが完了したら、[App Engine] > [ダッシュボード] に戻り、リンクが機能することを確認します。
Cloud Shell で、先ほどの負荷生成コマンドを再実行します。
約 2% の割合でエラーがランダムに表示されるはずです。コマンドを実行したままにしておきます。
Google Cloud コンソールのナビゲーション メニュー()で、[オブザーバビリティ] > [Monitoring] > [アラート] をクリックし、さらに数分待つと、アラート インシデントが発生するはずです。メールも届きます。すぐには届かないため、しばらく待つ必要があります。
メールが届き、インシデントが発生したことを確認したら、Cloud Shell に戻り、Ctrl+C キーを押してリクエストを停止します。
さらに数分待つと、インシデントが解決されて、また別のメールが届きます。
プロジェクトの削除後にメールを受信しないようにするため、通知チャンネルを削除します。「HTTP error count…」ポリシーをクリックして詳細を表示します。[EDIT] リンクをクリックし、[通知チャンネル] を展開して自分のチェックボックスをオフにします。[通知チャンネルを使用] をオフにします。変更を保存した後、[DELETE] をクリックしてこのポリシーを削除します。
稼働時間チェックのアラート ポリシーに対して前の手順を繰り返します。
この演習では、Google Cloud コンソールと CLI を使用してアラート ポリシーを作成し、テストしました。これで完了となります。
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2025 Google LLC All rights reserved. Google および Google のロゴは、Google LLC の商標です。その他すべての社名および製品名は、それぞれ該当する企業の商標である可能性があります。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください