ローカルマシンまたは Compute Engine からデータベース クライアントを使用して接続する

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

始める前に

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

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

psql クライアントを使用して 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. クライアント マシンまたは Compute Engine VM インスタンスで、What's my 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 でクライアントを使用する

Cloud SQL インスタンスに接続するには(パブリック IP のみ):

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

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

    ./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME=tcp:3306 &

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

    psql -u USERNAME -p --host 127.0.0.1

次のステップ

使ってみる

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

Cloud SQL 無料トライアル