arrow_back

Terraform を使用した HTTPS コンテンツ ベース ロードバランサ

参加 ログイン
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Terraform を使用した HTTPS コンテンツ ベース ロードバランサ

Lab 1時間 universal_currency_alt クレジット: 5 show_chart 中級
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP206

Google Cloud セルフペース ラボ

概要

このラボでは、HTTPS ロードバランサを作成してトラフィックをカスタム URL マップに転送します。この URL マップは、Cloud Storage バケットから提供される静的アセットがある最も近いリージョンにトラフィックを送信します。TLS の鍵と証明書は、TLS プロバイダを使用して Terraform によって生成されます。

このラボで構築するアーキテクチャの図を以下に示します。

Cloud Load Balancing、3 つのインスタンス、Cloud Storage を含む Terraform のアーキテクチャ。

目標

このラボでは、次の作業を行います。

  • Terraform のロード バランシング モジュールについて学習する
  • Google Cloud 環境で Terraform を構成する
  • グローバル HTTPS コンテンツ ベース ロードバランサを作成する

設定と要件

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

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

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

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

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

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。

    • [Google コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google コンソールを開く] をクリックします。 ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、[ラボの詳細] パネルから [ユーザー名] をコピーして [ログイン] ダイアログに貼り付けます。[次へ] をクリックします。

  4. [ラボの詳細] パネルから [パスワード] をコピーして [ようこそ] ダイアログに貼り付けます。[次へ] をクリックします。

    重要: 認証情報は左側のパネルに表示されたものを使用してください。Google Cloud Skills Boost の認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  5. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後このタブで Cloud Console が開きます。

注: 左上にある [ナビゲーション メニュー] をクリックすると、Google Cloud のプロダクトやサービスのリストが含まれるメニューが表示されます。 ナビゲーション メニュー アイコン

Cloud Shell をアクティブにする

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

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

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

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

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

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

  2. 出力は次のようになります。

出力:

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

出力:

[core] project = <project_ID>

出力例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

タスク 1. サンプル リポジトリのクローンを作成する

  1. Cloud Shell で、terraform-google-lb-http リポジトリのクローンを作成します。
git clone https://github.com/GoogleCloudPlatform/terraform-google-lb-http.git
  1. multi-backend-multi-mig-bucket-https-lb ディレクトリに移動します。
cd ~/terraform-google-lb-http/examples/multi-backend-multi-mig-bucket-https-lb
  1. Cloud Shell ツールバーで [エディタを開く] アイコンをクリックします。

  2. examples/multi-backend-multi-mig-bucket-https-lb/main.tf ファイルを開きます。

  3. 133 行目で、gce-lb-https モジュール内に以下の行を追加します。

create_ssl_certificate = true managed_ssl_certificate_domains = ["example.com"]

タスク 2. Terraform を実行する

作業ディレクトリを初期化する

terraform init コマンドを使用して、Terraform 構成ファイルを含む作業ディレクトリを初期化します。このコマンドは、いくつかの初期化ステップを実行して、作業ディレクトリを使用できるように準備します。このコマンドは、いつでも何度でも安全に実行できます。実行すると、作業ディレクトリに構成の変更が反映されます。

  • 次のコマンドを実行します。
terraform init

出力例:

... Terraform has been successfully initialized!

実行プランを作成する

terraform plan コマンドを使用して実行プランを作成します。このコマンドを実行すると、明示的に無効にしない限り、実行プランが更新されます。その後、構成ファイルで指定した、インフラストラクチャを希望の状態にするのに必要な操作が確定します。

一連の変更に対する実行プランが予想どおりになっているかどうかを、実際のリソースや状態に変更を加えることなく確認するのに便利です。たとえば、変更をバージョン管理に commit する前に terraform plan を実行すると、予想どおりに機能するかどうかを事前に確認できます。

  1. 以下のコマンドを実行します。<PROJECT_ID> はラボのプロジェクト ID に置き換えてください。
terraform plan -out=tfplan -var 'project=<PROJECT_ID>'

出力例:

... Plan: 42 to add, 0 to change, 0 to destroy.

