始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create a GCS bucket
/ 25
Create an instance template
/ 25
Create an instance group
/ 25
Configure autoscaling for the instance group
/ 25
Compute Engine マネージド インスタンス グループ(MIG)で自動スケーリングを使用すると、容量がユーザーの需要に自動的に一致するため、アプリケーションの信頼性と費用対効果が向上します。
このラボでは、指標ベースの自動スケーリング マネージド インスタンス グループを実装し、Monitoring を使用してアプリケーションが容量を自己管理していることを確認します。
このラボでは、次のタスクの実行方法について学びます。
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] ペインでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] ペインでもパスワードを確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン をクリックします。
ウィンドウで次の操作を行います。
接続した時点で認証が完了しており、プロジェクトに各自の Project_ID、
gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
出力:
出力:
gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。
インスタンス テンプレートには、作成する新しい VM ごとに必要なアプリケーションとスクリプトをインストールする方法が必要です。Cloud Storage は、新しいインスタンスの起動時に実行される起動スクリプト(startup.sh)のアクセス可能な安定したソースとして機能します。
このラボで使用するサンプル アプリケーションの起動スクリプトとアプリケーション ファイルのコピーを作成します。サンプル アプリケーションは、カスタム指標に一定パターンのデータを push します。カスタム指標は、自動スケーリング動作を制御する指標として構成できます。
Cloud コンソールで、ナビゲーション メニューの [Cloud Storage] > [バケット] を選択し、[作成] をクリックします。
一意の名前をバケットに指定します。別のプロジェクトで使用する可能性がある名前は指定しないでください。バケットの命名方法の詳細については、バケットの命名ガイドラインをご覧ください。バケット名には、プロジェクト ID と「bucket」を組み合わせたものを使用できます。このバケットは、ラボ全体で YOUR_BUCKET と表記されます。
デフォルト値をそのまま使用して、[作成] をクリックします。
プロンプトが表示されたら、[公開アクセスの防止] と表示されるポップアップで [確認] をクリックします。
バケットが作成されると、[バケットの詳細] ページが開きます。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。Cloud Storage バケットが正常に作成されている場合は、評価スコアが表示されます。
<YOUR BUCKET> は、先ほど作成したバケットの名前に置き換えます。Startup.sh - Compute Engine インスタンスをマネージド インスタンス グループに追加する際に、必要なコンポーネントを各インスタンスにインストールするシェル スクリプト。writeToCustomMetric.js - スケーリングのトリガーとなる値を持つカスタム モニタリング指標を生成する Node.js スニペット。本番環境では、これは実際のアプリケーション コードになります。報告される値(appdemo_queue_depth_01)は、キュー内の保留中のメッセージの数、開いているデータベース接続の数、バッチ処理のバックログの長さなどの重要なビジネス指標になります。Config.json - カスタム モニタリング指標の値を指定する Node.js 構成ファイル。writeToCustomMetric.js で使用されます。Package.json - writeToCustomMetric.js の標準インストールや依存関係を指定する Node.js パッケージ ファイル。writeToCustomMetric.sh - writeToCustomMetric.js プログラムを各 Compute Engine インスタンス上で継続的に実行するシェル スクリプト。これは、グループ内のすべての VM のブループリントです。自動スケーリングは、インスタンスを破棄して作成することで機能するため、インスタンスの再構築方法を正確に把握する必要があります。テンプレートでは、マシンタイプ、OS イメージ、Cloud Storage バケット内の startup.sh スクリプトを指すメタデータ(最も重要)が定義されます。
Cloud コンソールで、ナビゲーション メニュー > [Compute Engine] > [インスタンス テンプレート] をクリックします。
ページの上部にある [インスタンス テンプレートを作成] をクリックします。
インスタンス テンプレートに autoscaling-instance01 という名前を付けます。
[ロケーション] を [グローバル] に設定します。
下にスクロールし、[詳細オプション] をクリックします。
[管理] タブの [メタデータ] セクションで、メタデータのキーと値を入力し、[+ 項目を追加] ボタンをクリックして各項目を追加します。必ず、[YOUR_BUCKET_NAME] プレースホルダを目的のバケット名に置き換えてください。
| キー | 値 |
|---|---|
| startup-script-url | gs://[YOUR_BUCKET_NAME]/startup.sh |
| gcs-bucket | gs://[YOUR_BUCKET_NAME] |
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。インスタンス テンプレートが正常に作成された場合は、評価スコアが表示されます。
インスタンス グループは、VM のフリートのコンテナとコントローラとして機能します。自動スケーリング モードは、環境を制御し、自動スケーリングを有効にする前に最初のインスタンスがカスタム指標スクリプトを正常に実行していることを確認するために、最初は [オフ] に設定されています。
左側のペインで [インスタンス グループ] をクリックします。
ページ上部にある [インスタンス グループの作成] をクリックします。
名前は autoscaling-instance-group-1 にします。
[インスタンス テンプレート] には、作成したインスタンス テンプレートを選択します。
[ロケーション] には [シングルゾーン] を選択し、リージョンとゾーンにはそれぞれ
[自動スケーリング モード] を [オフ: 自動スケーリングを行いません] に設定します。
自動スケーリングの設定は、インスタンス グループが作成された後に編集します。他の設定はデフォルト値のままにします。
自動スケーリングはオフになっています。グループ内のインスタンスの数は自動的に変更されません。自動スケーリングの構成が維持されます。」という警告は無視してかまいません。完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。インスタンス グループが正常に作成された場合は、評価スコアが表示されます。
作成した新しいインスタンス グループの横に緑色のチェックマークが表示されるまで待ちます。起動スクリプトのインストールが完了して値の送信が開始されるまで、数分かかる場合があります。
単一のテスト インスタンスが writeToCustomMetric.js スクリプトを正常に実行し、データが Cloud Monitoring に流れていることを確認する必要があります。指標データが報告されない場合、オートスケーラーは反応できません。VM ログで nodeapp: available を確認すると、このデータ パイプラインが動作していることがわかります。
時間がかかりすぎていると思われる場合は、[更新] をクリックしてください。
引き続き [インスタンス グループ] ウィンドウで、autoscaling-instance-group-1 の名前をクリックして、グループで実行されているインスタンスを表示します。
下にスクロールし、インスタンス名をクリックします。自動スケーリングによるインスタンスの追加は開始されていないため、実行されているインスタンスは 1 つだけです。
[詳細] タブの [ログ] セクションで、[ロギング] のリンクをクリックして、VM インスタンスのログを表示します。
一定のデータが収集されるまで数分待ちます。[クエリを表示] を有効に切り替えると、[クエリ] プレビュー ボックスに resource.type と resource.labels.instance_id が表示されます。
"nodeapp" を追加します。次のようなコードになります。Node.js スクリプトが Compute Engine インスタンスで実行されている場合は、API にリクエストが送信され、nodeapp: available というログエントリが表示されます。
カスタム指標が最初のインスタンスからデータを正常に送信していることを確認した後、カスタム指標の値に基づいて自動スケーリングを行うようにインスタンス グループを構成できます。
Cloud コンソールで、[Compute Engine] > [インスタンス グループ] に移動します。
autoscaling-instance-group-1 グループをクリックします。
[編集] をクリックします。
[自動スケーリング] の [自動スケーリング モード] を [オン: グループに対してインスタンスを追加および削除します] に設定します。
[インスタンスの最小数] を 1 に、[インスタンスの最大数] を 3 に設定します。こうすることで、費用とパフォーマンスの保証の下限と上限が定義されます。少なくとも 1 つのインスタンスの料金を支払う必要があります。また、3 つを超えるインスタンスにスケールアップすることはないため、費用の発生を抑制できます。
[自動スケーリング シグナル] で [シグナルを追加] をクリックし、指標を編集します。以下のフィールドを設定します。その他のフィールドはデフォルト値のままにします。
Cloud Monitoring metric new にします。[構成] をクリックします。150 にします。カスタム モニタリング指標値が [ターゲット] の値と異なる場合は、オートスケーラーによってマネージド インスタンス グループがスケーリングされ、インスタンス数が増減されます。ターゲット値には任意の double 値を指定できますが、このラボでは、カスタム モニタリング指標によって送信される値と一致する値である 150 を使用しています。
ゲージにします。[選択] をクリックします。ゲージ: すべてのインスタンスにおける指標の現在の平均値に基づいてスケールします(「キューの深さの平均は 200 で、目標の 150 を超えているため、別のマシンが必要です」)。これは、キューの深さや CPU 使用率などの指標に適しています(これに対し、[ターゲット モード] を [DELTA_PER_MINUTE] または [DELTA_PER_SECOND] に設定すると、平均値ではなく、観測された変化率に基づいて自動スケーリングが行われます)。
[保存] をクリックします。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。インスタンス グループの自動スケーリングが正常に設定された場合は、評価スコアが表示されます。
Node.js スクリプトは、各インスタンスから送信するカスタム指標値を時間の経過とともに変更します。指標の値が上がると、インスタンス グループは VM を追加することによってスケールアップします。値が下がると、インスタンス グループはこれを検出し、VM を削除してスケールダウンします。スクリプトは値が同様に上下に変動する実際の指標をエミュレートします。
次に、[モニタリング] タブをクリックして [自動スケーリングされたサイズ] グラフを表示して、指標に応じてどのようにインスタンス グループがスケールしているかを確認します。
builtin-igm インスタンス グループをクリックします。このグループは先行して開始されているため、自動スケーリング グラフでインスタンス グループに関する自動スケーリングの詳細を確認できます。オートスケーラーがカスタム指標を正しく認識するまで約 5 分かかり、自動スケーリングの動作をトリガーするのに十分なデータをスクリプトが生成するまで最大 10~15 分かかることがあります。
グラフにカーソルを合わせると、詳細が表示されます。
作成したインスタンス グループに戻ると、その動作を確認できます(インスタンス グループの自動スケーリングを確認するには、ラボの時間が十分に残っていない場合があります)。
ラボの時間が残っていれば、インスタンスの追加および削除に合わせて自動スケーリングのグラフが上下していることを確認してください。
この自動スケーリングの例を読み、自動スケーリングされたインスタンスの容量と数が大規模な環境ではどのように動作するかを確認します。
上のグラフに示されるインスタンス数は、下のグラフに示されるカスタム指標プロパティの値の総合的な変動に応じて変化します。各インスタンスが起動してからカスタム指標値の送信が始まるまで、最大 5 分のわずかな遅れがあります。作成したインスタンス グループで自動スケーリングが開始されるまでの間、このグラフで、何が起こるのかを確認しておきましょう。
このスクリプトは、スケールアップ動作をトリガーするために、最初は約 15 分間高い値を生成します。
これで完了です。このラボでは、Cloud Monitoring のカスタム指標の値に基づいて自動スケーリングする、Compute Engine マネージド インスタンス グループを作成しました。また、Cloud コンソールを使用してカスタム指標とインスタンス グループのサイズを可視化する方法も学びました。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2025 年 10 月 23 日
ラボの最終テスト日: 2024 年 7 月 25 日
Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください