データベース クラスタに接続する

デフォルトでは、データベース クラスタはユーザー クラスタ内および同じプロジェクトからの接続のみを許可します。

別のプロジェクトからプロジェクト内のすべてのデータベース クラスタへの接続を有効にするには、クロス プロジェクト接続を有効にするをご覧ください。

GDC 組織外の IP アドレスからデータベース クラスタへの接続を有効にするには、外部接続を有効にするをご覧ください。

project-db-admin ロールにバインドされたアカウントで GDC コンソールにログインして、データベース クラスタへの接続に関する次の情報を確認します。この情報は、[データベース サービス] ページの [接続] セクションにあります。

これらの手順には、psql を使用してデータベースに接続する例が含まれています。具体的な手順は、選択したクライアント ソフトウェアによって異なります。

コンソール

  1. データベース クラスタの [データベース サービス] ページの [接続] セクションに移動します。このページには、次の情報が表示されます。

    • 管理者アカウントのパスワード(ユーザー名は dbsadmin
    • データベース クラスタのプライマリ エンドポイントのホスト名とポート番号
    • データベース クラスタが組織外からの外部接続を許可している場合。
    • クラスタに接続するための psql コマンド(PostgreSQL と AlloyDB Omni データベース クラスタの場合)
    • Java Database Connectivity(JDBC)を使用してクラスタに接続するための文字列(Oracle データベース クラスタの場合)
    • データベース クラスタの認証局(CA)証明書をダウンロードするためのリンク
  2. データベース クラスタの [データベース サービス] ページの [接続] セクションで、GDC コンソールから CA 証明書をダウンロードします。

  3. CA 証明書を使用してデータベースを検証するようにクライアントを構成します。psql クライアントの場合は、PGSSLROOTCERT 環境変数を証明書ファイルのパスに設定し、PGSSLMODE 環境変数を任意の値に設定します。

    export PGSSLROOTCERT=path/to/accounts_cert.pem
    export PGSSLMODE="verify-full"
    
  4. クライアント ソフトウェアからデータベースに接続します。psql を使用している場合は、次のコマンドを実行します。

    PGPASSWORD=DB_PASSWORD psql -h DB_HOSTNAME -p PORT -U USERNAME -d postgres
    

次の変数を置き換えます。

  • path/to/: accounts_cert.pem 証明書へのパス。
  • DB_PASSWORD: コンソールのパスワード。
  • DB_HOSTNAME: コンソールのデータベース ホスト名。
  • DB_PORT: コンソールのデータベース ポート番号。
  • DB_USERNAME: コンソールのデータベース ユーザー名。

API

  1. データベース クラスタのステータスからデータベース エンドポイントを取得します。

    kubectl get dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME -n USER_PROJECT -o=jsonpath='{.status.primary.url}'
    
  2. Kubernetes Secret から CA 証明書をダウンロードします。

    kubectl get secret dbs-certificates -n USER_PROJECT -o json | jq -r '.data."dbs-DBENGINE_SHORT_NAME-cert-DBCLUSTER_NAME"' | base64 -d > path/to/ca.crt
    
  3. CA 証明書を使用してデータベースを検証するようにクライアントを構成します。psql クライアントの場合は、PGSSLROOTCERT 環境変数を証明書ファイルのパスに、PGSSLMODE 環境変数を設定します。

    export PGSSLROOTCERT=path/to/accounts_cert.pem
    export PGSSLMODE="verify-full"
    
  4. クライアント ソフトウェアからデータベースに接続します。psql を使用している場合は、次のコマンドを実行します。

    PGPASSWORD=DB_PASSWORD psql -h DB_HOSTNAME -p DB_PORT -U DB_USERNAME -d postgres
    

次の変数を置き換えます。

  • DBENGINE_NAME: データベース エンジンの名前。alloydbomnipostgresqloracle のいずれかです。
  • USER_PROJECT: データベース クラスタが作成されたユーザー プロジェクトの名前。
  • DBENGINE_SHORT_NAME: データベース エンジンの短縮名。これは、al(AlloyDB Omni)、pg(PostgreSQL)、ora(Oracle)のいずれかです。
  • DBCLUSTER_NAME: データベース クラスタの名前。
  • path/to/: データベース CA 証明書のパス。
  • DB_PASSWORD: 管理者ユーザーのデータベース パスワード。
  • DB_HOSTNAME: データベース クラスタのステータスから取得したホスト名。
  • DB_PORT: データベース クラスタのステータスから取得したデータベースのポート番号。
  • DB_USERNAME: データベース ユーザー名(デフォルトは dbsadmin)。