ラボの設定手順と要件
アカウントと進行状況を保護します。このラボを実行するには、常にシークレット ブラウジング ウィンドウとラボの認証情報を使用してください。

Service Monitoring

ラボ 30分 universal_currency_alt クレジット: 5 show_chart 中級
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
このコンテンツはまだモバイル デバイス向けに最適化されていません。
快適にご利用いただくには、メールで送信されたリンクを使用して、デスクトップ パソコンでアクセスしてください。

概要

Google Cloud の Service Monitoring を使用すると、可用性、レイテンシ、カスタムのサービスレベル指標(SLI)に基づく、マイクロサービスのサービスレベル目標(SLO)を効率的に作成できます。このラボでは、Service Monitoring を使用して、可用性が 99.5% の SLO と、対応するアラートを作成します。

目標

このラボでは、次のタスクの実行方法について学びます。

  • テスト アプリケーションをデプロイする。
  • Service Monitoring を使用して SLO を作成する。
  • SLO にアラートを関連付ける。

設定と要件

ラボにアクセスする

各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] パネルでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] パネルでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスのリストを含むメニューを表示するには、左上のナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。ナビゲーション メニュー アイコン

Google Cloud Shell の有効化

Google Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。

Google Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールで、右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。

    ハイライト表示された Cloud Shell アイコン

  2. [続行] をクリックします。

環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続した時点で認証が完了しており、プロジェクトに各自のプロジェクト ID が設定されます。次に例を示します。

Cloud Shell ターミナルでハイライト表示されたプロジェクト ID

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  • 次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list

出力:

Credentialed accounts: - @.com (active)

出力例:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • 次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project =

出力例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注: gcloud ドキュメントの全文については、 gcloud CLI の概要ガイド をご覧ください。

タスク 1. テスト アプリケーションをデプロイする

このタスクでは、テスト アプリケーションを App Engine にデプロイします。

テスト アプリケーションを App Engine にデプロイする

Service Monitoring に接続するために、基本的な Node.js アプリケーションを App Engine スタンダード環境にデプロイします。

  1. Cloud Shell ターミナルで、https://github.com/haggman/HelloLoggingNodeJS.git リポジトリのクローンを作成します。
git clone https://github.com/haggman/HelloLoggingNodeJS.git

このリポジトリには、テストに使用される基本的な Node.js ウェブ アプリケーションが含まれています。このアプリケーションは、講義モジュールで利用したものと同じです。

  1. HelloLoggingNodeJS フォルダに移動し、Cloud Shell コードエディタで index.js を開きます。
cd HelloLoggingNodeJS edit index.js 注: 「サードパーティ Cookie が無効になっているためコードエディタを読み込めなかった」という内容のエラーが表示された場合は、[新しいウィンドウで開く] をクリックし、新しいタブに切り替えます。
  1. 少し時間をかけてコードをよく読みます。

  2. Cloud Shell コードエディタで app.yaml ファイルを表示し、nodejs のランタイム バージョンを更新します。

runtime: nodejs20

App Engine スタンダード環境はこのファイルを使用して、アプリケーションに必要なランタイムを定義します。

  1. Cloud Shell コードエディタで package.json ファイルを表示します。

このファイルは、Node.js アプリケーションの依存関係を定義するだけでなく、App Engine がリクエストに対応するために使用する起動スクリプトも定義します。

  1. Cloud Shell ウィンドウに戻ります。Cloud Shell が表示されない場合、[ターミナルを開く] をクリックします。

  2. Cloud Shell ターミナルで、新しい App Engine アプリを作成します。

gcloud app create --region={{{project_0.startup_script.app_region|REGION}}}

このコマンドは、App Engine アプリケーションを実行する新しいプロジェクトごとに一回だけ実行してください。App Engine はリージョナルなテクノロジーであるため、リージョンが切り替わります。

  1. Hello Logging アプリを App Engine にデプロイします。
gcloud app deploy

