プライベート IP を使用して Cloud SQL for PostgreSQL インスタンスに接続する
ここでは、PostgreSQL インスタンスを作成し、プライベート IP を使用してそのインスタンスに接続する方法を説明します。このクイックスタートで作成されるリソースにかかる費用は、クリーンアップを含む手順を適切なタイミングで完了した場合、通常 1 ドル未満です。
このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、「ガイドを表示」をクリックしてください。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
必要な Google Cloud APIs を有効にします。
Console
Google Cloud Console の [API] ページに移動します。
Cloud SQL Admin API を有効にします。この API を有効にすると、Cloud SQL Auth Proxy を実行できます。gcloud
次のボタンをクリックして Cloud Shell を開きます。これにより、ブラウザから Google Cloud リソースにコマンドラインで直接アクセスできます。Cloud Shell を使用して、このクイックスタートで紹介する
gcloud
コマンドを実行できます。Cloud Shell を使用して、次のように
gcloud services enable
コマンドを実行し、このクイックスタートに必要な API を有効にします。gcloud services enable sqladmin.googleapis.com
このコマンドにより、次の API が有効になります。
- Cloud SQL Admin APIこの API を有効にすると、Cloud SQL Auth Proxy を実行できます。
概要
プライベート IP アドレスを使用して Cloud SQL インスタンスに接続する際には、ソースが配置されている場所に応じて多くの方法が存在します。重要な要素は、ソースマシンが Cloud SQL インスタンスと同じ VPC ネットワーク内に存在する必要があることです。ソースが Google Cloud に存在しない場合、または同じ Google Cloud プロジェクトに存在しない場合は、ここで示すのとは異なる接続を構成する必要があります。
このクイックスタートでは、最も直接的な方法で接続を構成します。ソースとターゲットは同じ Google Cloud プロジェクトに属し、同じ VPC ネットワーク上に存在します。プライベート IP アドレス(ターゲット)と Compute Engine VM(ソース)を使用して、Cloud SQL インスタンスを作成します。VM から Cloud SQL インスタンスに接続するために必要なツールをインストールして使用します。
次の操作を行います。
- プライベート IP アドレスを使用して Cloud SQL インスタンスを作成します。
後で使用するため、インスタンスの
connection name
を見つけて保存します。 - Compute Engine VM を作成します。
- Compute Engine VM に対して 2 つの SSH 接続を開きます。
最初のウィンドウで psql をインストールし、Cloud SQL Auth Proxy をインストールして起動します。2 つ目のウィンドウで Cloud SQL Auth Proxy に接続し、Cloud SQL インスタンスに接続します。
- SSH ウィンドウ #1 で、次の操作を行います。
- psql クライアントをインストールします。
- Cloud SQL Auth Proxy をインストールします。
Cloud SQL Auth Proxy は、psql クライアントと Cloud SQL インスタンスの間のコネクタとして機能します。
- Cloud SQL Auth Proxy を起動します。
成功すると、Cloud SQL Auth Proxy が接続リクエストをリッスンします。
- SSH ウィンドウ #2 で、psql クライアントから Cloud SQL Auth Proxy に接続して、Cloud SQL インスタンスに接続します。
成功すると、このウィンドウには psql プロンプトが表示されます。SSH ウィンドウ #1 には、Cloud SQL Auth Proxy が実行されていることを示す接続成功メッセージが表示されます。
- クリーンアップします。
プライベート IP アドレスを使用して Cloud SQL インスタンスを作成する
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- [インスタンスを作成] をクリックします。
- [PostgreSQL を選択] をクリックします。
- Compute API を有効にするように求められたら、[API を有効にする] ボタンをクリックします。
- [インスタンスの情報] セクションにインスタンス ID の名前を入力します。
- postgres ユーザーのパスワードを入力します。後で必要になるため、このパスワードをメモしておきます。
- [リージョンとゾーンの可用性の選択] セクションで、[シングルゾーン] オプションを選択します。
- [構成オプションを表示] を開きます。
- [接続] を開きます。
- [パブリック IP] をクリアします。
- [プライベート IP] を選択します。
- [ネットワーク] プルダウンで [デフォルト] を選択します。
- 新しいプロジェクトを使用している場合は、「Private service connection required」というメッセージが表示されます。次に、以下の手順を行います。
- [接続の設定] をクリックします。
- [Service Networking API の有効化] をクリックします。
- [IP 範囲を割り振る] セクションで、[自動的に割り振られた IP 範囲を使用する] を選択します。
- [続行] をクリックします。
- [接続を作成] をクリックし、接続の作成が完了するまで待ちます。
[インスタンスを作成] をクリックします。
インスタンスの概要ページが表示されます。新しいインスタンスをクリックして、プライベート IP アドレスを含む詳細を表示します。
[このインスタンスに接続] セクションで、インスタンスの接続名をコピーして保存します。connection name
の形式は projectID:region:instanceID
です。
後で Cloud SQL Auth Proxy を起動する際に、この connection name
を使用します。
データベースの作成
インスタンスの概要ページに戻り、[データベース] メニュー項目を選択します。
- [データベースの作成] を選択します。
- [データベース名] フィールドに「DB_NAME」と入力します。
- [作成] をクリックします。
後で Cloud SQL Auth Proxy を使用して接続する際に、この db_name
を使用します。
Compute Engine VM を作成する
-
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
- [インスタンスを作成] をクリックします。
- インスタンスの名前を入力します。
- [アクセス スコープ] では、[すべての Cloud APIs に完全アクセス権を許可] を選択します。
- [作成] をクリックして、VM の作成が完了するまで待ちます。
Compute Engine VM への 2 つの SSH 接続を開く
VM で 2 つのウィンドウを使用します。最初のウィンドウは、psql クライアントと Cloud SQL Auth Proxy のインストール、インスタンス接続名の取得とプロキシの起動に使用されます。2 つ目のウィンドウは、プロキシ経由で Cloud SQL インスタンスに接続するために使用されます。
- Compute Engine VM インスタンスの [接続] 列で [SSH] メニューを開きます。
- [ブラウザ ウィンドウで開く] を選択して、SSH ウィンドウ #1 を開きます。
ウィンドウ内に利用可能というプロンプトが表示されるまでに数秒かかる場合があります。
- プロンプトが表示されたら、「
pwd
」と入力して/home/$USER
ディレクトリにいることを確認します。このウィンドウで、psql クライアントと Cloud SQL Auth Proxy をインストールし、さらに Cloud SQL Auth Proxy を起動します。
- もう一度 [ブラウザ ウィンドウで開く] を選択して、SSH ウィンドウ #2 を開きます。
このウィンドウを使用して Cloud SQL インスタンスに接続します。
psql クライアントをインストールする
この手順では SSH ウィンドウ #1 を使用します。
psql クライアントをパッケージ マネージャーから次のようにインストールします。
sudo apt-get update sudo apt-get install postgresql-client
Cloud SQL Auth Proxy をインストールする
この手順では SSH ウィンドウ #1 を使用します。
wget
をインストールします。sudo apt-get install wget
- Cloud SQL Auth Proxy をダウンロードします。
wget https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.8.2/cloud-sql-proxy.linux.amd64 \ -O cloud-sql-proxy
- Cloud SQL Auth Proxy を動作可能にします。
chmod +x cloud-sql-proxy
Cloud SQL Auth Proxy を起動する
この手順では SSH ウィンドウ #1 を使用します。
Cloud SQL Auth Proxy を起動して、その出力をモニタリングします。INSTANCE_CONNECTION_NAME
は、Cloud SQL インスタンスの作成時にコピーした connection name
に置き換えます。
./cloud-sql-proxy --private-ip INSTANCE_CONNECTION_NAME
Cloud SQL Auth Proxy が正常に起動すると、SSH ウィンドウに次のようなメッセージが表示されます。
Listening on 127.0.0.1:5432 for myInstance Ready for new connections
Cloud SQL インスタンスに接続する
この手順では SSH ウィンドウ #2 を使用します。
次のコマンドを実行します。DB_NAME は、Cloud SQL データベースの名前に置き換えます。
psql "host=127.0.0.1 port=5432 sslmode=disable dbname=DB_NAME user=postgres"
パスワード入力のプロンプトで、PostgreSQL アカウントのパスワードを入力します。
PostgreSQL のプロンプトが表示されることを確認します。psql クライアントを使用してデータベースに接続しています。
Cloud SQL Auth Proxy を起動したターミナル ウィンドウに戻ります。次のようなメッセージが表示されます。
New connection for myInstance
クリーンアップ
このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の操作を行います。
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
myinstance
インスタンスを選択して [インスタンスの詳細] ページを開きます。- ページ上部にあるアイコンバーで、[削除] をクリックします。
- インスタンスの削除ウィンドウでインスタンスの名前を入力し、[削除] をクリックします。
省略可能なクリーンアップ手順
このクイックスタートで有効にした API を使用しない場合は、無効にすることができます。
- このクイックスタートで有効にした API:
- Cloud SQL Admin API
Google Cloud Console の [API] ページに移動します。
Cloud SQL Admin API を選択し、[API を無効にする] ボタンをクリックします。
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
インスタンスの名前を選択します。
[その他の操作] メニューから [削除] を選択します。
次のステップ
必要に応じて、Cloud SQL インスタンスの作成で詳細をご確認ください。
Cloud SQL インスタンスの PostgreSQL ユーザーとデータベースの作成についても学習できます。
また、他の Google Cloud アプリケーションから Cloud SQL インスタンスへの接続についても確認できます。