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 ありSSL なしのどちらの接続でもかまいません。

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

インスタンスに接続する手順は、以下のとおりです。

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

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

SSL を使用して接続するには、次のものが必要です。

  • server-ca.pem ファイル内の認証局(CA)証明書。
  • client-cert.pem ファイル内のクライアントの公開鍵証明書。
  • client-key.pem ファイル内のクライアントの秘密鍵。

クライアント証明書と対応する秘密鍵がない場合は、新しいクライアント証明書を作成します

開始する前に、クライアントをインストールし、インスタンスへのアクセスを構成したことを確認します。

SSL を使用してインスタンスに接続するには:

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

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

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 無料トライアル