700 以上のラボとコースにアクセス

内部アプリケーション ロードバランサを使用する

ラボ 45分 universal_currency_alt クレジット: 1 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

GSP041

Google Cloud セルフペース ラボのロゴ

概要

内部アプリケーション ロードバランサは、ビジネス運営を促進する堅牢かつ安全で管理しやすい内部アプリケーションを構築するうえで不可欠です。このラボでは、仮想マシン(VM)を公共のインターネットに直接公開せずに、プライベート クラウド ネットワーク内でネットワーク トラフィックを分散し、サービスの安全性と効率性を維持する方法を学習します。

このラボでは、ごく一般的で簡潔なアーキテクチャ パターンを構築します。

  • 別の内部サービスの支援を必要とする「ウェブ階層」(一般公開ウェブサイト)。
  • 特定のタスクを実行し、複数のマシンに分散される「内部サービス階層」(素数計算ツール)。

この環境では、内部サービスの一部がビジー状態になったり、停止したりしても、ロードバランサがリクエストを正常なマシンに自動的に転送するため、システム全体がスムーズに動作し続けます。

演習内容

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

  • 内部ロードバランサを構成するコンポーネントについて学習する
  • バックエンド マシンのグループ(素数計算ツール)を作成する
  • 内部トラフィックをバックエンド マシンに転送するように内部ロードバランサを設定する
  • 別の内部マシンから内部ロードバランサをテストする
  • 内部ロードバランサを使用して内部の「素数計算ツール」サービスから結果を取得する一般公開ウェブサーバーを設定する

前提条件

  • Google Cloud Compute Engine の基本的な知識: 仮想マシン(VM)インスタンスとは何かを理解していること。
  • ネットワーキングの基本コンセプト: IP アドレスとは何かを理解していること。
  • 基本的な Unix / Linux コマンドライン: ターミナルでコマンドを入力する方法を理解していること。
  • VPC(Virtual Private Cloud)に関する知識: Google Cloud リソースがプライベート ネットワークにあることを理解していること。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して 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 のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

Cloud Shell をアクティブにする

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

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

  2. ウィンドウで次の操作を行います。

    • Cloud Shell 情報ウィンドウで操作を進めます。
    • Cloud Shell が認証情報を使用して Google Cloud API を呼び出すことを承認します。

接続した時点で認証が完了しており、プロジェクトに各自の Project_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

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

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

出力:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

リージョンとゾーンを設定する

  • このラボのプロジェクトのリージョンとゾーンを設定します。
gcloud config set compute/region {{{project_0.default_region | Region}}} gcloud config set compute/zone {{{project_0.default_zone | Zone}}}

詳しくは、リージョンとゾーンのドキュメントをご確認ください。

注: 自分のマシンで gcloud を実行する場合はセッション間で config 設定が維持されますが、Cloud Shell で実行する場合はセッションごと、または再接続するたびに設定する必要があります。

タスク 1. 仮想環境を作成する

仮想環境は、プロジェクトのソフトウェアを系統的に管理し、常に必要な特定のバージョンのツールを使用してコードが実行されるようにします。

Python 仮想環境を使用して、パッケージのインストール先をシステムとは別の場所にします。

  1. virtualenv 環境をインストールします。
sudo apt-get install -y virtualenv
  1. 仮想環境をビルドします。
python3 -m venv venv
  1. 仮想環境をアクティブにします。
source venv/bin/activate

Cloud Shell IDE で Gemini Code Assist を有効にする

Cloud Shell などの統合開発環境(IDE)で Gemini Code Assist を使用して、コードに関するガイダンスを受けたり、コードの問題を解決したりできます。使用を開始する前に、Gemini Code Assist を有効にする必要があります。

  1. Cloud Shell で、次のコマンドを使用して Gemini for Google Cloud API を有効にします。
gcloud services enable cloudaicompanion.googleapis.com
  1. Cloud Shell ツールバーの [エディタを開く] をクリックします。
注: Cloud Shell エディタを開くには、Cloud Shell ツールバーの [エディタを開く] をクリックします。必要に応じて、[エディタを開く] または [ターミナルを開く] をクリックして、Cloud Shell とコードエディタを切り替えることができます。
  1. 左側のペインで [設定] アイコンをクリックし、[設定] ビューで「Gemini Code Assist」を検索します。

  2. [Geminicodeassist: Enable] のチェックボックスがオンになっていることを確認し、[設定] を閉じます。

  3. 画面下部のステータスバーで [Cloud Code - No Project] をクリックします。

  4. 指示に従ってプラグインを承認します。プロジェクトが自動的に選択されない場合は、[Google Cloud プロジェクトを選択する] をクリックして を選択します。

  5. ステータスバーの Cloud Code ステータス メッセージに Google Cloud プロジェクト()が表示されていることを確認します。

