パブリック IP を使用して psql クライアントを接続する

このページでは、ローカルのクライアント マシン上、または Cloud Shell 内で実行されている psql クライアントを Cloud SQL インスタンスに接続する方法について説明します。

お困りの場合、プロキシのトラブルシューティングについては、Cloud SQL Proxy 接続のトラブルシューティングをご覧ください。または、Cloud SQL のサポートページを参照してください。

始める前に

クライアントの使用を開始するには、次の作業を行っておく必要があります。

ローカル クライアントを使用する

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

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

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

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

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. クライアント マシンから、IP がわからない場合に従って、クライアント マシンの IP アドレスを確認します。
  2. その IP アドレスをコピーします。
  3. Google Cloud Console の [Cloud SQL インスタンス] ページに移動します。

    [Cloud SQL インスタンス] ページに移動

  4. インスタンスをクリックして [概要] ページを開き、その IP アドレスを記録します。
  5. [接続] タブを選択します。
  6. [承認済みネットワーク] で [ネットワークを追加] をクリックし、クライアントがインストールされているマシンの IP アドレスを入力します。
  7. [完了] をクリックし、ページの下部にある [保存] をクリックして変更内容を保存します。
  8. インスタンスに接続します。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 のドキュメントをご覧ください。

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

Cloud Shell でクライアントを使用する

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

    Google Cloud Console に移動

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

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

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

gcloud sql コマンド グループでは、SSL/TLS を使用した Cloud SQL インスタンスへの接続がサポートされません。

次のステップ