チェックポイント
Create Cloud SQL instance using Terraform script
/ 100
Cloud SQL と Terraform
GSP234
概要
このハンズオンラボでは、Terraform で Cloud SQL インスタンスを作成し、Cloud SQL Proxy を設定して、MySQL クライアントとの接続をテストする方法について学びます。
目標
このラボでは、次の作業を行います。
- Cloud SQL インスタンスを作成する
- Cloud SQL Proxy をインストールする
- Cloud Shell を使用して MySQL クライアントとの接続をテストする
設定
[ラボを開始] ボタンをクリックする前に
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、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 の概要ガイドをご覧ください。
Cloud SQL
Cloud SQL は、Google Cloud 上のリレーショナル データベースの設定、維持、運用、管理を簡単にできるようにするフルマネージド データベース サービスです。MySQL または PostgreSQL で利用できます。
タスク 1. 必要なファイルをダウンロードする
- 以下のコマンドを使ってディレクトリを作成し、必要な Terraform スクリプトを Cloud Storage バケットから取得します。
- ダウンロードしたコンテンツを展開します。
タスク 2. コードを理解する
-
main.tf
ファイルの内容を確認します。
出力例:
次に、このラボに割り当てられたプロジェクト ID とリージョンを使用するように、variables.tf
ファイルを更新します。
- Cloud Shell で [エディタを開く] をクリックします。
-
variables.tf
を開き、project
とregion
の変数の値を次のように変更します。
- project:
- region:
完了したら変更を保存します。
タスク 3. Terraform を実行する
terraform init
コマンドを使用して、Terraform 構成ファイルを含む作業ディレクトリを初期化します。
このコマンドは、いくつかの初期化ステップを実行して、作業ディレクトリを使用できるように準備します。このコマンドは、いつでも何度でも安全に実行できます。実行すると、作業ディレクトリに構成の変更が反映されます。
-
terraform init
を実行します。
terraform plan
コマンドを使用して実行プランを作成します。このコマンドは省略可能ですが、実行することをおすすめします。このコマンドを実行すると、明示的に無効にしない限り更新が行われ、構成ファイルに指定されている目的の状態を実現するために必要なアクションが特定されます。
これは、一連の変更に対する実行プランが想定どおりに行われるかどうかを、実際のリソースや状態に変更を加えることなく確認するのに便利です。たとえば、変更をバージョン管理に commit する前に terraform plan
を実行すると、予想どおりに機能するかどうかを事前に確認できます。
-
terraform plan
を実行します。
オプションの -out
引数を使用すると、生成されたプランをファイルに保存できます。保存したファイルは、後で terraform apply
を使用して実行できます。
terraform apply
コマンドを使用して、構成を目的の状態にするために必要な変更を適用します。terraform plan
を実行した場合は、実行プランによって生成された一連の定義済みアクションを適用できます。
- 作成した Terraform プランを適用します。
処理が完了するまで、少し時間がかかります。完了すると、次のような出力が表示されます。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。
タスク 4. Cloud SQL Proxy
プロキシの機能
Cloud SQL Proxy を使用すると、IP アドレスの許可リストへの登録や、SSL の構成を行わなくても、Cloud SQL の第 2 世代インスタンスに安全にアクセスできます。
Cloud SQL Proxy を使用して Cloud SQL インスタンスにアクセスする利点は以下のとおりです。
- 安全な接続: プロキシは、TLS 1.2 と 128 ビット AES 暗号を使用して、データベースとの間で送受信されるトラフィックを自動的に暗号化します。クライアントとサーバーの ID の確認には、SSL 証明書が使用されます。
- 簡単な接続管理: プロキシが Cloud SQL との認証を処理するので、静的な IP アドレスを提供する必要がなくなります。
Cloud SQL Proxy の仕組み
Cloud SQL Proxy は、プロキシと呼ばれるローカル クライアントをローカル環境で実行することによって機能します。アプリケーションは、データベースで使用されている標準のプロトコルを介してプロキシと通信します。プロキシは、セキュアなトンネルを使用して、サーバー上で実行されているコンパニオン プロセスと通信します。
次の図は、プロキシが Cloud SQL に接続する方法を示しています。
タスク 5. Cloud SQL Proxy をインストールする
- プロキシをダウンロードします。
- プロキシを実行可能にします。
プロキシは、環境の任意の場所にインストールできます。プロキシ バイナリの場所が、アプリケーションから受信するデータをリッスンする場所に影響することはありません。
プロキシの起動オプション
プロキシを起動するときに、次の情報をプロキシに提供します。
- 接続先の Cloud SQL インスタンス
- Cloud SQL へ送信するためにアプリケーションから受信するデータをリッスンする場所
- Cloud SQL に対するアプリケーションの認証に使用する認証情報を取得できる場所
指定したプロキシ スタートアップ オプションによって、TCP ポートと Unix ソケットのどちらでリッスンするのかが決まります。Unix ソケットでリッスンする場合は、選択した場所(通常は /cloudsql/
ディレクトリ)にソケットが作成されます。TCP の場合、プロキシはデフォルトで localhost
でリッスンします。
タスク 6. データベースへの接続をテストする
- まず、Cloud SQL インスタンスに対して Cloud SQL Proxy を実行します。
- 次のコマンドを実行します。
次に、プラス記号(+)のアイコンをクリックして新しい Cloud Shell タブを開きます。このシェルを使用して Cloud SQL Proxy に接続します。
-
sql-with-terraform
ディレクトリに移動します。
- 生成された MYSQL のパスワードを取得します。
- MySQL への接続をテストします。
-
プロンプトが表示されたら、上の出力で確認した
MYSQL_PASSWORD
の値を入力し、Enter キーを押します。 -
MYSQL のコマンドラインにログインできるはずです。Ctrl+D キーを押して MYSQL を終了します。
最初の Cloud Shell タブに戻ると、Cloud SQL Proxy に対する接続のログが表示されています。
タスク 7. 理解度チェック
今回のラボで学習した内容の理解を深めていただくため、以下の選択式問題を用意しました。正解を目指して頑張ってください。
お疲れさまでした
このラボでは、Terraform で Cloud SQL インスタンスを作成し、Cloud SQL Proxy を設定しました。その後、MySQL クライアントを使用して、Cloud SQL インスタンスと MySQL クライアントとの接続をテストしました。
クエストを完了する
このセルフペース ラボは、「Managing Cloud Infrastructure with Terraform」および「Cloud SQL」のクエストの一部です。クエストとは学習プログラムを構成する一連のラボのことで、完了すると成果が認められて上のようなバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。「Managing Cloud Infrastructure with Terraform」または「Cloud SQL」に登録すれば、すぐにクレジットを受け取ることができます。受講可能なすべてのクエストについては、Google Cloud Skills Boost カタログをご覧ください。
次のラボを受講する
「Using a NAT Gateway with Kubernetes Engine」に進んで学習を続けるか、以下のおすすめのラボをご確認ください。
次のステップと詳細情報
Terraform を使用して Google Cloud プロジェクトを管理する方法について読む
Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2023 年 10 月 26 日
ラボの最終テスト日: 2023 年 10 月 30 日
Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。