始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Deploy an application to App Engine
/ 50
Create an SLO and tie an alert to the SLO
/ 50
Google Cloud の Service Monitoring を使用すると、可用性、レイテンシ、カスタムのサービスレベル指標(SLI)に基づく、マイクロサービスのサービスレベル目標(SLO)を効率的に作成できます。このラボでは、Service Monitoring を使用して、可用性が 99.5% の SLO と、対応するアラートを作成します。
このラボでは、次のタスクの実行方法について学びます。
各ラボでは、新しい 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 にプリインストールされており、タブ補完がサポートされています。
出力:
出力例:
出力:
出力例:
このタスクでは、テスト アプリケーションを App Engine にデプロイします。
Service Monitoring に接続するために、基本的な Node.js アプリケーションを App Engine スタンダード環境にデプロイします。
https://github.com/haggman/HelloLoggingNodeJS.git リポジトリのクローンを作成します。このリポジトリには、テストに使用される基本的な Node.js ウェブ アプリケーションが含まれています。このアプリケーションは、講義モジュールで利用したものと同じです。
HelloLoggingNodeJS フォルダに移動し、Cloud Shell コードエディタで index.js を開きます。少し時間をかけてコードをよく読みます。
Cloud Shell コードエディタで app.yaml ファイルを表示し、nodejs のランタイム バージョンを更新します。
App Engine スタンダード環境はこのファイルを使用して、アプリケーションに必要なランタイムを定義します。
package.json ファイルを表示します。このファイルは、Node.js アプリケーションの依存関係を定義するだけでなく、App Engine がリクエストに対応するために使用する起動スクリプトも定義します。
Cloud Shell ウィンドウに戻ります。Cloud Shell が表示されない場合、[ターミナルを開く] をクリックします。
Cloud Shell ターミナルで、新しい App Engine アプリを作成します。
このコマンドは、App Engine アプリケーションを実行する新しいプロジェクトごとに一回だけ実行してください。App Engine はリージョナルなテクノロジーであるため、リージョンが切り替わります。
デプロイが完了してから、次に進みます。
プロンプトが表示されたら、「y」と入力して Enter キーを押します。
コンソールで、新しくデプロイされたアプリの URL(https://qwiklabs-gcp-****************.appspot.com)をコピーし、新しいブラウザタブで開きます。
Hello World! というレスポンスを確認します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、次のことを実行します。
Cloud Shell インターフェースの上部にある [追加] アイコンをクリックして、新しいタブを開きます。
新しいタブで、単純な bash の while ループを使用して、アプリケーションの負荷を生成します。
ループにより毎秒 10 件のリクエストが生成されます。URL は /random-error にルーティングされ、1,000 件のリクエストごとにエラーが生成されるため、エラーの発生は約 100 秒に 1 件となります。
現在、約 1,000 件のリクエストごとにエラーがスローされる App Engine アプリケーションを実行しています。99.5% を目標とする可用性 SLO と、SLO 違反の危険性がある場合に通知されるアラートを作成してみます。ここで Service Monitoring が役に立ちます。
Google Cloud コンソールのナビゲーション メニュー()を使用して、[App Engine | ダッシュボード] に移動します。実行中のサービスとそれにかかっている負荷に関する情報が表示されます。
[サーバーエラー] セクションまで下方向にスクロールします。エラーが発生していますか?発生していない場合は、数分待ってからページを更新します。数分ごとにエラーが発生していることがわかります。
ナビゲーション メニューを使用して、[Error Reporting] に移動します。
ここにもエラーが表示されています。Error Reporting については、今後のモジュールで説明します。
モニタリング ワークスペースが作成されるまでしばらくかかります。
読み込まれたら、[SLO] をクリックします。
Service Monitoring では [default] の App Engine アプリケーションがすでに表示されています。表示されていない場合は、1 分ほど待ってからページを更新します。次に、[+ サービスを定義] をクリックし、[default] を選択して送信します。
default App Engine アプリケーションをクリックして詳細を確認します。
[+ SLO を作成] をクリックして、新しい SLO ダイアログを開始します。
[可用性] 指標を選択して、評価方法は [リクエスト ベース] に設定したまま [続行] をクリックします。
表示されている SLI の詳細を少し時間をかけて調べ、[続行] をクリックします。
SLO を定義するため、[期間の種類] を [ローリング]、[期間の長さ] を「7」日に設定し、移動し続ける 7 日間の期間で SLO を計算するようにします。
[目標] を 99.5% に設定するとグラフが表示されますが、99.5 と 99.9 の差を見分けることは困難です。
赤い点線をクリックすると、グラフが拡大されて見やすくなります。
[続行] をクリックし、デフォルトの名前を確認してから [SLO を作成] をクリックして新しい SLO を送信します。
1 個の SLO の現在のステータス] セクションで新しい SLO を開き、表示された情報を調べます。3 つのタブ、[サービスレベル指標]、[エラー バジェット]、[アラートの起動] を切り替えて、それぞれを調べます。SLO が作成され、今のところ目標を達成しています。SLO 目標は 99.5% で、SLI の現在の測定値は約 99.9% を示しているので、アプリケーションはエラー バジェットの約 5 分の 1 を使用していることになり、エラー バジェットは約 80% と表示されています。エラー バジェットが予期しない速さで消費され始めたら、アラートを起動して通知されるようにするとよいでしょう。
Service Monitoring で SLO に対するアラートを作成する方法はいくつかあります。
[表示名] に「短期間のテスト」と入力します。テストを実行中で値を設定していないため、本番環境で理にかなうでしょう。
[ルックバック期間] を 10 分に、バーンレートのしきい値を 1.5 に設定します。
[次へ] をクリックします。
[通知チャンネル] の横にあるプルダウン矢印をクリックし、[通知チャンネルを管理] をクリックします。
[通知チャンネル] ページが新しいタブで開きます。
ページを下方向にスクロールし、[メール] で [新しく追加] をクリックします。
[メールチャネルを作成] ダイアログ ボックスで、[メールアドレス] フィールドに個人メールアドレスを入力し、[表示名] に表示名を入力します。
[保存] をクリックします。
[通知するユーザー] では、[通知チャンネルを管理] リンクで、通知チャンネルとしてメールアドレスを追加してから選択します。このリンクは新しいタブで開くので、メールアドレスが追加されたら一度閉じて、新しいアラートを保存します。
[通知チャンネル] をもう一度クリックし、更新アイコンをクリックして、前の手順で入力した表示名が表示されている状態にします。
使用する表示名を選択し、[OK] をクリックします。
[次へ] をクリックします。
[問題を解決するためのステップ(省略可)] をスキップして、[保存] をクリックします。
SLO ページで [サービスレベル指標] タブに戻ります。作成したアラートは赤い点線で表示されていません。
繰り返しになりますが、点線をクリックすると表示が拡大されます。ページの右上にある [自動更新] をクリックすると、グラフが自動的に更新されます。
アプリケーションを変更して、アラートをトリガーします。
Cloud Shell に戻り、エディタが表示されていなければ、[エディタを開く] ボタンをクリックして、index.js を再度開きます。
126 行目あたりにある /random-error ルートまでスクロールし、Math.random の横にある値を「1000」から「20」に変更します。
これにより、1,000 件のリクエストごとにエラーが発生するのではなく、20 件のリクエストごとにエラーが発生しなくなります。これにより、可用性は 99.9% から約 95% に低下し、アラートがトリガーされます。
テストループを実行中のタブと標準のタブが表示されています。
プロンプトが表示されたら、「y」と入力して Enter キーを押します。
再デプロイが完了したら、テストループを実行中のタブに切り替え、エラーの増加を確認します。
Service Monitoring ページに戻り、右上隅にある自動更新の横に緑色のチェックが入っていることを確認します。
SLO が開いていて、[サービスレベル指標] が表示されていることを確認します。
数分後に SLI の値がグラフに表示され、約 95% までパフォーマンスが低下していることがわかります。数分以内に、アラート通知メールを受け取ります。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
お疲れさまでした。Service Monitoring を使用して、可用性 SLO と、対応するアラートを作成できました。これで完了となります。
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Skills から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2026 Google LLC All rights reserved. Google および Google のロゴは、Google LLC の商標です。その他すべての社名および製品名は、それぞれ該当する企業の商標である可能性があります。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください