チェックポイント
Create a Cloud SQL instance
/ 5
Create a database and configure a proxy on a Virtual Machine
/ 5
Cloud SQL の実装(Azure)
あなたは最近、Google Cloud を主要なクラウド サービス プロバイダとして利用している IT 企業に採用されました。SQL データベースのエキスパートとしてのあなたの任務は、Google Cloud が提供する SQL サービスを調査して導入することです。主な考慮事項として、以下のものがあります。
- デプロイ
- セキュリティ
- アプリの統合
- 接続方法
以前の職場で Azure を利用していたあなたは、SQL Server のデプロイ方法については理解しています。料金モデルはデータベース トランザクション ユニット(DTU)ベースで、DTU の量はカスタマイズできます。また、DTU は使用シナリオに応じて異なるサービスレベルに分類されています。
Azure では次を使用します。
- データベースに安全に接続するためのプロキシ実装。
- アプリケーションでのデータベースの可用性を維持するための HTTP ロードバランサ。
デプロイした複数のアプリケーションを接続するには、以下のようなさまざまな方法を使用できます。
- 接続文字列
- ウェブアプリ サービスの統合
- プライベート IP アドレスを使用した Cloud SQL
この後、Cloud SQL の機能を使用してセキュリティを考慮したデータベースを構築し、アプリケーションに接続する方法を確認します。
概要
このラボでは、Cloud SQL サーバーを構成し、プロキシを介して外部接続でこのサーバーにアプリケーションを接続する方法について学びます。また、パフォーマンスとセキュリティを強化できるプライベート IP リンクによる接続も構成します。このラボのデモでは Wordpress アプリを使用しますが、ここで紹介する情報とおすすめの方法は、SQL Server を必要とするどのアプリケーションにも適用できます。
このラボの終了時には、次の図に示すように Wordpress フロントエンドの 2 つの動作インスタンスが 2 つの異なる接続タイプを介して SQL インスタンス バックエンドに接続されます。
目標
このラボでは、次のタスクの実行方法について学びます。
- Cloud SQL データベースを作成する
- プロキシを実行するための仮想マシンを構成する
- アプリケーションと Cloud SQL の間の接続を作成する
- プライベート IP アドレスを使用して Cloud SQL にアプリケーションを接続する
設定
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
-
Qwiklabs にシークレット ウィンドウでログインします。
-
ラボのアクセス時間(例:
1:15:00
)に注意し、時間内に完了できるようにしてください。
一時停止機能はありません。必要な場合はやり直せますが、最初からになります。 -
準備ができたら、[ラボを開始] をクリックします。
-
ラボの認証情報(ユーザー名とパスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。
-
[Google Console を開く] をクリックします。
-
[別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。 -
利用規約に同意し、再設定用のリソースページをスキップします。
タスク 1. Cloud SQL データベースを作成する
このタスクでは、Google Cloud のおすすめの方法に沿って SQL Server を設定し、プライベート IP 接続を作成します。
-
ナビゲーション メニュー(
)で [SQL] をクリックします。
- [インスタンスを作成] をクリックします。
- [MySQL を選択] をクリックします。
- 次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値 |
---|---|
インスタンス ID | wordpress-db |
root パスワード | パスワードを入力 |
リージョン | |
ゾーン | 任意 |
データベースのバージョン | MySQL 5.7 |
-
[構成オプションを表示] を開きます。
-
[マシンタイプ] を展開します。
-
最適な vCPU 数とメモリ容量をプロビジョニングします。[マシンタイプ] を選択するには、プルダウン メニューをクリックして目的のマシンタイプを探します。
注: 次のような点に注意します。
-
このラボでは、プルダウン メニューで [標準] を選択し、[1 vCPU、3.75 GB] を選択します。
-
[ストレージ] を開き、[ストレージの種類] と [ストレージ容量] を選択します。
注: 次のような点に注意します。
- 容量の各オプションをクリックして、スループットに与える影響を確認してください。オプションを 10 GB に再設定します。
-
[接続] セクションを開きます。
-
[プライベート IP] を選択します。
-
[ネットワーク] プルダウンで [default] を選択します。
-
表示された [接続を設定] をクリックします。
-
右側のパネルで [API を有効にする]、[自動的に割り当てられた IP 範囲を使用する]、[続行] の順にクリックし、[接続を作成] をクリックします。
-
ページ下部の [インスタンスを作成] をクリックしてデータベース インスタンスを作成します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 2. 仮想マシンにプロキシを構成する
アプリケーションが Cloud SQL インスタンスと同じ VPC 接続ネットワークとリージョンにない場合は、プロキシを使用してその外部接続を保護します。
プロキシを構成するには Cloud SQL インスタンス接続名が必要です。
-
ナビゲーション メニュー(
)で、[Compute Engine] をクリックします。
-
[wordpress-proxy] の横にある [SSH] をクリックします。
-
Cloud SQL Proxy をダウンロードし、実行可能にします。
プロキシを開始するには、Cloud SQL インスタンスの接続名が必要です。SSH ウィンドウを開いたまま、Cloud コンソールに戻ります。
-
ナビゲーション メニュー(
)で [SQL] をクリックします。
-
wordpress-db インスタンスをクリックし、その名前の隣に緑色のチェックマークが表示されるのを待ちます。表示されたら動作可能な状態です(数分かかることがあります)。
-
[インスタンス接続名] をメモしておきます。これは後の手順で [SQL_CONNECTION_NAME] として参照されます。
-
また、アプリケーションが機能するようにテーブルを作成する必要があります。[データベース] をクリックします。
-
[データベースの作成] をクリックし、アプリケーションの名前である「wordpress」と入力して、[作成] をクリックします。
-
SSH ウィンドウに戻り、[SQL_CONNECTION_NAME] を前の手順でメモした一意の名前に置き換えて、接続名を環境変数に保存します。
- 次のコマンドを実行して、環境変数が設定されていることを確認します。
接続名が出力されます。
- 次のコマンドを実行して、Cloud SQL データベースへのプロキシ接続をアクティブにし、プロセスをバックグラウンドに送信します。
想定される出力は次のとおりです。
- Enter キーを押します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 3. アプリケーションを Cloud SQL インスタンスに接続する
このタスクではサンプル アプリケーションを Cloud SQL インスタンスに接続します。
- Wordpress アプリケーションを構成します。仮想マシンの外部 IP アドレスを確認するには、そのメタデータに対して次のようにクエリを実行します。
-
ブラウザで wordpress-proxy の外部 IP アドレスに移動し、Wordpress アプリケーションを構成します。
-
[始める] をクリックします。
-
次のように指定し、[ROOT_PASSWORD] はマシン作成時に設定したパスワードに置き換えて、残りの設定はデフォルトのままにします。
プロパティ | 値 |
---|---|
ユーザー名 | root |
パスワード | [ROOT_PASSWORD] |
データベース ホスト | 127.0.0.1 |
-
[送信] をクリックします。
-
接続が確立したら、[インストール実行] をクリックして、Cloud SQL で Wordpress とそのデータベースをインスタンス化します。完了するまで少し時間がかかる場合があります。
-
デモサイトの情報にランダムな情報を入力し、[Wordpress をインストール] をクリックします。これらの詳細を覚えたり、使用したりする必要はありません。
- 成功を示すウィンドウが表示されたら、ブラウザの IP アドレスの後のテキストを削除して Enter キーを押します。
Wordpress ブログが有効になり、表示されます。
タスク 4. 内部 IP を介して Cloud SQL に接続する
Cloud SQL と同じリージョンと VPC 接続ネットワークでアプリケーションをホストできると、プライベート IP を使用してよりパフォーマンスが高く安全な構成を利用できます。
プライベート IP を使用すると、内部 IP を介して独自に通信できるため、レイテンシを低減してパフォーマンスを向上させ、Cloud SQL インスタンスの攻撃対象範囲を最小限に抑えることができます。
- Cloud コンソールのナビゲーション メニュー(
)で [SQL] をクリックします。
- [wordpress-db] をクリックします。
- Cloud SQL サーバーのプライベート IP アドレスをメモしておきます。これは後の手順で [SQL_PRIVATE_IP] として参照されます。
- ナビゲーション メニューで、[Compute Engine] をクリックします。
-
wordpress-private-ip の外部 IP アドレスをコピーし、ブラウザ ウィンドウに貼り付けて Enter キーを押します。
-
[始める] をクリックします。
-
次のように指定し、残りの設定はデフォルトのままにします。
プロパティ | 値 |
---|---|
ユーザー名 | root |
パスワード | Cloud SQL インスタンスの作成時に構成された [ROOT_PASSWORD] を入力します |
データベース ホスト | [SQL_PRIVATE_IP] |
- [送信] をクリックします。
-
[インストール実行] をクリックします。
「すでにインストールされています」ウィンドウが表示され、このアプリケーションがプライベート IP を介して Cloud SQL サーバーに接続されていることを示します。 -
ウェブブラウザのアドレスバーで 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 の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。