arrow_back

Cloud SQL の実装

ログイン 参加
700 以上のラボとコースにアクセス

Cloud SQL の実装

ラボ 1時間 30分 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

概要

このラボでは、Cloud SQL サーバーを構成し、プロキシを介して外部接続でこのサーバーにアプリケーションを接続する方法について学びます。また、パフォーマンスとセキュリティのメリットが得られるプライベート IP リンクによる接続も構成します。このラボのデモでは Wordpress アプリを使用しますが、ここで紹介する情報とおすすめの方法は、SQL Server を必要とするどのアプリケーションにも適用できます。

このラボの終了時には、次の図に示すように Wordpress フロントエンドの 2 つの正常に動作するインスタンスが 2 つの異なる接続タイプを介して SQL インスタンス バックエンドに接続されます。

SQL ラボの図

目標

このラボでは、次のタスクの実行方法について学びます。

  • Cloud SQL データベースを作成する
  • プロキシを実行するよう仮想マシンを構成する
  • アプリケーションと Cloud SQL の間の接続を作成する
  • プライベート IP アドレスを使用して Cloud SQL にアプリケーションを接続する

設定と要件

各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。

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

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

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

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

    {{{user_0.username | "Username"}}}

    [ラボの詳細] パネルでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] パネルでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

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

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスのリストを含むメニューを表示するには、左上のナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。ナビゲーション メニュー アイコン

タスク 1. Cloud SQL データベースを作成する

このタスクでは、Google Cloud のおすすめの方法に沿って SQL サーバーを構成し、プライベート IP 接続を作成します。

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[SQL] をクリックします。
注: Gemini in Databases を探索するためのポップアップが表示された場合は、[閉じる] をクリックします。
  1. [インスタンスを作成] をクリックします。
  2. [MySQL を選択] をクリックします。
  3. 次のように指定し、残りの設定はデフォルトのままにします。
プロパティ
インスタンス ID wordpress-db
root パスワード パスワードを入力
Cloud SQL のエディションの選択 Enterprise
リージョン
ゾーン 任意
データベースのバージョン MySQL 5.7
注: root パスワードをメモしておきます。これは後の手順で [ROOT_PASSWORD] という名前で参照されます。
  1. [構成オプションを表示] を開きます。

  2. [マシンの構成] セクションを開きます。

  3. 最適な vCPU 数とメモリ容量をプロビジョニングします。[マシンの構成] を選択するには、プルダウン メニューをクリックして目的のオプションを探します。

