PostgreSQL コマンドライン クライアントを使用して Cloud SQL に接続できます。このページでは、クライアント マシンでローカルに実行している場合、または Compute Engine VM もしくは Cloud Shell で実行している場合にかかわらず、psql
クライアントを Cloud SQL インスタンスに接続する方法について説明します。
始める前に
psql
クライアントを使用して Cloud SQL インスタンスに接続するには、事前に次の操作を行います。
-
Cloud SQL インスタンスを作成し、デフォルト ユーザーを構成します。
必要に応じて、Compute Engine VM インスタンスを作成し、SSH を使用してインスタンスに接続します。
VM インスタンスを作成して起動する、SSH 接続について、またはRDP を使用して Windows VM に接続するをご覧ください。
インスタンスに接続する方法を決定します。
接続オプションとその選択方法については、接続オプションについてをご覧ください。
ローカルマシンまたは Compute Engine VM で PostgreSQL クライアントを使用する
psql
クライアントを使用して Cloud SQL インスタンスに接続する手順には、大きく分けて次の 3 つのタスクがあります。
クライアントをインストールする
psql
クライアントをインストールする手順は、以下のとおりです。
Debian / Ubuntu
psql クライアントをパッケージ管理システムから次のようにインストールします。
sudo apt-get update sudo apt-get install postgresql-client
CentOS / RHEL
psql クライアントをパッケージ管理システムから次のようにインストールします。
sudo yum install postgresql
openSUSE
psql クライアントをパッケージ管理システムから次のようにインストールします。
sudo zypper install postgresql
他のプラットフォーム
- ご使用のプラットフォームに対応する PostgreSQL Core Distribution を、PostgreSQL のダウンロード ページからダウンロードします。
Core Distribution には、PSQL クライアントが含まれています。 - ダウンロード ページの指示に沿って、PostgreSQL データベースをインストールします。
Cloud SQL インスタンスへのアクセスを構成する
インスタンスへのアクセスを構成する手順は、以下のとおりです。
- クライアント マシンまたは Compute Engine VM インスタンスで、What's my IP を使用して、クライアント マシンの IP アドレスを確認します。
- その IP アドレスをコピーします。
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- SQL ナビゲーション メニューから [接続] を選択します。
- [ネットワーキング] タブを選択します。
- [承認済みネットワーク] セクションで、[ネットワークを追加] をクリックし、クライアントがインストールされているマシンの IP アドレスを入力します。
- [完了] をクリックし、ページの下部にある [保存] をクリックして変更内容を保存します。
- インスタンスに接続します。SSL あり、SSL なしのどちらの接続でもかまいません。
暗号化しないで Cloud SQL インスタンスに接続する
インスタンスに接続する手順は、以下のとおりです。
- クライアントをインストールし、インスタンスへのアクセスを構成したことを確認します。
psql
クライアントを起動します。psql "sslmode=disable dbname=postgres user=postgres hostaddr=INSTANCE_IP"
- パスワードを入力します。
- psql のプロンプトが表示されます。
SSL を使用して Cloud SQL インスタンスに接続する
SSL を使用して接続するには、次のものが必要です。
- server-ca.pem ファイル内の認証局(CA)証明書。
- client-cert.pem ファイル内のクライアントの公開鍵証明書。
- client-key.pem ファイル内のクライアントの秘密鍵。
クライアント証明書と対応する秘密鍵がない場合は、新しいクライアント証明書を作成します。
開始する前に、クライアントをインストールし、インスタンスへのアクセスを構成したことを確認します。
SSL を使用してインスタンスに接続するには:
psql
クライアントを起動します。psql "sslmode=verify-ca sslrootcert=server-ca.pem \ sslcert=client-cert.pem sslkey=client-key.pem \ hostaddr=INSTANCE_IP \ user=postgres dbname=DB_NAME"
例:
psql "sslmode=verify-ca sslrootcert=server-ca.pem \ sslcert=client-cert.pem sslkey=client-key.pem \ hostaddr=01.23.45.67 \ user=postgres dbname=postgres"
SSL モードの
verify-full
は必要ありません。CA がインスタンス固有であるため、verify-ca
で十分です。ただし、PostgreSQL の
verify-full
モードを使用する場合は、次のコマンドを実行します。psql "sslmode=verify-full sslrootcert=server-ca.pem \ sslcert=client-cert.pem sslkey=client-key.pem \ hostaddr=INSTANCE_IP port=5432 \ user=postgres dbname=DB_NAME \ host=INSTANCE_NAME"
例:
psql "sslmode=verify-full sslrootcert=server-ca.pem \ sslcert=client-cert.pem sslkey=client-key.pem \ hostaddr=01.23.45.67 port=5432 \ user=postgres dbname=postgres \ host=myinstance"
複数のインスタンスに接続する場合などには、接続サービス ファイルを作成して接続パラメータを管理することも可能です。詳しくは、PostgreSQL のドキュメントをご覧ください。
- パスワードを入力します。PostgreSQL は SSL 使用時のパスワードなしの接続をサポートしていますが、Cloud SQL ではパスワードは必須です。
- 接続情報の中に「cipher」と表示されていれば、その接続は確かに暗号化されていると判断できます。
SSL connection (cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128)
Cloud Shell でクライアントを使用する
Cloud SQL インスタンスに接続するには(パブリック IP のみ):
- Google Cloud Console に移動します。
- ツールバーの右側にある Cloud Shell アイコン をクリックします。
Cloud Shell の初期化には少し時間がかかります。
- Cloud Shell プロンプトで、組み込みのクライアントを使用して Cloud SQL インスタンスに接続します。
gcloud sql connect INSTANCE_ID \ --user=postgres
- パスワードを入力します。
gcloud sql connect
コマンドは、プライベート IP または SSL / TLS を使用した Cloud SQL インスタンスへの接続をサポートしていません。暗号化を使用して接続するには、Cloud Shell でプロキシをインストールして使用します。
/home/USER
ディレクトリにプロキシ(Linux 64 ビット)をインストールします。- gcloud CLI 認証を使用してプロキシを開始します。
./cloud-sql-proxy INSTANCE_CONNECTION_NAME &
- TCP 接続を使用してデータベースに接続します。
psql -U USERNAME --host=127.0.0.1
次のステップ
- プライベート IP アドレスを持つインスタンスの構成について学習します。
- アプリケーションからインスタンスに接続するためのオプションについて学習します。
psql
クライアントと SSL が連動する仕組みについて学習します。
使ってみる
Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Cloud SQL のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
Cloud SQL 無料トライアル