psql クライアントを使用して接続する

PostgreSQL コマンドライン クライアントを使用して Cloud SQL に接続できます。このページでは、クライアント マシンでローカルに実行している場合、または Compute Engine VM もしくは Cloud Shell で実行している場合にかかわらず、psql クライアントを Cloud SQL インスタンスに接続する方法について説明します。

始める前に

psql クライアントを使用して Cloud SQL インスタンスに接続する前に、次のことを行います。

ローカルマシンまたは Compute Engine VM で PostgreSQL クライアントを使用する

psql クライアントを使用して Cloud SQL インスタンスに接続する手順には、大きく分けて次の 3 つのタスクがあります。

  1. クライアントをインストールします
  2. Cloud SQL インスタンスへのアクセスを構成します
  3. Cloud SQL インスタンスに接続します

クライアントをインストールする

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

他のプラットフォーム

  1. ご使用のプラットフォームに対応する PostgreSQL Core Distribution を、PostgreSQL のダウンロード ページからダウンロードします。
    Core Distribution には、PSQL クライアントが含まれています。
  2. ダウンロード ページの指示に沿って、PostgreSQL データベースをインストールします。

Cloud SQL インスタンスへのアクセスを構成する

インスタンスへのアクセスを構成するには、以下の操作を行います。

  1. クライアント マシンまたは Compute Engine VM インスタンスで、What's my IP を使用して、クライアント マシンの IP アドレスを確認します。
  2. その IP アドレスをコピーします。
  3. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  4. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  5. SQL ナビゲーション メニューから [接続] を選択します。
  6. [ネットワーキング] タブを選択します。
  7. [承認済みネットワーク] セクションで、[ネットワークを追加] をクリックし、クライアントがインストールされているマシンの IP アドレスを入力します。
  8. [完了] をクリックし、ページの下部にある [保存] をクリックして変更内容を保存します。
  9. インスタンスに接続します。SSL / TLS を使用して接続しても、暗号化なし(SSL / TLS を使用しない)で接続してもかまいません。

暗号化しないで Cloud SQL インスタンスに接続する

暗号化なしで接続するには、インスタンスの SSL モードALLOW_UNENCRYPTED_AND_ENCRYPTED に設定されている必要があります。Google Cloud コンソールで、これに相当する構成は「暗号化されていないネットワーク トラフィックを許可する」です。

インスタンスの SSL / TLS 構成の詳細については、SSL / TLS 証明書の構成をご覧ください。

インスタンスに接続するには:

  1. クライアントをインストールし、インスタンスへのアクセスを構成したことを確認します。
  2. psql クライアントを起動します。
    psql "sslmode=disable dbname=postgres user=postgres hostaddr=INSTANCE_IP_ADDRESS"
    
  3. パスワードを入力します。
  4. psql のプロンプトが表示されます。

SSL / TLS を使用して Cloud SQL インスタンスに接続する

SSL / TLS と組み込み認証を使用してインスタンスに接続するには:

  1. 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 のドキュメントをご覧ください。

  2. パスワードを入力します。PostgreSQL は SSL /TLS 使用時のパスワードなしの接続をサポートしていますが、Cloud SQL ではパスワードは必須です。
  3. 接続情報の中に「cipher」と表示されていれば、その接続は確かに暗号化されていると判断できます。
    SSL connection (cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128)
    

SSL / TLS とクライアント証明書の検証を使用して Cloud SQL インスタンスに接続する

Cloud SQL インスタンスの ssl_modeTRUSTED_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 のみ):

  1. Google Cloud Console に移動します。

    Google Cloud コンソールに移動

  2. ツールバーの右側にある Cloud Shell アイコン をクリックします。

    Cloud Shell の初期化には少し時間がかかります。

  3. Cloud Shell プロンプトで、組み込みのクライアントを使用して Cloud SQL インスタンスに接続します。
    gcloud sql connect INSTANCE_ID \
    --user=postgres
    
  4. パスワードを入力します。

gcloud sql connect コマンドは、プライベート IP または SSL / TLS を使用した Cloud SQL インスタンスへの接続をサポートしていません。暗号化を使用して接続するには、Cloud Shell でプロキシをインストールして使用します。

  1. /home/USER ディレクトリにプロキシ(Linux 64 ビット)をインストールします。
  2. gcloud CLI 認証を使用してプロキシを開始します。

    ./cloud-sql-proxy INSTANCE_CONNECTION_NAME &

  3. TCP 接続を使用してデータベースに接続します。

    psql -U USERNAME --host=127.0.0.1

次のステップ

使ってみる

Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Cloud SQL のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。

Cloud SQL 無料トライアル