注: 次のような点に注意します。

  • 共有コアマシンは、プロトタイピングに適していますが、Cloud SLA の対象ではありません。
  • 各 vCPU には、ピーク パフォーマンス時に 250 MB/秒のネットワーク スループットという上限があります。コア数を増やすとネットワークの上限値が大きくなります(理論的には最大で 2,000 MB/秒が可能)。
  • オンライン トランザクション処理(OLTP)などのパフォーマンス重視のワークロードの場合、一般的なガイドラインとしては、ワーキング セット全体とアクティブな接続の数に対応できる十分なメモリをインスタンスに確保する必要があります。
    1. このラボでは、プルダウン メニューから [専用コア] を選び、[1 vCPU、3.75 GB] を選択します。

    2. [ストレージ] を開き、[ストレージの種類] と [ストレージ容量] を選択します。

    注: 次のような点に注意します。

  • ほとんどのユースケースで、SSD(ソリッド ステート ドライブ)が最適です。HDD(ハードディスク ドライブ)はパフォーマンスが劣りますが、ストレージ料金が大幅に抑えられるため、アクセス頻度が低く、非常に低いレイテンシを必要としないデータの保存に向いています。
  • ストレージ容量とそのスループットには直接的な相関関係があります。
    1. 容量の各オプションをクリックして、スループットに与える影響を確認してください。オプションを 10 GB に再設定します。
    注: ストレージの自動増量を有効にせずに、ストレージ容量を小さく設定しすぎると、インスタンスの SLA を満たせない可能性があります。
    1. [接続] セクションを開きます。

    2. [プライベート IP] を選択します。

    3. [ネットワーク] プルダウンで [default] を選択します。

    4. 表示された [接続を設定] をクリックします。

    5. 右側のパネルで [API を有効にする]、[自動的に割り当てられた IP 範囲を使用する]、[続行] の順にクリックし、[接続を作成] をクリックします。

    6. ページ下部の [インスタンスを作成] をクリックしてデータベース インスタンスを作成します。

    注: プライベート IP の変更が反映されて [インスタンスを作成] ボタンがクリックできるようになるまで時間がかかることがあります。

    [進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Cloud SQL インスタンスを作成する

    タスク 2. 仮想マシンにプロキシを構成する

    このタスクでは、wordpress-proxy という名前の仮想マシンにプロキシを構成して、wordpress-db という名前の Cloud SQL インスタンスに安全に接続します。

    アプリケーションが Cloud SQL インスタンスと同じ VPC 接続ネットワークとリージョンにない場合は、プロキシを使用してその外部接続を保護します。

    プロキシを構成するには Cloud SQL インスタンス接続名が必要です。

    注: このラボでは Wordpress とその依存関係が事前に構成されている 2 つの仮想マシンが用意されています。仮想マシン名をクリックすると、起動スクリプトとサービス アカウント アクセスが表示されます。最小権限の原則に従い、その VM に対して SQL アクセスのみを許可していることにご注意ください。任意のホストからポート 80 のみを許可するように事前に構成されたネットワーク タグとファイアウォールもあります。
    1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[Compute Engine] をクリックします。

    2. [wordpress-proxy] の横にある [SSH] をクリックします。

    3. Cloud SQL Proxy をダウンロードし、実行可能にします。

    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy && chmod +x cloud_sql_proxy

    プロキシを開始するには、Cloud SQL インスタンスの接続名が必要です。SSH ウィンドウを開いたまま、Cloud コンソールに戻ります。

    1. ナビゲーション メニューナビゲーション メニュー アイコン)で [SQL] をクリックします。

    2. wordpress-db インスタンスをクリックし、その名前の隣に緑色のチェックマークが表示されるのを待ちます。表示されたら動作可能な状態です(数分かかることがあります)。

    3. [接続名] をメモしておきます。これは後の手順で [SQL_CONNECTION_NAME] として参照されます。

    4. また、アプリケーションが機能するようにテーブルを作成する必要があります。[データベース] をクリックします。

    5. [データベースの作成] をクリックし、アプリケーションによって想定される名前である「wordpress」と入力して、[作成] をクリックします。

    6. SSH ウィンドウに戻り、[SQL_CONNECTION_NAME] を前の手順でメモした一意の名前に置き換えて、接続名を環境変数に保存します。

    export SQL_CONNECTION=[SQL_CONNECTION_NAME]
    1. 次のコマンドを実行して、環境変数が設定されていることを確認します。
    echo $SQL_CONNECTION

    接続名が出力されます。

    1. 次のコマンドを実行して、Cloud SQL データベースへのプロキシ接続を有効にし、プロセスをバックグラウンドに送信します。
    ./cloud_sql_proxy -instances=$SQL_CONNECTION=tcp:3306 &

    想定される出力は次のとおりです。

    Listening on 127.0.0.1:3306 for [SQL_CONNECTION_NAME] Ready for new connections
    1. Enter キーを押します。
    注: プロキシは 127.0.0.1:3306(localhost)でリッスンし、マシンの外部 IP アドレスを使用したセキュアなトンネルを介して Cloud SQL に安全に接続します。

    [進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 仮想マシンでデータベースを作成し、プロキシを構成する

    タスク 3. アプリケーションを Cloud SQL インスタンスに接続する

    このタスクではサンプル アプリケーションを Cloud SQL インスタンスに接続します。

    1. Wordpress アプリケーションを構成します。仮想マシンの外部 IP アドレスを確認するには、そのメタデータに対して次のようにクエリを実行します。
    curl -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip && echo
    1. ブラウザで wordpress-proxy の外部 IP アドレスに移動し、Wordpress アプリケーションを構成します。
    注: [EXTERNAL_IP は安全な接続をサポートしていません] というポップアップが表示された場合は、[サイトへ移動] をクリックします。
    1. [Let's Go] をクリックします。

    2. 次のように指定し、[ROOT_PASSWORD] はマシン作成時に設定したパスワードに置き換えて、残りの設定はデフォルトのままにします。

    プロパティ
    データベース名 wordpress
    ユーザー名 root
    パスワード [ROOT_PASSWORD]
    データベース ホスト 127.0.0.1
    注: 127.0.0.1(localhost)がデータベース IP として使用されています。これは、起動されたプロキシのリッスンがこのアドレスに対して行われ、そのトラフィックが SQL Server に向けて安全にリダイレクトされるからです。
    1. [Submit] をクリックします。

    2. 接続が確立したら、[Run the installation] をクリックして、Cloud SQL で Wordpress とそのデータベースをインスタンス化します。完了するまで少し時間がかかる場合があります。

    3. デモサイトの情報にランダムな情報を入力し、[Install Wordpress] をクリックします。これらの詳細を覚えたり、使用したりする必要はありません。

    注: Wordpress のインストールには最長で 3 分ほどかかることがあります。これは、すべてのデータが SQL Server に反映されるためです。
    1. 成功を示すウィンドウが表示されたら、ウェブブラウザのアドレスバーに表示された IP アドレスの後のテキストを削除して Enter キーを押します。
      Wordpress ブログが有効になり、表示されます。

    タスク 4. 内部 IP を介して Cloud SQL に接続する

    このタスクでは、プライベート IP アドレスを使用して wordpress-db という名前の Cloud SQL インスタンスに接続するようにアプリケーションを構成します。

    Cloud SQL と同じリージョンと VPC 接続ネットワークでアプリケーションをホストできると、プライベート IP を使用してよりパフォーマンスが高く安全な構成を利用できます。

    プライベート IP を使用すると、内部 IP のみを介して通信できるため、レイテンシを低減してパフォーマンスを向上させ、Cloud SQL インスタンスの攻撃対象領域を最小限に抑えることができます。

    1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[SQL] をクリックします。
    2. [wordpress-db] をクリックします。
    3. Cloud SQL サーバーの内部 IP アドレスをメモしておきます。これは後の手順で [SQL_PRIVATE_IP] として参照されます。
    4. ナビゲーション メニューで、[Compute Engine] をクリックします。
    注: wordpress-private-ip は、Cloud SQL がある に置かれています。これにより、より安全な接続を利用できるようになっています。
    1. wordpress-private-ip の外部 IP アドレスをコピーし、ブラウザ ウィンドウに貼り付けて Enter キーを押します。

    2. [Let's Go] をクリックします。

    3. 次のように指定し、残りの設定はデフォルトのままにします。

    プロパティ
    データベース名 wordpress
    ユーザー名 root
    パスワード Cloud SQL インスタンスの作成時に構成した [ROOT_PASSWORD] を入力します
    データベース ホスト [SQL_PRIVATE_IP]
    1. [Submit] をクリックします。
    注: 今回はプロキシを構成せずに、プライベート IP への直接接続を作成しています。この接続はプライベートであり、インターネットに送出する外向き接続ではないため、パフォーマンスとセキュリティを向上させることができます。
    1. [Run the installation] をクリックします。
      「Already Installed!」ウィンドウが表示されます。これは、このアプリケーションがプライベート IP を介して Cloud SQL サーバーに接続されていることを示しています。

    2. ウェブブラウザのアドレスバーで IP アドレスの後のテキストを削除し、Enter キーを押します。
      Wordpress ブログが有効になり、表示されます。

    タスク 5. まとめ

    このラボでは、Cloud SQL データベースを作成し、安全なプロキシを介した外部接続と、より安全でパフォーマンスの高いプライベート IP アドレスの両方を使用するように構成しました。プライベート IP 経由で接続できるのは、アプリケーションと Cloud SQL サーバーが同じリージョンに配置され、同じ VPC ネットワークに含まれている場合のみです。アプリケーションが別のリージョン、VPC、プロジェクトでホストされている場合は、プロキシを使用して外部接続でその接続を保護します。

    ラボを終了する

    ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。

    ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

    星の数は、それぞれ次の評価を表します。

    • 星 1 つ = 非常に不満
    • 星 2 つ = 不満
    • 星 3 つ = どちらともいえない
    • 星 4 つ = 満足
    • 星 5 つ = 非常に満足

    フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

    フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。

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

    始める前に

    1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
    2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
    3. 画面左上の [ラボを開始] をクリックして開始します

    シークレット ブラウジングを使用する

    1. ラボで使用するユーザー名パスワードをコピーします
    2. プライベート モードで [コンソールを開く] をクリックします

    コンソールにログインする

      ラボの認証情報を使用して
    1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
    2. 利用規約に同意し、再設定用のリソースページをスキップします
    3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

    このコンテンツは現在ご利用いただけません

    利用可能になりましたら、メールでお知らせいたします

    ありがとうございます。

    利用可能になりましたら、メールでご連絡いたします

    1 回に 1 つのラボ

    既存のラボをすべて終了して、このラボを開始することを確認してください

    シークレット ブラウジングを使用してラボを実行する

    このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。