オプションの -out 引数を使用すると、生成されたプランをファイルに保存できます。保存したファイルは、後で terraform apply を使用して実行できます。

  1. 現在のディレクトリの内容を表示します。保存した Terraform プラン(tfplan)が表示されます。
ls

出力例:

diagram.png gceme.sh.tpl gcp-logo.svg main.tf mig.tf outputs.tf README.md test.sh tfplan tls.tf variables.tf

変更を適用する

terraform apply コマンドを使用して、構成を目的の状態にするために必要な変更を適用します。terraform plan を実行した場合は、実行プランによって生成された一連の定義済みアクションを適用できます。

  1. Terraform プランを適用します。
terraform apply tfplan

出力例(実際のものとは異なります):

... Apply complete! Resources: 42 added, 0 changed, 0 destroyed. ... Outputs: asset-url = https://34.96.112.153/assets/gcp-logo.svg group1_region = us-west1 group2_region = us-central1 group3_region = us-east1 load-balancer-ip = 34.96.112.153

Terraform によって作成されたリソースを確認します。

  1. ナビゲーション メニューで、[ネットワーク サービス] > [ロード バランシング] に移動します。

  2. [バックエンド] 列に緑色のチェックマークが表示されるまで待ちます。

  3. ml-bk-ml-mig-bkt-s-lb ロードバランサをクリックして詳細を確認します。

ロードバランサのフロントエンドに関するセクション。さまざまなプロトコル、ホスト、パスのルールなどに関する詳細が表示されている。

ロードバランサのバックエンドに関するセクション。バックエンド サービスとバケットのそれぞれについて、タイプ、ゾーン、容量などの項目の詳細情報が表示されている。

  1. 次のコマンドを実行して外部 URL を取得します。
EXTERNAL_IP=$(terraform output | grep load-balancer-ip | cut -d = -f2 | xargs echo -n) echo https://${EXTERNAL_IP}
  1. 返された EXTERNAL_IP のリンクをクリックして、新しいブラウザタブでロードバランサの URL を開きます。読み込みが完了するまでに数分かかります。
注: ブラウザに想定どおりの出力が表示されない場合は、ロードバランサの詳細パネルの表示内容が上のスクリーンショットと同じであることを確認して、数分待ちます。 注: プライバシー エラーが表示された場合は、[詳細] をクリックし、[続行] を選択します。

Google Cloud のロゴと、現在の地理的リージョンに最も近いグループのインスタンスの詳細が表示されます。

名前、ゾーン、マシンタイプ、内部 IP といった Google Cloud インスタンスの詳細情報。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。Terraform に変更を適用する

  1. 次に、URL の末尾に group1group2group3 をそれぞれ追加します。

最終的な URL は https://EXTERNAL_IP/group1 のようになります(EXTERNAL_IP は作成したロードバランサの IP に読み替えてください)。

  • group1 の場合: Google Cloud のロゴと、us-west1 にあるグループのインスタンスの詳細が表示されます。

出力例:

projects/958296487646/zones/us-west1-c というゾーン名の「/us-west1-c」の部分がハイライト表示されている。

https://EXTERNAL_IP/group2

  • group2 の場合: Google Cloud のロゴと、us-central1 にあるグループのインスタンスの詳細が表示されます。

出力例:

projects/958296487646/zones/us-central1-b というゾーン名の「us-central1-b」の部分がハイライト表示されている。

https://EXTERNAL_IP/group3

  • group3 の場合: Google Cloud のロゴと、us-east1 にあるグループのインスタンスの詳細が表示されます。

出力例:

projects/958296487646/zones/us-us-east1-b というゾーン名の「us-east1-b」の部分がハイライト表示されている。

お疲れさまでした

このラボでは、Terraform でロード バランシング モジュールを構成する方法を学習しました。また、モジュールを使ってグローバル HTTPS コンテンツ ベース ロードバランサを作成し、そのロードバランサが自分の地理的リージョンから最も近い場所にあるグループにレスポンスを送信できるかテストしました。

次のステップと詳細情報

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

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

マニュアルの最終更新日: 2023 年 11 月 28 日

ラボの最終テスト日: 2023 年 11 月 28 日

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