チェックポイント
TCP load balancer with regional forwarding rule
/ 100
Terraform を使用したモジュール式負荷分散 - リージョン ロードバランサ
GSP191
概要
Google Cloud の負荷分散では、他のクラウド プロバイダとは違って、ルーティング インスタンスではなく転送ルールを使用します。これらの転送ルールがバックエンド サービス、ターゲット プール、URL マップ、ターゲット プロキシと組み合わされて、複数のリージョンおよびインスタンス グループにまたがって機能するロードバランサが構成されます。
Terraform はオープンソースのインフラストラクチャ管理ツールで、モジュールを使用して簡単にロードバランサを Google Cloud にプロビジョニングできます。
目標
このラボでは、次の方法について学びます。
- Terraform の負荷分散モジュールを使用する
- リージョン TCP ロードバランサを作成する
- リージョン内部 TCP ロードバランサを作成する
- Kubernetes Engine を使用してグローバル HTTP ロードバランサを作成する
- グローバル HTTPS コンテンツ ベース ロードバランサを作成する
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、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 コンソールが開きます。
Cloud Shell をアクティブにする
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
- Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン をクリックします。
接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。
gcloud
は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
- (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
-
[承認] をクリックします。
-
出力は次のようになります。
出力:
- (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
出力:
出力例:
gcloud
ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。
Terraform モジュールの概要
このラボで使用するリポジトリには、いくつかのロードバランサ モジュールが含まれています。まずそれらのモジュールについて学習してから、リポジトリのクローンを作成してそれらを使用します。
terraform-google-lb(リージョン転送ルール)
このモジュールは、マネージド インスタンス グループのリージョン負荷分散用の TCP ネットワーク ロードバランサを作成します。マネージド インスタンス グループへの参照を指定すると、そのマネージド インスタンス グループがターゲット プールに追加され、ターゲット プールの正常なインスタンスにトラフィックを転送するためのリージョン転送ルールが作成されます。
スニペットの例:
terraform-google-lb-internal(リージョン内部転送ルール)
このモジュールは、内部リソースのリージョン負荷分散用の内部ロードバランサを作成します。マネージド インスタンス グループへの参照を指定すると、そのマネージド インスタンス グループがリージョン バックエンド サービスに追加され、正常なインスタンスにトラフィックを転送するための内部転送ルールが作成されます。
スニペットの例:
terraform-google-lb-http(グローバル HTTP(S) 転送ルール)
このモジュールは、マルチリージョンのコンテンツ ベース負荷分散用のグローバル HTTP ロードバランサを作成します。マネージド インスタンス グループへの参照と SSL 終端の証明書(オプション)を指定すると、HTTP パスに基づいて正常なインスタンスにトラフィックを転送するための http バックエンド サービス、URL マップ、HTTP(S) ターゲット プロキシ、グローバル http 転送ルールが作成されます。
スニペットの例:
それでは作業を始めましょう。
タスク 1. サンプル リポジトリのクローンを作成する
-
Cloud コンソール の右上にある Cloud Shell をアクティブにするアイコンをクリックして、新しい Cloud Shell タブを開きます。
-
以下のコマンドを実行して、terraform-google-examples リポジトリのクローンを作成します。
タスク 2. リージョン転送ルールを含む TCP ロードバランサを作成する
このラボでは、同じリージョンの 2 つのインスタンスを含むマネージド インスタンス グループと、ネットワーク TCP ロードバランサを作成します。
- まず、プロジェクト ID をエクスポートします。
terraform init
コマンドを使用して、Terraform 構成ファイルを含む作業ディレクトリを初期化します。このコマンドは、いくつかの初期化ステップを実行して、作業ディレクトリを使用できるように準備します。このコマンドは、いつでも何度でも安全に実行できます。実行すると、作業ディレクトリに構成の変更が反映されます。
-
terraform init
コマンドを実行します。
出力例:
-
terraform-google-lb/examples/basic/variables.tf
ファイルで、次のコマンドを実行してデフォルトのリージョンをラボで割り当てられたのリージョンに置き替えます。
terraform plan
コマンドを使用して実行プランを作成します。このコマンドを実行すると、明示的に無効にしない限り、実行プランが更新されます。その後、構成ファイルで指定した、インフラストラクチャを希望の状態にするのに必要な操作が確定します。このコマンドは、一連の変更を加えた実行プランで予想どおりの状態を実現できるかを、実際のリソースや状態に変更を加えずに確認するのに便利です。たとえば、変更をバージョン管理に commit する前に terraform plan
を実行すると、予想どおりに機能するかどうかを事前に確認できます。
-
terraform plan
コマンドを実行します。
- プロジェクト ID の値を入力するように求められたら、
を使用します。
terraform apply
コマンドを使用して、構成を目的の状態にするために必要な変更を適用します。terraform plan を実行した場合は、実行プランによって生成された一連の定義済みアクションを適用できます。
-
terraform apply
コマンドを実行します。
-
プロジェクト ID の値を入力するように求められたら、
を使用します。 -
次のプロンプトが表示されたら、[yes] と入力して続行します。
出力例:
数分後にインスタンスとロードバランサが使用可能になります。
-
ロードバランサのステータスは、Cloud コンソールのナビゲーション メニュー > [ネットワーク サービス] > [負荷分散] で確認できます。
-
ロードバランサの URL をブラウザで開けるようにするには、次のコマンドを実行します。
-
出力の
http://${EXTERNAL_IP}
というアドレスをクリックすると、ロードバランサへのリンクが開きます。 -
画面を何度か更新して、
リージョンで 2 つのインスタンスの間でトラフィックが分散されていることを確認してください。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
お疲れさまでした
このラボでは、負荷分散モジュールを使用する方法を学習しました。Terraform を使用して、リージョン TCP ロードバランサ、リージョン内部 TCP ロードバランサ、Kubernetes Engine を使用するグローバル HTTPS ロードバランサ、HTTPS コンテンツ ベースロードバランサをデプロイしました。
Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2023 年 12 月 7 日
ラボの最終テスト日: 2023 年 12 月 7 日
Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。