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 は、マネージド リレーショナル データベース サービスです。MySQL、PostgreSQL、SQL Server をサポートしています。この Codelab では Postgres データベースを作成しますが、手順は 3 つすべてでほぼ同じです。

コンソールで

[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 アドレスを取得する必要があります。最も簡単な方法は、ブラウザを開いて「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> は最寄りのリージョンに、root ユーザー「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 をご覧ください。

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