チェックポイント
Configure HTTP and health check firewall rules
/ 40
Configure instance templates and create instance groups
/ 30
Configure the Internal Load Balancer
/ 30
内部ロードバランサを作成する
GSP216
概要
Google Cloud は、TCP / UDP ベースのトラフィック用内部ロード バランシング機能を備えています。内部ロード バランシングにより、内部仮想マシン インスタンスのみにアクセス可能なプライベート ロード バランシング IP アドレスの背後でサービスを実行、スケールできます。
このラボでは、同じリージョン内に 2 つのマネージド インスタンス グループを作成し、次のネットワーク図のように、インスタンス グループをバックエンドとして使用する内部ロードバランサを構成してテストします。
目標
このラボでは、次のタスクの実施方法について学びます。
- HTTP とヘルスチェックのファイアウォール ルールを作成する
- インスタンス テンプレートを 2 つ構成する
- マネージド インスタンス グループを 2 つ作成する
- 内部ロードバランサを構成してテストする
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
- ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
ラボを開始して Google Cloud コンソールにログインする方法
-
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
- [Google Cloud コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
-
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウでリンクを開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。 -
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
{{{user_0.username | "Username"}}} [ラボの詳細] パネルでも [ユーザー名] を確認できます。
-
[次へ] をクリックします。
-
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
{{{user_0.password | "Password"}}} [ラボの詳細] パネルでも [パスワード] を確認できます。
-
[次へ] をクリックします。
重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。 -
その後次のように進みます。
- 利用規約に同意してください。
- 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
- 無料トライアルには登録しないでください。
その後、このタブで Google Cloud コンソールが開きます。
タスク 1. HTTP とヘルスチェックのファイアウォール ルールを構成する
バックエンドへの HTTP トラフィックと Google Cloud ヘルス チェッカーからの TCP トラフィックを許可するファイアウォール ルールを構成します。
my-internal-app ネットワークを調べる
RDP、SSH、ICMP トラフィック用のファイアウォール ルールが適用され、subnet-a と subnet-b を備えたネットワーク my-internal-app
があらかじめ構成されています。
-
コンソールで、ナビゲーション メニュー > [VPC ネットワーク] > [VPC ネットワーク] に移動します。
-
下にスクロールすると、subnet-a と subnet-b の 2 つのサブネットを持つ my-internal-app ネットワークがあることがわかります。
Google Cloud プロジェクトはいずれも default ネットワークで開始します。また、ネットワーク図に示されているように my-internal-app ネットワークもあらかじめ作成されています。
subnet-a と subnet-b にマネージド インスタンス グループを作成します。内部ロードバランサはリージョン サービスなので、どちらのサブネットも
リージョン内にあります。各マネージド インスタンス グループは別々のゾーンにあるため、サービスはゾーン障害の影響を免れることができます。
HTTP ファイアウォール ルールを作成する
(バックエンドに Apache をインストールするために)ロードバランサとインターネットからバックエンドへの HTTP トラフィックを許可するファイアウォール ルールを作成します。
-
[VPC ネットワーク] の左側のパネルで [ファイアウォール] をクリックします。
-
app-allow-icmp と app-allow-ssh-rdp というファイアウォール ルールが表示されているはずです。
これらはあらかじめ作成されています。
-
[ファイアウォール ルールを作成] をクリックします。
-
以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(値を入力するか、指定されたオプションを選択) 名前 app-allow-http ネットワーク my-internal-app ターゲット 指定されたターゲットタグ ターゲットタグ lb-backend ソースフィルタ IPv4 範囲 送信元 IPv4 範囲 10.10.0.0/16 プロトコルとポート [指定したプロトコルとポート] と [TCP] のチェックボックスをオンにして「80」と入力
- [作成] をクリックします。
ヘルスチェックのファイアウォール ルールを作成する
ヘルスチェックでは、ロードバランサのどのインスタンスが新しい接続を受け取れるかが判別されます。内部ロード バランシングでは、ロード バランシング インスタンスへのヘルスチェックのプローブが、範囲 130.211.0.0/22
と 35.191.0.0/16
のアドレスから送信されます。ファイアウォール ルールで、この接続を許可する必要があります。
-
[ファイアウォール ルール] ページで、[+ ファイアウォール ルールを作成] をクリックします。
-
以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(値を入力するか、指定されたオプションを選択) 名前 app-allow-health-check ネットワーク my-internal-app ターゲット 指定されたターゲットタグ ターゲットタグ lb-backend ソースフィルタ IPv4 範囲 送信元 IPv4 範囲 130.211.0.0/22 と 35.191.0.0/16 プロトコルとポート [指定したプロトコルとポート] と [TCP] のチェックボックスをオンにする
- [作成] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 2. インスタンス テンプレートを構成し、インスタンス グループを作成する
マネージド インスタンス グループは、インスタンス テンプレートを使用して同一インスタンスのグループを作成します。これらを使用して、内部ロードバランサのバックエンドを作成します。
インスタンス テンプレートを構成する
インスタンス テンプレートは、VM インスタンスとマネージド インスタンス グループの作成に使用できる API リソースです。インスタンス テンプレートが、マシンタイプ、ブートディスク イメージ、サブネット、ラベル、その他のインスタンス プロパティを定義します。my-internal-app ネットワークの 2 つのサブネットのために 1 つずつインスタンス テンプレートを作成します。
-
Google Cloud コンソールで、ナビゲーション メニュー > [Compute Engine] > [インスタンス テンプレート] に移動します。
-
[インスタンス テンプレートを作成] をクリックします。
-
[名前] に「instance-template-1」と入力します。
-
[ロケーション] で [グローバル] を選択します。
-
[シリーズ] で [E2] を選択します。
-
[マシンタイプ] で [共有コア] > [e2-micro] を選択します。
-
[詳細オプション] をクリックします。
-
[ネットワーキング] をクリックします。
-
[ネットワーク タグ] に [lb-backend] を指定します。
注: ネットワーク タグの lb-backend によって、HTTP とヘルスチェックのファイアウォール ルールがこれらのインスタンスに確実に適用されます。 -
[ネットワーク インターフェース] でプルダウン アイコンをクリックして編集モードにします。
-
以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(値を入力するか、指定されたオプションを選択) ネットワーク my-internal-app サブネットワーク subnet-a 外部 IPv4 アドレス なし -
[完了] をクリックします。
-
[管理] をクリックします。
-
[メタデータ] で [項目を追加] をクリックし、次の値を指定します。
キー 1 値 1 startup-script-url gs://cloud-training/gcpnet/ilb/startup.sh
- [作成] をクリックします。
- インスタンス テンプレートの作成が完了するまで待ちます。
次のインスタンス テンプレートを構成する
instance-template-1 をコピーして、subnet-b 用にもう 1 つのインスタンス テンプレートを作成します。
- [インスタンス テンプレート] で [instance-template-1] の横にあるチェックボックスをオンにしてから、[コピー] をクリックします。必ず名前を「instance-template-2」に更新してください。
- [詳細オプション] をクリックします。
- [ネットワーキング] タブをクリックします。
- [ネットワーク インターフェース] でプルダウン アイコンをクリックして編集モードにします。
- [サブネットワーク] で [subnet-b] を選択します。
- [完了]、[作成] の順にクリックします。
マネージド インスタンス グループを作成する
マネージド インスタンス グループを subnet-a と subnet-b にそれぞれ作成します。
us-west2-a
の場合、subnet-b には us-west2-b
を選択できます。-
[Compute Engine] の左側のパネルで、[インスタンス グループ]、[インスタンス グループを作成] の順にクリックします。
-
以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(値を入力するか、指定されたオプションを選択) 名前 instance-group-1 インスタンス テンプレート instance-template-1 ロケーション シングルゾーン リージョン ゾーン [自動スケーリング] > [インスタンスの最小数] 1 [自動スケーリング] > [インスタンスの最大数] 5 [自動スケーリング] > [自動スケーリング シグナル](プルダウン アイコンをクリックして編集)> [シグナルタイプ] CPU 使用率 CPU 使用率の目標値 80 初期化期間 45
-
[作成] をクリックします。
subnet-a と同じリージョンの別のゾーンで、instance-group-2 に同じ手順を繰り返します。
-
[インスタンス グループを作成] をクリックします。
-
以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(値を入力するか、指定されたオプションを選択) 名前 instance-group-2 インスタンス テンプレート instance-template-2 ロケーション シングルゾーン リージョン ゾーン ゾーン(subnet-a と同じリージョン内の別のゾーンを使用) [自動スケーリング] > [インスタンスの最小数] 1 [自動スケーリング] > [インスタンスの最大数] 5 [自動スケーリング] > [自動スケーリング シグナル](プルダウン アイコンをクリックして編集)> [シグナルタイプ] CPU 使用率 CPU 使用率の目標値 80 初期化期間 45 -
[作成] をクリックします。
バックエンドを確認する
VM インスタンスが両方のサブネットで作成されていることを確認したら、バックエンドの HTTP サイトにアクセスするためのユーティリティ VM を作成します。
-
[Compute Engine] で [VM インスタンス] をクリックします。
-
instance-group-1
とinstance-group-2
から始まる 2 つのインスタンスが存在します。これらのインスタンスは別個のゾーンにあり、それぞれの内部 IP アドレスは subnet-a と subnet-b の CIDR ブロックに含まれています。
-
[インスタンスを作成] をクリックします。
-
以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(値を入力するか、指定されたオプションを選択) 名前 utility-vm リージョン ゾーン シリーズ E2 マシンタイプ [共有コア] > [e2-micro(1 個の共有 vCPU)] -
[詳細オプション] をクリックします。
-
[ネットワーキング] をクリックします。
-
[ネットワーク インターフェース] でプルダウン アイコンをクリックして編集モードにします。
-
以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(値を入力するか、指定されたオプションを選択) ネットワーク my-internal-app サブネットワーク subnet-a プライマリ内部 IPv4 アドレス エフェメラル(カスタム) カスタムのエフェメラル IP アドレス 10.10.20.50 -
[完了]、[作成] の順にクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
- バックエンド サーバーの内部 IP アドレスはそれぞれ
10.10.20.2
と10.10.30.2
です。
- utility-vm で [SSH] をクリックし、ターミナルを起動して接続します。
-
instance-group-1-xxxx
のスタートページを確認するには、次のコマンドを実行します。
出力は次のようになります。
-
instance-group-2-xxxx
のスタートページを確認するには、次のコマンドを実行します。
出力は次のようになります。
- utility-vm の SSH ターミナルを閉じます。
タスク 3. 内部ロードバランサを構成する
以下の図に示すように、2 つのバックエンド(instance-group-1 と instance-group-2)間でトラフィックが分散されるように内部ロードバランサを構成します。
構成を開始する
- ナビゲーション メニューで [すべてのプロダクトを表示] を選択します。[ネットワーク] で [ネットワーク サービス] を選択します。
- [ロード バランシング] ページを選択します。
- [ロードバランサを作成] をクリックします。
- [ロードバランサのタイプ] で、[ネットワーク ロードバランサ(TCP / UDP / SSL)] を選択します。
- [プロキシまたはパススルー] で、[パススルー ロードバランサ] を選択します。
- [インターネット接続または内部] で、[内部] を選択します。
- [構成] をクリックします。
- [名前] に「
my-ilb
」と入力します。 - [リージョン] で
を選択します。 - [ネットワーク] で、[my-internal-app] を選択します。
リージョン バックエンド サービスを構成する
バックエンド サービスはインスタンス グループをモニタリングし、設定使用量からの超過を防止します。
-
[バックエンドの構成] をクリックします。
-
以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(指定されたオプションを選択) インスタンス グループ instance-group-1 -
[バックエンドを追加] をクリックします。
-
[インスタンス グループ] で [instance-group-2] を選択します。
-
[ヘルスチェック] で [ヘルスチェックを作成] を選択します。
-
以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(指定されたオプションを選択) 名前 my-ilb-health-check プロトコル TCP ポート 80
- [保存] をクリックします。
- Google Cloud コンソールの [バックエンドの構成] の横に青いチェックマークが表示されていることを確認します。表示されていない場合には、上のすべてのステップが完了していることを再度確認してください。
フロントエンドを構成する
フロントエンドはバックエンドにトラフィックを転送します。
-
[フロントエンドの構成] をクリックします。
-
以下のように設定します。その他の値はデフォルト値のままにしてください。
プロパティ 値(値を入力するか、指定されたオプションを選択) サブネットワーク subnet-b 内部 IP [IP アドレス] で [IP アドレスを作成] を選択 -
以下のように設定します。その他の値はデフォルト値のままにしてください。
プロパティ 値(値を入力するか、指定されたオプションを選択) 名前 my-ilb-ip 静的 IP アドレス ユーザー指定 カスタム IP アドレス 10.10.30.5 -
[予約] をクリックします。
-
[ポート番号] に「
80
」と入力します。 -
[完了] をクリックします。
内部ロードバランサを確認して作成する
-
[確認と完了] をクリックします。
-
[バックエンド] と [フロントエンド] を確認します。
-
[作成] をクリックします。 ロードバランサが作成されるのを待ってから、次のタスクに進みます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 4. 内部ロードバランサをテストする
my-ilb
の IP アドレスがトラフィックを instance-group-1 と instance-group-2 に転送することを確認します。
内部ロードバランサにアクセスする
- Google Cloud コンソールで、ナビゲーション メニュー > [Compute Engine] > [VM インスタンス] に移動します。
- utility-vm で [SSH] をクリックし、ターミナルを起動して接続します。
- 内部ロードバランサがトラフィックを転送することを確認するには、次のコマンドを実行します。
出力は次のようになります。
- 同じコマンドをさらに数回実行します。
出力で、
お疲れさまでした
このラボでは、
次のステップと詳細情報
ロード バランシングの基本概念については、Google Cloud Load Balancing のドキュメントをご確認ください。
Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 10 月 2 日
ラボの最終テスト日: 2024 年 10 月 2 日
Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。