arrow_back

Cloud SQL の実装(Azure)

ログイン 参加
知識をテストして、コミュニティで共有しましょう
done
700 を超えるハンズオンラボ、スキルバッジ、コースへのアクセス

Cloud SQL の実装(Azure)

ラボ 1時間 30分 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
知識をテストして、コミュニティで共有しましょう
done
700 を超えるハンズオンラボ、スキルバッジ、コースへのアクセス

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

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

Azure の図 以前の職場で Azure を利用していたあなたは、SQL Server のデプロイ方法については理解しています。料金モデルはデータベース トランザクション ユニット(DTU)ベースで、DTU の量はカスタマイズできます。また、DTU は使用シナリオに応じて異なるサービスレベルに分類されています。

Azure では次を使用します。

  • データベースに安全に接続するためのプロキシ実装。
  • アプリケーションでのデータベースの可用性を維持するための HTTP ロードバランサ。

デプロイした複数のアプリケーションを接続するには、以下のようなさまざまな方法を使用できます。

  • 接続文字列
  • ウェブアプリ サービスの統合
  • プライベート IP アドレスを使用した Cloud SQL

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

概要

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

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

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 Server を設定し、プライベート 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/秒のネットワーク スループットという上限があります。コア数を増やすとネットワークの上限値が大きくなります(理論的には最大で 2000 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. [始める] をクリックします。

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

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

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

    3. デモサイトの情報にランダムな情報を入力し、[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. [始める] をクリックします。

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

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

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

    タスク 5. まとめ

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

    Cloud SQL でデータベースを作成して構成する方法をより深く理解できたので、Google Cloud SQL と Azure SQL の類似点と相違点をいくつか見てみましょう。

    類似点:

    • Azure と Google Cloud はどちらも、データベースのインフラストラクチャを管理し、インスタンス、バックアップ、アップデート、フェイルオーバーを含みます。
    • Cloud SQL と Azure SQL はどちらも、プロキシをデプロイして VPC 外からの接続を安全に受け取ります。
    • どちらのサービスも接続文字列を使用して接続を作成します。
    • どちらのサービスも、アプリケーションと SQL サーバー インスタンスが同じリージョン内に配置され、同じ VPC ネットワークに含まれている場合は、内部 IP を使用してそれらを直接接続します。内部 IP アドレスのみを使用すると、パブリック接続は許可されないため、セキュリティが向上します。

    相違点:

    • SQL Server 作成の仕様については、Google Cloud と Azure とで考え方が異なります。Azure では、カテゴリ、DTU、定義されたストレージを選択します。Google Cloud では、必要な CPU 数とストレージ容量を指定します。
    • Google Cloud では、データベースに組み込まれた認証方法(ユーザー名とパスワード)があり、Cloud SQL Auth Proxy と Cloud SQL コネクタ ライブラリを実装して IAM ベースのアクセスを提供できます。一方 Azure では、ポリシーを使用してリクエストの許可方法を定義します。また、リクエストの処理にリダイレクト方式(デフォルト)またはプロキシ接続ポリシーを使用できます。Azure Active Directory 認証もサポートされています。
    • Google Cloud では、Cloud SQL を使用してインスタンスに接続する方法として、主に次の 2 つのオプションがあります。
      • Cloud SQL Auth Proxy: 承認済みネットワークや SSL を必要としない安全なトンネル。認証と認可は IAM(Identity and Access Management)と OAuth 2.0 を介して行われます。
      • プライベート IP: ご使用の VPC ネットワークと基盤となる Google サービス プロデューサーの VPC ネットワークとのプライベート接続。

    ラボを終了する

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

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

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

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

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

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

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

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

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

    ありがとうございます。

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