デプロイが完了してから、次に進みます。

  1. プロンプトが表示されたら、「y」と入力して Enter キーを押します。

  2. コンソールで、新しくデプロイされたアプリの URL(https://qwiklabs-gcp-****************.appspot.com)をコピーし、新しいブラウザタブで開きます。

  3. Hello World! というレスポンスを確認します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 アプリケーションを App Engine にデプロイする

タスク 2. Service Monitoring を使用して可用性 SLO を作成する

このタスクでは、次のことを実行します。

  • Service Monitoring を使用して可用性 SLO を作成する。
  • SLO に関連付けるアラートを作成する。
  • アラートをトリガーする。

アプリケーションに負荷をかける

  1. Cloud Shell インターフェースの上部にある [追加] アイコンをクリックして、新しいタブを開きます。

  2. 新しいタブで、単純な bash の while ループを使用して、アプリケーションの負荷を生成します。

while true; \ do curl -s https://$DEVSHELL_PROJECT_ID.appspot.com/random-error \ -w '\n' ;sleep .1s;done

ループにより毎秒 10 件のリクエストが生成されます。URL は /random-error にルーティングされ、1,000 件のリクエストごとにエラーが生成されるため、エラーの発生は約 100 秒に 1 件となります。

  1. Cloud Shell タブでループを実行したまま、次のステップに進みます。

Service Monitoring を使用して可用性 SLO を作成する

現在、約 1,000 件のリクエストごとにエラーがスローされる App Engine アプリケーションを実行しています。99.5% を目標とする可用性 SLO と、SLO 違反の危険性がある場合に通知されるアラートを作成してみます。ここで Service Monitoring が役に立ちます。

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン。)を使用して、[App Engine | ダッシュボード] に移動します。実行中のサービスとそれにかかっている負荷に関する情報が表示されます。

  2. [サーバーエラー] セクションまで下方向にスクロールします。エラーが発生していますか?発生していない場合は、数分待ってからページを更新します。数分ごとにエラーが発生していることがわかります。

  3. ナビゲーション メニューを使用して、[Error Reporting] に移動します。

ここにもエラーが表示されています。Error Reporting については、今後のモジュールで説明します。

  1. ナビゲーション メニューを使用して [Monitoring] に移動します。

モニタリング ワークスペースが作成されるまでしばらくかかります。

  1. 読み込まれたら、[SLO] をクリックします。

  2. Service Monitoring では [default] の App Engine アプリケーションがすでに表示されています。表示されていない場合は、1 分ほど待ってからページを更新します。次に、[+ サービスを定義] をクリックし、[default] を選択して送信します。

  3. default App Engine アプリケーションをクリックして詳細を確認します。

  4. [+ SLO を作成] をクリックして、新しい SLO ダイアログを開始します。

  5. [可用性] 指標を選択して、評価方法は [リクエスト ベース] に設定したまま [続行] をクリックします。

  6. 表示されている SLI の詳細を少し時間をかけて調べ、[続行] をクリックします。

  7. SLO を定義するため、[期間の種類] を [ローリング]、[期間の長さ] を「7」日に設定し、移動し続ける 7 日間の期間で SLO を計算するようにします。

  8. [目標] を 99.5% に設定するとグラフが表示されますが、99.5 と 99.9 の差を見分けることは困難です。

  9. 赤い点線をクリックすると、グラフが拡大されて見やすくなります。

  10. [続行] をクリックし、デフォルトの名前を確認してから [SLO を作成] をクリックして新しい SLO を送信します。

新しい SLO の調査とそれに関連付けるアラートの作成

  • [1 個の SLO の現在のステータス] セクションで新しい SLO を開き、表示された情報を調べます。3 つのタブ、[サービスレベル指標]、[エラー バジェット]、[アラートの起動] を切り替えて、それぞれを調べます。

各カテゴリーのグラフを表示する 3 つのタブが示された SLO のページ。

可用性 SLO に関連付けるアラートを作成する

SLO が作成され、今のところ目標を達成しています。SLO 目標は 99.5% で、SLI の現在の測定値は約 99.9% を示しているので、アプリケーションはエラー バジェットの約 5 分の 1 を使用していることになり、エラー バジェットは約 80% と表示されています。エラー バジェットが予期しない速さで消費され始めたら、アラートを起動して通知されるようにするとよいでしょう。

Service Monitoring で SLO に対するアラートを作成する方法はいくつかあります。

  1. ちょうど SLO インターフェースを開いているので、[アラートの起動] タブをクリックして [SLO アラートを作成] を選択します。