タスク 2. バックエンド マネージド インスタンス グループを作成する

「マネージド インスタンス グループ」を使用すると、Google Cloud でサービスの同一コピーを自動的に作成して維持できます。1 つのコピーに不具合があっても、Google Cloud によって置き換えられるため、サービスの信頼性が高まります。

起動スクリプトを作成する

このスクリプトは、グループ内の新しい VM それぞれが起動時に実行する一連の手順のようなものです。ここで作成するスクリプトには、ある数字が素数か(True)素数でないか(False)を判定する Python で記述された小さなウェブサーバーが含まれます。

  1. Cloud Shell ターミナルで次のコマンドを実行して、ホーム ディレクトリに backend.sh スクリプトを作成します。
touch ~/backend.sh
  1. Cloud Shell ツールバーの上部にある [エディタを開く] アイコンをクリックします。プロンプトが表示されたら、[新しいウィンドウで開く] をクリックします。

UI でハイライト表示された [エディタを開く] アイコン

注: コードエディタ アイコンが表示されていない場合は、ナビゲーション メニュー (☰) アイコンをクリックして左側のパネルを閉じてください。

数秒後にワークスペースが表示されます。

  1. ファイル エクスプローラ ペインで backend.sh ファイルを選択します。

  2. エディタに次のスクリプトを追加します。

sudo chmod -R 777 /usr/local/sbin/ sudo cat << EOF > /usr/local/sbin/serveprimes.py import http.server def is_prime(a): return a!=1 and all(a % i for i in range(2,int(a**0.5)+1)) class myHandler(http.server.BaseHTTPRequestHandler): def do_GET(s): s.send_response(200) s.send_header("Content-type", "text/plain") s.end_headers() s.wfile.write(bytes(str(is_prime(int(s.path[1:]))).encode('utf-8'))) http.server.HTTPServer(("",80),myHandler).serve_forever() EOF nohup python3 /usr/local/sbin/serveprimes.py >/dev/null 2>&1 &
  1. [ファイル] > [保存] をクリックしてファイルを保存しますが、ファイルは閉じないでください。

  2. IDE で Gemini Code Assist を有効にした状態で、エディタで backend.sh などのファイルを開くと、ツールバーの右上隅に Gemini Code Assist: Smart Actions アイコンが表示されます。これは、Gemini Code Assist を使用できる状態であることを示しています。

    Gemini Code Assist は、AI を活用したスマート アクションをコードエディタに直接提供することで、生産性を高め、コンテキストの切り替えを減らします。次に、Gemini Code Assist を使用して、マネージド インスタンス グループ内の VM 起動スクリプトの目的と機能をチームメンバーに説明します。

  3. Gemini Code Assist: Smart Actions アイコン Gemini Code Assist: Smart Actions をクリックし、[この内容を説明] を選択します。

  4. Gemini Code Assist により、「この内容を説明」というプロンプトが事前入力されたチャットペインが開きます。Code Assist チャットのインライン テキスト ボックスで、事前入力されたプロンプトを次のプロンプトに置き換えて、[送信] をクリックします。

Cymbal AI のアプリケーション デベロッパーとして、新しいチームメンバーに backend.sh 起動スクリプトについて説明します。このスクリプトは、Python ファイル serveprimes.py に記述された小さな Python ウェブサーバーを実行するために使用されます。スクリプトの主要コンポーネントの詳細な内訳を提示し、各コマンドの機能を説明します。 改善案の提案がある場合でも、ファイルの内容は変更しないでください。

小さなウェブサーバーを実行するために使用される起動スクリプト backend.sh の詳細な説明が、Gemini Code Assist のチャットに表示されます。

インスタンス テンプレートを作成する

  1. Cloud Shell のツールバーで [ターミナルを開く] をクリックします。次のコマンドを入力して、インスタンス テンプレート primecalc を作成します。
gcloud compute instance-templates create primecalc \ --metadata-from-file startup-script=backend.sh \ --no-address --tags backend --machine-type=e2-medium

