チェックポイント
Import infrastructure
/ 20
Configure a remote backend
/ 10
Modify and update infrastructure
/ 20
Destroy resources
/ 10
Use a Module from the Registry
/ 20
Configure a firewall
/ 20
Build Infrastructure with Terraform on Google Cloud: チャレンジラボ
GSP345
概要
チャレンジラボでは、シナリオと一連のタスクが提供されます。手順ガイドに沿って進める形式ではなく、コース内のラボで習得したスキルを駆使して、ご自身でタスクを完了していただきます。タスクが適切に完了したかどうかは、このページに表示される自動スコアリング システムで確認できます。
チャレンジラボは、Google Cloud の新しいコンセプトについて学習するためのものではありません。デフォルト値を変更する、エラー メッセージを読み調査を行ってミスを修正するなど、習得したスキルを応用する能力が求められます。
100% のスコアを達成するには、制限時間内に全タスクを完了する必要があります。
このラボは、「Build Infrastructure with Terraform on Google Cloud」コースに登録している受講者を対象としています。準備が整ったらチャレンジを開始しましょう。
テスト対象トピック:
- 既存のインフラストラクチャを Terraform の構成にインポートする
- 独自の Terraform モジュールを構築して参照する
- リモート バックエンドを構成に追加する
- Terraform Registry にあるモジュールを使用および実装する
- インフラストラクチャの再プロビジョニング、破棄、更新を行う
- 作成したリソース間の接続をテストする
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
- ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
チャレンジ シナリオ
新興スタートアップ企業でクラウド エンジニアのインターンとして働いています。最初のプロジェクトとして新しい上司から課された仕事は、迅速かつ効率的な方法でインフラストラクチャを構築し、後で参照や変更を行えるよう、そのインフラストラクチャの追跡メカニズムを考案することでした。Terraform を使用してこのプロジェクトを完遂させるよう指示されています。
今回のプロジェクトでは、このスタートアップ企業の推奨プロバイダである Google Cloud 上で Terraform を使用して、インフラストラクチャを構築、デプロイ、追跡します。また、適切に管理されていない一部のインスタンスを構成にインポートし、修正する必要があります。
このラボで Terraform を使用してインポートおよび作成するのは、複数の VM インスタンス、2 つのサブネットワークを持つ VPC ネットワーク、2 つのインスタンス間の接続を許可するための VPC ファイアウォール ルールです。リモート バックエンドをホストするための Cloud Storage バケットも作成します。
plan
と apply
を実行してください。このラボでは、さまざまな Terraform ファイルを更新します。正しいファイルパスを使用し、適切なインデントを維持するように注意しましょう。タスク 1. 構成ファイルを作成する
- Cloud Shell で、Terraform 構成ファイルと、以下のようなディレクトリ構造を作成します。
- ルート ディレクトリと各モジュールの中にある
variables.tf
ファイルに情報を入力します。各ファイルにregion
、zone
、project_id
の 3 つの変数を追加します。デフォルト値には、、 、Google Cloud プロジェクト ID を使用します。
-
この Terraform ブロックと Google プロバイダを
main.tf
ファイルに追加します。Google プロバイダのブロックに、project 引数および region 引数とともに zone 引数が追加されていることを確認します。 -
Terraform を初期化します。
タスク 2. インフラストラクチャをインポートする
- Google Cloud コンソールのナビゲーション メニューで、[Compute Engine] > [VM インスタンス] をクリックします。tf-instance-1 および tf-instance-2 という 2 つのインスタンスがすでに作成されています。
- 既存のインスタンスを instances モジュールにインポートします。以下の手順に従ってください。
- まず、このモジュールへの参照を
main.tf
ファイルに追加して、Terraform をもう一度初期化します。 - 次に、既存のインスタンスと一致するよう、
instances.tf
ファイルにリソースの構成を記述します。- インスタンスの名前を
tf-instance-1
およびtf-instance-2
とします。 - このラボでは、リソースの構成をできる限り小さくする必要があります。このため、構成に含める追加の引数は
machine_type
、boot_disk
、network_interface
、metadata_startup_script
、allow_stopping_for_update
のみにします。最後の 2 つの引数については、以下の構成を使用すれば、自分で再度作成せずに済みます。
metadata_startup_script = <<-EOT #!/bin/bash EOT allow_stopping_for_update = true - インスタンスの名前を
- モジュール内にリソースの構成を記述したら、
terraform import
コマンドを使用して構成を instances モジュールにインポートします。
- 変更を適用します。今回は構成全体のすべての引数を入力したわけではないので、
apply
を実行するとインプレースでインスタンスが更新されます。ラボではこれで十分ですが、本番環境では必ず、すべての引数を正しく入力してからインポートを行う必要があります。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 3. リモート バックエンドを構成する
-
storage
モジュール内に Cloud Storage バケット リソースを作成します。バケットの name には、を使用します。他の引数については、以下の値をそのまま使用できます。 location = "US"
force_destroy = true
uniform_bucket_level_access = true
outputs.tf
ファイル内に出力値を追加することもできます。-
このモジュールへの参照を
main.tf
ファイルに追加します。Terraform を使用して、モジュールの初期化と変更内容のapply
を実行し、バケットを作成します。 -
main.tf
ファイル内で、このストレージ バケットを リモート バックエンド として構成します。採点が正常に行われるように、必ず prefix としてterraform/state
を使用してください。 -
構成を正しく記述していれば、
init
の実行時に、既存のステートデータを新しいバックエンドにコピーするかどうかを尋ねられます。プロンプトでyes
と入力します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 4. インフラストラクチャを変更して更新する
-
instances モジュールに移動して、インスタンス リソース tf-instance-1 がマシンタイプ
e2-standard-2
を使用するように変更します。 -
また、tf-instance-2 もマシンタイプ
e2-standard-2
を使用するように変更します。 -
3 つ目のインスタンス リソースを追加して、名前を
とします。この 3 つ目のリソースもマシンタイプ e2-standard-2
を使用します。3 つのインスタンスのマシンタイプがいずれもe2-standard-2
に変更されていることを確認してください。 -
Terraform を初期化して、
apply
を実行して変更を適用します。
outputs.tf
ファイルに、これらのリソースからの出力値を追加できます。[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 5. リソースを破棄する
- 3 つ目のインスタンス
を破棄するために、構成ファイルからそのリソースを削除します。削除したら Terraform を初期化し、 apply
を実行して変更を適用します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 6. Registry にあるモジュールを使用する
-
Terraform Registry でネットワーク モジュールに移動します。
-
このモジュールを
main.tf
ファイルに追加します。以下の構成を使用します。
- バージョン
6.0.0
を使用します(別のバージョンを使用すると互換性に関するエラーが発生する可能性があります)。 - VPC の名前を
とし、ルーティング モードとして global を使用します。 -
リージョンに 2 つのサブネットを指定し、それぞれの名前を subnet-01
とsubnet-02
にします。サブネットの引数として指定する必要があるのは、名前、IP、リージョンだけです。 -
subnet-01
には IP10.10.10.0/24
を使用し、subnet-02
には10.10.20.0/24
を使用します。 - セカンダリ範囲およびルートをこの VPC に関連付ける必要はないので、これらの構成は省略できます。
-
モジュール構成を記述したら、Terraform を初期化して
apply
を実行し、ネットワークを作成します。 -
次に、
instances.tf
ファイルに移動して、tf-instance-1 をsubnet-01
に、tf-instance-2 をsubnet-02
に接続するように構成リソースを更新します。
に更新してから、subnetwork 引数を追加して、各インスタンスの正しいサブネットを指定する必要があります。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 7. ファイアウォールを構成する
-
main.tf
ファイルでファイアウォール ルール リソースを作成し、名前を tf-firewall とします。- このファイアウォール ルールでは、ネットワーク
がすべての IP 範囲( 0.0.0.0/0
)について TCP ポート 80 を使用した内向き接続を許可するようにします。 -
source_ranges
引数を追加して、正しい IP 範囲(0.0.0.0/0
)を指定します。 - Terraform を初期化して、
apply
を実行して変更を適用します。
- このファイアウォール ルールでは、ネットワーク
network
引数を取得するには、ステートを調べて、先ほど作成したリソース google_compute_network
の ID または self_link を見つけます。projects/PROJECT_ID/global/networks/
という形式になっているはずです。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
接続テスト(省略可)
VPC を介した内部接続を許可するファイアウォール ルールを作成したら、必要に応じてネットワーク接続テストを行えます。
-
両方の VM が実行されていることを確認します。
-
[ネットワーク インテリジェンス] > [接続テスト] に移動します。2 つの VM で接続テストを実行し、両者が互いに到達可能であることを確認します。これで、インスタンス間の接続を確認できました。
作成した構成設定は以下のようになっているはずです。
お疲れさまでした
制限時間内にアーキテクチャのインポート、作成、変更、構成を完了できた方は、Terraform のスキルを十分に備えています。このラボでは、まず 2 つの構成済み VM を Terraform にインポートした後、Cloud Storage バケットを作成してバックエンドを構成しました。その後、インスタンスをもう 1 つ追加して、モジュール内のリソース構成を実際に変更して更新しました。最後に、Terraform Registry にあるモジュールを使用し、2 つのサブネットを持つ VPC を作成してインスタンスを接続し、インスタンス間の接続を許可するファイアウォール ルールを作成しました。
次のスキルバッジを獲得する
このセルフペース ラボは、「Build Infrastructure with Terraform on Google Cloud」スキルバッジ コースの一部です。このコースを完了すると成果が認められて上のようなバッジが贈られます。獲得したバッジを履歴書やソーシャル プラットフォームに記載し、#GoogleCloudBadge を使用して成果を公表しましょう。
次のステップ
Terraform のスキルを証明できた方は、HashiCorp Infrastructure Automation Certification に登録されることをおすすめします。Terraform Associate 認定試験は、運用、IT、開発を専門とし、オープンソースの HashiCorp Terraform に関する基本コンセプトとスキルを習得しているクラウド エンジニアを対象としています。試験対策としては、本番環境で Terraform を使用した業務経験があればベストですが、個人用のデモ環境で試験項目を実行することでも十分に対策できるでしょう。スキルをさらに向上させたい方や、インフラストラクチャの自動化に関する自分の能力を確認したい方は、学習ガイドと試験の復習ページを確認し、受験準備ができ次第、試験に登録することをおすすめします。ご健闘をお祈りいたします。
Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 3 月 22 日
ラボの最終テスト日: 2024 年 3 月 22 日
Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。