[アラートの起動] タブのページ。[SLO アラートを作成] ボタンがハイライト表示されています。

  1. [表示名] に「短期間のテスト」と入力します。テストを実行中で値を設定していないため、本番環境で理にかなうでしょう。

  2. [ルックバック期間] を 10 分に、バーンレートのしきい値を 1.5 に設定します。

  3. [次へ] をクリックします。

  4. [通知チャンネル] の横にあるプルダウン矢印をクリックし、[通知チャンネルを管理] をクリックします。

アラート ポリシーの作成ページ。ポップアップが表示され、[通知チャンネルを管理] ボタンがハイライト表示されています。

[通知チャンネル] ページが新しいタブで開きます。

  1. ページを下方向にスクロールし、[メール] で [新しく追加] をクリックします。

  2. [メールチャネルを作成] ダイアログ ボックスで、[メールアドレス] フィールドに個人メールアドレスを入力し、[表示名] に表示名を入力します。

  3. [保存] をクリックします。

  4. [通知するユーザー] では、[通知チャンネルを管理] リンクで、通知チャンネルとしてメールアドレスを追加してから選択します。このリンクは新しいタブで開くので、メールアドレスが追加されたら一度閉じて、新しいアラートを保存します。

  5. [通知チャンネル] をもう一度クリックし、更新アイコンをクリックして、前の手順で入力した表示名が表示されている状態にします。

  6. 使用する表示名を選択し、[OK] をクリックします。

  7. [次へ] をクリックします。

  8. [問題を解決するためのステップ(省略可)] をスキップして、[保存] をクリックします。

  9. SLO ページで [サービスレベル指標] タブに戻ります。作成したアラートは赤い点線で表示されていません。

  10. 繰り返しになりますが、点線をクリックすると表示が拡大されます。ページの右上にある [自動更新] をクリックすると、グラフが自動的に更新されます。

アラートをトリガーする

アプリケーションを変更して、アラートをトリガーします。

  1. Cloud Shell に戻り、エディタが表示されていなければ、[エディタを開く] ボタンをクリックして、index.js を再度開きます。

  2. 126 行目あたりにある /random-error ルートまでスクロールし、Math.random の横にある値を「1000」から「20」に変更します。

これにより、1,000 件のリクエストごとにエラーが発生するのではなく、20 件のリクエストごとにエラーが発生しなくなります。これにより、可用性は 99.9% から約 95% に低下し、アラートがトリガーされます。

  1. Cloud Shell コードエディタを閉じてターミナル ウィンドウに切り替えます。

テストループを実行中のタブと標準のタブが表示されています。

  1. 標準(使用中でない)タブで、App Engine に変更を再デプロイします。
gcloud app deploy
  1. プロンプトが表示されたら、「y」と入力して Enter キーを押します。

  2. 再デプロイが完了したら、テストループを実行中のタブに切り替え、エラーの増加を確認します。

  3. Service Monitoring ページに戻り、右上隅にある自動更新の横に緑色のチェックが入っていることを確認します。

  4. SLO が開いていて、[サービスレベル指標] が表示されていることを確認します。

数分後に SLI の値がグラフに表示され、約 95% までパフォーマンスが低下していることがわかります。数分以内に、アラート通知メールを受け取ります。

注: エラー バジェットが急激に低下する可能性があります。エラー バジェットは SLO 期間全体(7 日間のローリング期間)で計算されますが、アプリケーションを開始したばかりでデータセットの総量が少ないため、エラー バジェットの低下が実際よりも過大に SLO インターフェースに表示されます。

問題が解決したらエラー バジェットは急速に上昇して、実際に残っているバジェットが表示されますが、それまでに数日かかることがあります。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 SLO を作成して SLO にアラートを関連付ける

お疲れさまでした。Service Monitoring を使用して、可用性 SLO と、対応するアラートを作成できました。これで完了となります。

ラボを終了する

ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Skills から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。

Copyright 2026 Google LLC All rights reserved. Google および Google のロゴは、Google LLC の商標です。その他すべての社名および製品名は、それぞれ該当する企業の商標である可能性があります。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボを実行するには、シークレット モードまたはシークレット ブラウジング ウィンドウを使用することをおすすめします。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。