これはバックエンド VM の「設計図」です。--no-address が含まれている点に注目してください。これは、セキュリティを考慮し、これらのバックエンド VM が公共のインターネットにアクセスできないことを意味します。

ファイアウォールを開く

ポート 80 のトラフィック(標準の HTTP トラフィック)がバックエンド VM に到達できるようにするファイアウォール ルールを作成する必要があります。この作業は、内部アプリケーション ロードバランサとヘルスチェックがバックエンド VM と通信できるようにするうえで不可欠です。

  1. 次のコマンドを実行して、ポート 80 でファイアウォールを開きます。
gcloud compute firewall-rules create http --network default --allow=tcp:80 \ --source-ranges {{{project_0.startup_script.selected_cidr | IP}}} --target-tags backend

下の [進行状況を確認] をクリックして、このラボの進捗状況を確認します。

インスタンス テンプレートを作成し、ポート 80 でファイアウォールを開く

インスタンス グループを作成する

  1. 次に、以下のコマンドを実行して、backend という名前のマネージド インスタンス グループを作成します。ここでは 3 つのインスタンスを設定します。
gcloud compute instance-groups managed create backend \ --size 3 \ --template primecalc \ --zone {{{project_0.default_zone | ZONE }}}
  1. 実行が完了したら、コンソールのタブに戻ります。[Compute Engine] > [VM インスタンス] に移動します。インスタンス グループによって 3 つのバックエンド VM が作成されていることを確認します。

[インスタンス] タブページに表示された 3 つのバックエンド

これで、バックエンドがトラフィックを処理できるようになりました。

下の [進行状況を確認] をクリックして、このラボの進捗状況を確認します。

インスタンス グループを作成する

タスク 3. 内部ロードバランサをセットアップする

内部サービス専用の単一の入口を作成します。これにより、他の内部アプリケーションが、どのバックエンド VM がアクティブまたは使用可能であるかを把握していなくても、「素数計算ツール」に確実にアクセスできるようになります。

このタスクでは、内部ロードバランサを設定し、先ほど作成したインスタンス グループに接続します。

内部ロードバランサは、次の 3 つの主要な部分で構成されています。

  • 転送ルール: 他の内部サービスによるリクエストの送信先となる実際のプライベート IP アドレスで、トラフィックをバックエンド サービスに「転送」します。
  • バックエンド サービス: ロードバランサが VM インスタンスにトラフィックを分散する方法を定義します。これにはヘルスチェックも含まれます。
  • ヘルスチェック: バックエンド VM の「健全性」をモニタリングする継続的なチェックです。ロードバランサは、ヘルスチェックに合格したマシンにのみトラフィックを送信するため、サービスは常に利用可能な状態に保たれます。

次の図は、異なるゾーンの複数のバックエンド グループにある複数のインスタンスを使用して、インスタンスをロード バランシングする方法を示しています。

ロード バランシングの図

ヘルスチェックを作成する

  1. ロードバランサが正常なインスタンスにのみトラフィックを送信するようにするには、ヘルスチェックが必要です。このバックエンド サービスは HTTP サーバーであるため、次のコマンドを実行して、特定の URL パス(この場合は 2 が素数かどうかを確認するため /2 を使用)で「200 OK」を返すかどうかを確認します。
gcloud compute health-checks create http ilb-health --request-path /2

HTTP サービスが提供されるため、特定の URL パス(この場合は 2 が素数かどうかを確認するため /2 を使用)で 200 レスポンスが入力されるかどうかを確認します。

バックエンド サービスを作成する

  1. 次に、次のコマンドを実行して、prime-service という名前のバックエンド サービスを作成します。
gcloud compute backend-services create prime-service \ --load-balancing-scheme internal --region={{{project_0.default_region | REGION}}} \ --protocol tcp --health-checks ilb-health

このサービスは、ヘルスチェックをインスタンス グループに関連付けます。

インスタンス グループをバックエンド サービスに追加する

  1. 次のコマンドを実行して、バックエンド インスタンス グループを prime-service バックエンド サービスに接続します。これは、ロードバランサの管理対象となるマシンを指定します。
gcloud compute backend-services add-backend prime-service \ --instance-group backend --instance-group-zone={{{project_0.default_zone | ZONE }}} \ --region={{{project_0.default_region | REGION}}}

