Cloud SQL への接続: パブリック IP と承認済みネットワーク

1. はじめに

最終更新日: 2020 年 5 月 4 日

接続について

世の中には、さまざまな種類のアプリケーションやフレームワークがあります。この Codelab では、どこからでも Cloud SQL に接続する方法について説明します。接続機能を有効にするには、接続が明示的に許可されている IP を承認します。これは、おそらく Cloud SQL データベースへの接続に関して最も安全性が低いオプションですが、最も簡単な設定と使用開始でもあります。

本番環境でこれが必要になる場合もありますが、回避できる場合は、より安全な代替手段(Cloud SQL Proxy など)を選ぶ必要があります。この設定は、開発とテストに最適です。

作成するアプリの概要

この Codelab は非常にシンプルです。接続ピースのナットとボルトについて説明するのが目的です。アプリケーション自体についてあまり深く考えずに、理想としては、Cloud SQL への接続は SQL データベースの他のインスタンスに接続するのと似ているため、この Codelab で作成したものを利用して、あらゆる本番環境アプリケーションに適用できるはずです。

この手順には、GCP コンソールでの作業手順だけでなく、CLI や自動化を使用する場合と同等の gcloud コマンドも含まれています。

個々のステップは次のとおりです。

  • Cloud SQL インスタンスを作成し(このチュートリアルでは Postgres を使用しますが、MySQL や SQL Server でも同様に機能します)、そのインスタンスへの接続が許可される特定の IP を承認します。

必要なもの

  • API を有効にしてサービスを作成する権限を持つ GCP アカウント
  • 接続を確認するためにインストールされている Postgres クライアント(Postgres ではなく MySQL を使用する場合は MySQL クライアント)

2. Cloud SQL インスタンスの作成

Cloud SQL は、Google のマネージド リレーショナル データベース サービスです。MySQL、PostgreSQL、SQL Server をサポートしています。この Codelab では Postgres データベースを作成しますが、手順はどれもほぼ同じです。

コンソール

[Cloud SQL] ページに移動し、[241836b315e11bf5.png] ボタンをクリックします。

前述のように、この Codelab のほとんどはどの SQL フレーバーでも汎用的ですが、この Codelab では PostgreSQL を選択します。

  1. インスタンスに ID を付与する
  2. 現在地に近いリージョンを選択してください
  3. デフォルト ユーザーのパスワードを入力します(選択した DB のデフォルトがユーザー名になります。例: MySQL の場合は root、PostgreSQL の場合は postgres
  4. 下にスクロールして [show configuration options] をクリックします
  5. Connectivity セクションを開く
  6. [Public IP] がオン、[Private IP] がオフになっていることを確認します。
  7. 883b32ec2734de01.png ボタンをクリックします。
  8. 接続元の IP アドレスを取得します。最も簡単な方法は、Google で「What's my IP」を検索するだけです。検索結果に自分の公開 IP が含まれています。
  1. ネットワーク フィールドに IP 仕様を入力し、必要に応じて名前を付け、New Network ボックスで [完了] をクリックします。
  2. 下にスクロールして [作成] をクリックします。

通常、インスタンスが起動するまでには数分かかります。

インスタンスが作成されたら、リスト内でインスタンスをクリックし、概要ページで Connect to this instance ヘッダーの下にリストされている public IP address をコピーします。インスタンスが完全に作成される前に詳細をクリックすることはできますが、インスタンスが完全に作成されるまではインスタンスは表示されません。

gcloud の使用

まず、Cloud SQL インスタンスへの接続を承認する IP アドレスを取得する必要があります。ブラウザを開いて「What's my IP」を検索するのが最も簡単な方法です。検索結果には公開 IP アドレスが表示されますただし、これを行っている場所からブラウザを開くことができない場合は、dig などのユーティリティを使用できます。

dig @resolver1.opendns.com ANY myip.opendns.com +short -4

現在の場所に最も近い Cloud SQL インスタンスのリージョンを指定する必要があります。リージョンのリストを表示するには、次のコマンドを実行します。

gcloud sql tiers list

各ティアは特定のリージョンでのみ利用できます。チュートリアルの gcloud の部分では、マイクロ インスタンスを作成するだけです。次のコマンドを実行すると、この階層のリージョンを確認できます(grep がインストールされている必要があります)。

gcloud sql tiers list | grep db-f1-micro

インスタンス自体を作成するコマンドは次のようになります(<AUTHORIZED_IP> はブラウザまたは dig から取得した IP で置き換え、<REGION> は近くのルートユーザー「postgres」のパスワードに置き換えてください)。

gcloud sql instances create sql-codelab-00 --database-version=POSTGRES_11 --tier=db-f1-micro --region=<REGION> --authorized-networks=<AUTHORIZED_IP> --root-password=<PASSWORD>

こちらは、完了するまでに数分かかります。

完了すると、CLI の出力にインスタンスの PRIMARY_ADDRESS が表示されます。これをコピーして次のステップで使用します。

3. 接続と終了をテストする

インスタンスが正しくセットアップされていることを確認するには、入力した IP アドレスのマシンからコマンドラインを実行します。

psql "host=<前のステップからコピーした IP>port=5432 sslmode=disable user=postgres"

次に、Cloud SQL インスタンスの作成時に設定したデフォルト ユーザーのパスワードを指定します。

これで、問題がなければ、Postgres プロンプトが表示され、データベースに対してコマンドを実行できます。

次のステップ

以下の Codelab をご覧ください。

リファレンス ドキュメント