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 / TLS を使用して接続しても、暗号化なし(SSL / TLS を使用しない)で接続してもかまいません。
暗号化しないで Cloud SQL インスタンスに接続する
暗号化なしで接続するには、インスタンスの SSL モードが ALLOW_UNENCRYPTED_AND_ENCRYPTED
に設定されている必要があります。Google Cloud コンソールで、これに相当する構成は「暗号化されていないネットワーク トラフィックを許可する」です。
インスタンスの SSL / TLS 構成の詳細については、SSL / TLS 証明書の構成をご覧ください。
インスタンスに接続するには:
- クライアントをインストールし、インスタンスへのアクセスを構成したことを確認します。
psql
クライアントを起動します。psql "sslmode=disable dbname=postgres user=postgres hostaddr=INSTANCE_IP_ADDRESS"
- パスワードを入力します。
- psql のプロンプトが表示されます。
SSL / TLS を使用して Cloud SQL インスタンスに接続する
SSL / TLS と組み込み認証を使用してインスタンスに接続するには:
psql
クライアントを起動します。psql "sslmode=require \ hostaddr=INSTANCE_IP_ADDRESS \ user=postgres dbname=DB_NAME"
例:
psql "sslmode=require \ hostaddr=203.12.34.56 \ user=postgres dbname=postgres"
複数のインスタンスに接続する場合などには、接続サービス ファイルを作成して接続パラメータを管理することも可能です。詳しくは、PostgreSQL のドキュメントをご覧ください。
- パスワードを入力します。PostgreSQL は SSL /TLS 使用時のパスワードなしの接続をサポートしていますが、Cloud SQL ではパスワードは必須です。
- 接続情報の中に「cipher」と表示されていれば、その接続は確かに暗号化されていると判断できます。
SSL connection (cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128)
SSL / TLS とクライアント証明書の検証を使用して Cloud SQL インスタンスに接続する
Cloud SQL インスタンスの ssl_mode
が TRUSTED_CLIENT_CERTIFICATE_REQUIRED
に構成されている場合は、ログイン時に検証済みのクライアントの身元を提供することも必要です。
SSL / TLS 証明書をクライアント検証とともに使用して接続するには、次のものが必要です。
- client-cert.pem ファイル内のクライアントの公開鍵証明書。
- client-key.pem ファイル内のクライアントの秘密鍵。
また、クライアントが相互認証のためにサーバーの身元を確認できるようにするために、サーバー証明書 server-ca.pem を指定します。
たとえば、psql
クライアントを起動するには、次のコマンドを実行します。 psql "sslmode=verify-ca sslrootcert=server-ca.pem \ sslcert=client-cert.pem sslkey=client-key.pem \ hostaddr=INSTANCE_IP_ADDRESS \ user=postgres dbname=DB_NAME"
クライアント証明書と、対応する秘密鍵がない場合は、新しいクライアント証明書を作成してください。
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 の無料トライアル