転送ルールを作成する

  1. 最後に、次のコマンドを実行して、prime-lb という名前で、静的 IP が の転送ルールを作成します。
gcloud compute forwarding-rules create prime-lb \ --load-balancing-scheme internal \ --ports 80 --network default \ --region={{{project_0.default_region | REGION}}} --address {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}} \ --backend-service prime-service

これで、内部「素数計算」サービス全体が設定され、内部 IP アドレス経由でクエリを実行できるようになりました。

下の [進行状況を確認] をクリックして、このラボの進捗状況を確認します。

内部ロードバランサをセットアップする。

タスク 4. ロードバランサをテストする

この手順は、内部アプリケーション ロードバランサがトラフィックをバックエンド サービスに正しく転送していることを確認するうえで不可欠です。これにより、他の内部アプリケーションが単一の安定した IP アドレスを介してサービスに確実にアクセスできるようになり、継続的な運用が保証されます。

ロードバランサをテストするには、内部アプリケーション ロードバランサと同じネットワークに新しい VM インスタンスを作成する必要があります。このネットワークには、プライベート クラウド ネットワーク内からのみアクセスできます。(この特定のネットワークの外部にある)Cloud Shell から直接アクセスすることはできません。

  1. Cloud Shell で次の gcloud コマンドを実行して、シンプルなテスト インスタンスを作成します。
gcloud compute instances create testinstance \ --machine-type=e2-standard-2 --zone {{{project_0.default_zone | ZONE }}}
  1. 次に、次のコマンドを実行して SSH で接続します。
gcloud compute ssh testinstance --zone {{{project_0.default_zone | ZONE }}}

プロンプトが表示されたら、「Y」と入力し、Enter キーを 2 回押して続行します。

ロードバランサに対してクエリを実行する

  1. テスト インスタンス内から次の curl コマンドを実行して、内部アプリケーション ロードバランサの IP アドレスに対して、いくつかの数字が素数かどうかを尋ねます。
curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/2 curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/4 curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/5

出力では、コマンドラインのすぐ横に True または False が表示されます。

出力:

