読み込んでいます...
一致する結果は見つかりませんでした。

Google Cloud Skills Boost

Google Cloud コンソールでスキルを試す

Google Cloud Storage and Containers for AWS Professionals

700 以上のラボとコースにアクセス

Cloud SQL の実装(AWS)

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

あなたは最近、Google Cloud を主要なクラウド サービス プロバイダとして利用している IT 企業に採用されました。SQL Database エキスパートしてのあなたの任務は、Google Cloud が提供する SQL サービスを調査して導入することです。主な懸念事項として、以下のものがあります。

  • デプロイ
  • セキュリティ
  • アプリの統合
  • 接続方法

以前の職場でのアマゾン ウェブ サービス(AWS)の利用経験から、業務をサポートするリレーショナル データベース サービス(RDS)インスタンスのセットアップ方法については熟知しています。AWS RDS インスタンスは、時間のかかるデータベース管理タスクを請け負いながら、優れた費用効率とサイズ変更可能な容量を提供します。

AWS では、データベース インスタンスへの接続方法は環境によって異なります。次に例を示します。

  • 同じ VPC 内の DB インスタンスに接続: Virtual Private Cloud(VPC)セキュリティ グループ ルールを設定し、データベース(DB)インスタンスへのアクセスを制限します。
  • 異なる VPC 内の DB インスタンスに接続: データベース インスタンスが存在する VPC とクライアントが存在する VPC の間でピアリング接続を設定します。
  • 公共のインターネット経由で DB インスタンスに接続: このタイプの接続をサポートするように VPC とサブネットを構成済みの場合は、インターネット ゲートウェイとセキュリティ グループ ルールが必要です。
  • プライベート接続経由で DB インスタンスに接続: VPC と AWS RDS エンドポイント間のプライベート接続を確立するには、AWS PrivateLink を備えたインターフェース VPC エンドポイントを作成します。これにより、インターネット ゲートウェイやネットワーク アドレス変換(NAT)ゲートウェイ、さらには、パブリック IP のいずれも使用せずに AWS RDS インスタンスに接続できるようになります。

次に、Cloud SQL の機能を使用して、セキュリティを考慮したデータベースを構築し、アプリケーションに接続する方法を探ります。

概要

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

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

目標

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

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

設定

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

  1. Qwiklabs にシークレット ウィンドウでログインします。

  2. ラボのアクセス時間(例: 1:15:00)に注意し、時間内に完了できるようにしてください。
    一時停止機能はありません。必要な場合はやり直せますが、最初からになります。

  3. 準備ができたら、[ラボを開始] をクリックします。

  4. ラボの認証情報(ユーザー名パスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。

  5. [Google Console を開く] をクリックします。

  6. [別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
    他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。

  7. 利用規約に同意し、再設定用のリソースページをスキップします。

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

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

  1. ナビゲーション メニュー)で [SQL] をクリックします。
  2. [インスタンスを作成] をクリックします。
  3. [MySQL を選択] をクリックします。
  4. 次のように指定し、残りの設定はデフォルトのままにします。
プロパティ
インスタンス ID wordpress-db
root パスワード パスワードを入力
リージョン
ゾーン 任意
データベースのバージョン 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. 仮想マシンにプロキシを構成する

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

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

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

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

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

    プロパティ
    ユーザー名 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 に接続する

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

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

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

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

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

    プロパティ
    ユーザー名 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、プロジェクトでホストされている場合は、プロキシを使用して外部接続でその接続を保護します。

    Cloud SQL でのデータベースの作成と構成について理解できたところで、AWS RDS と Google Cloud SQL の類似点と相違点について見ていきましょう。

    類似点:

    • Google Cloud SQL とAWS RDS はどちらもマネージド サービスであり、以下のタスクを行うことができます。

      • インスタンスのアップデート
      • データベース ソフトウェアのインストールとパッチ適用
      • バックアップ
      • フェイルオーバー
    • Google Cloud SQL と AWS RDS はどちらも、データベース インスタンスに仮想マシンを利用し、特定のニーズに合わせてインスタンスのタイプ、サイズ、ストレージ容量を選択できます。

    • どちらのサービスも、承認済みネットワークや SSL を必要とせずに、安全なトンネルを介してデータベース インスタンスへの安全な接続を確立できます。この安全な接続を確立するには、AWS では AWS PrivateLink を、Google Cloud では Cloud SQL Auth Proxy を使用します。

    • どちらのサービスも MySQL、PostgreSQL、SQL Server のエンジンをサポートしています。

    相違点:

    • 類似点で述べたサーバー エンジンに加えて、AWS RDS は Oracle と MariaDB のサーバー エンジンもサポートしています。
    • どちらのサービスも、公共のインターネットにトラフィックを公開したり、NAT 接続を作成したりせずに、DB インスタンスと他のリソースとの間にプライベート接続を確立できます。ただし、この機能を有効にする方法はそれぞれのサービスで異なります。
      • AWS RDS では、AWS PrivateLink VPC エンドポイントを作成し、DB インスタンスのターゲットとして設定します。
      • Google Cloud SQL では、DB インスタンスの構成オプションでプライベート IP 機能を有効にします。

    ラボを終了する

    ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが 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 回に 1 つのラボ

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

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

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