user@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/2 Trueuser@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/4 Falseuser@testinstance:~$ curl {{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/5 Trueuser@testinstance:~$ exit

2 と 5 は素数、4 は素数ではないと正しく識別されます。このことから、内部アプリケーション ロードバランサが適切に機能していることがわかります。ロードバランサはリクエストを受信し、バックエンドの「素数計算」VM の 1 つに正常に転送しました。

このサービスは、2 と 5 は素数である一方、4 は素数ではないという正しいレスポンスを返しました。

  1. 次のコマンドを実行して、テスト インスタンスを終了します。
exit
  1. 不要になったため、次のコマンドを実行して削除します。
gcloud compute instances delete backend --zone={{{project_0.default_zone | zone}}}
  1. Y」と入力して削除を確定します。

タスク 5. 一般公開ウェブサーバーを作成する

次に、一般公開アプリケーション(ウェブサイトなど)で内部サービスをどのように利用するかを見てみます。

このタスクでは、内部の「素数計算ツール」サービスを(内部アプリケーション ロードバランサ経由で)使用して素数の行列を表示する、一般公開ウェブサーバーを作成します。

  1. まず、この一般公開「フロントエンド」の起動スクリプトをホーム ディレクトリに作成するには、次のコマンドを実行します。
touch ~/frontend.sh
  1. コードエディタは開いたままのはずです。開いていない場合は、シェルでコードエディタを選択して起動します。

UI でハイライト表示された [エディタを開く] ボタン

数秒後にワークスペースが開きます。

  1. ファイル エクスプローラ ペインで frontend.sh ファイルを選択します。

  2. エディタに次のスクリプトを追加します。

sudo chmod -R 777 /usr/local/sbin/ sudo cat << EOF > /usr/local/sbin/getprimes.py import urllib.request from multiprocessing.dummy import Pool as ThreadPool import http.server PREFIX="http://{{{project_0.startup_script.selected_forwarding_rule_cidr | IP}}}/" #HTTP Load Balancer def get_url(number): return urllib.request.urlopen(PREFIX+str(number)).read().decode('utf-8') class myHandler(http.server.BaseHTTPRequestHandler): def do_GET(s): s.send_response(200) s.send_header("Content-type", "text/html") s.end_headers() i = int(s.path[1:]) if (len(s.path)>1) else 1 s.wfile.write("<html><body><table>".encode('utf-8')) pool = ThreadPool(10) results = pool.map(get_url,range(i,i+100)) for x in range(0,100): if not (x % 10): s.wfile.write("<tr>".encode('utf-8')) if results[x]=="True": s.wfile.write("<td bgcolor='#00ff00'>".encode('utf-8')) else: s.wfile.write("<td bgcolor='#ff0000'>".encode('utf-8')) s.wfile.write(str(x+i).encode('utf-8')+"</td> ".encode('utf-8')) if not ((x+1) % 10): s.wfile.write("</tr>".encode('utf-8')) s.wfile.write("</table></body></html>".encode('utf-8')) http.server.HTTPServer(("",80),myHandler).serve_forever() EOF nohup python3 /usr/local/sbin/getprimes.py >/dev/null 2>&1 &
  1. [ファイル] > [保存] をクリックしてファイルを保存しますが、ファイルは閉じないでください。

    前と同様に、次に、一般公開されるウェブサーバーの起動スクリプトについて、チームメンバーに説明するよう Gemini Code Assist に指示します。

  2. main.tf ファイルを開き、IDE で Gemini Code Assist を有効にすると、エディタの右上隅に Gemini Code Assist: Smart Actions アイコンが表示されます。

  3. Gemini Code Assist: Smart Actions アイコン Gemini Code Assist: Smart Actions をクリックし、[この内容を説明] を選択します。

  4. Gemini Code Assist により、「この内容を説明」というプロンプトが事前入力されたチャットペインが開きます。Code Assist チャットのインライン テキスト ボックスで、事前入力されたプロンプトを次のプロンプトに置き換えて、[送信] をクリックします。

あなたは Cymbal AI のアプリケーション開発者だとします。新しいチームメンバーが、この起動スクリプトの理解に苦労しています。このスクリプトは、Python ファイル getprimes.py で記述された一般公開のウェブサーバーを実行するために使用されます。frontend.sh スクリプトについて詳しく説明してください。主要なコンポーネント、使用されているコマンド、スクリプト内でのコマンドの機能を分解して説明してください。 改善案の提案がある場合でも、ファイルの内容を変更しないでください。

一般公開のウェブサーバーを実行するために使用される起動スクリプト frontend.sh の詳細な説明が、Gemini Code Assist のチャットに表示されます。

フロントエンド インスタンスを作成する

  1. Cloud Shell ターミナルで次のコードを実行して、このウェブサーバーを実行する frontend という名前のインスタンスを作成します。
gcloud compute instances create frontend --zone={{{project_0.default_zone | ZONE }}} \ --metadata-from-file startup-script=frontend.sh \ --tags frontend --machine-type=e2-standard-2

フロントエンドのファイアウォールを開く

  1. これは一般公開サーバーであるため、ファイアウォールを開き、インターネット上の任意の場所(0.0.0.0/0)からのトラフィックをポート 80 で許可する必要があります。そのため、次のコマンドを実行します。
gcloud compute firewall-rules create http2 --network default --allow=tcp:80 \ --source-ranges 0.0.0.0/0 --target-tags frontend
  1. ナビゲーション メニューで、[Compute Engine] > [VM インスタンス] をクリックします。frontend インスタンスが表示されない場合は、ブラウザを更新します。

  2. ブラウザでフロントエンドの外部 IP を開きます。

選択したフロントエンドの IP アドレスが表示されている [VM インスタンス] ページ

100 までのすべての素数を緑色で示す、次のような行列が表示されます。

素数を緑色で表示する行列図

  1. http://your-ip/10000 のようにパスに数字を追加して、その数字以降のすべての素数を表示してみます。

100 以降の素数を緑色で表示する行列図

注: この起動スクリプトの例は、素数を効率的に計算しているわけではありません。また、エラー検出や修正のアルゴリズムもありません。パスに大きな数字を入力すると、サービスがタイムアウトします。

下の [進行状況を確認] をクリックして、このラボの進捗状況を確認します。

一般公開ウェブサーバーを作成する

お疲れさまでした

Gemini Code Assist を使用して Google Cloud の内部アプリケーション ロードバランサを使用する信頼性の高い内部サービスを構築し、一般公開アプリケーションでそのサービスを安全に活用する仕組みを示しました。

次のステップと詳細情報

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2025 年 8 月 22 日

ラボの最終テスト日: 2025 年 8 月 22 日

Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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