Amazon Redshift
クラスター管理ガイド (API バージョン 2012-12-01)

psql ツールを使用してクラスターに接続する

Amazon Redshift クラスターを作成したら、psql (PostgreSQL のターミナル型フロントエンド) を使ってクラスターのデータにクエリを発行することができます。クエリはインタラクティブに入力することも、ファイルから読み取ることもできます。psql から接続するには、クラスターのエンドポイント、データベース、ポートを指定する必要があります。

注記

psql ツールは、Amazon Redshift から提供されるのではなく PostgreSQL とともにインストールされます。psql の使用については、https://www.postgresql.org/docs/8.4/static/app-psql.html を参照してください。PostgreSQL クライアントツールのインストール方法については、https://www.postgresql.org/download/ の PostgreSQL バイナリダウンロードページから、該当するオペレーティングシステムを選択します。

無効な client_encoding が原因で Microsoft Windows プロンプトからの接続に問題がある場合は、psql を実行する前に PGCLIENTENCODING 環境変数を UTF-8 に設定します。

set PGCLIENTENCODING=UTF8

psql のデフォルト設定を使用して接続する

デフォルトでは、psql は Amazon Redshift サービスを検証せず、Secure Sockets Layer (SSL) を使用して暗号化された接続を作成します。

psql のデフォルト設定を使用して接続するには

  1. AWS マネジメントコンソールにサインインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift/)を開きます。

  2. 左のナビゲーションペインの [Clusters (クラスター)] をクリックします。これを開くにはクラスターをクリックします。[Cluster Database Properties (クラスターデータベースプロパティ)] で、[Endpoint (エンドポイント)]、[Port (ポート)]、[Database Name (データベース名)] の値を書き留めます。

  3. コマンドプロンプトで、コマンドラインパラメータか接続情報文字列を使用して接続情報を指定します。パラメータを使用するには次のように行います。

    psql -h <endpoint> -U <userid> -d <databasename> -p <port>

    各パラメーターの意味は次のとおりです。

    • <endpoint> は前のステップで書き留めた [Endpoint (エンドポイント)] です。

    • <userid> はクラスターに接続するアクセス権限があるユーザー ID です。

    • <databasename> は前のステップで書き留めた [Database Name (データベース名)] です。

    • <port> は前のステップで書き留めた [Port (ポート)] です。

    例:

    psql -h examplecluster.<XXXXXXXXXXXX>.us-west-2.redshift.amazonaws.com -U masteruser -d dev -p 5439
  4. psql パスワードプロンプトで、<userid> ユーザーのパスワードを入力します。

これでクラスターに接続されるので、コマンドをインタラクティブに入力できます。

証明書を使って接続する

psql で証明書を使ってサービスを認証するかどうかを制御するには、接続情報文字列を使って接続情報を指定し、sslmode キーワードを指定する必要があります。デフォルトでは、psql は sslmode=prefer で動作しています。psql で暗号化接続を開き、Amazon Redshift 証明書を使用してサービスを検証するよう指定するには、Amazon Redshift 証明書をコンピュータにダウンロードします。DNS エイリアスを使用する場合を除き、[verify-full] を指定します。DNS エイリアスを使用する場合は、[verify-ca] を選択します。sslrootcert を証明書の位置に指定します。sslmode の詳細については、「接続のセキュリティオプションを設定する」を参照してください。

接続情報文字列のパラメータの詳細については、https://www.postgresql.org/docs/8.4/static/libpq-connect.html を参照してください。

証明書を使って接続するには

  1. ダウンロードした「Redshift の認証機関バンドル」の .crt ファイルをコンピュータに保存します。Internet Explorer で File\Save as を行う場合、ファイル形式を [Text file (*.txt)] に指定し、.txt 拡張子を削除します。たとえば、これをファイル C:\MyDownloads\redshift-ca-bundle.crt として保存します。

  2. Amazon Redshift コンソールで、クラスターを選択して [Cluster Database Properties (クラスターデータベースプロパティ)] を表示します。[Endpoint (エンドポイント)]、[Port (ポート)]、[Database Name (データベース名)] のフィールドに表示された値を書き留めます。

  3. コマンドプロンプトで、接続情報文字列を使って接続情報を指定します。

    psql "host=<endpoint> user=<userid> dbname=<databasename> port=<port> sslmode=verify-ca sslrootcert=<certificate>"

    各パラメーターの意味は次のとおりです。

    • <endpoint> は前のステップで書き留めた [Endpoint (エンドポイント)] です。

    • <userid> はクラスターに接続するアクセス権限があるユーザー ID です。

    • <databasename> は前のステップで書き留めた [Database Name (データベース名)] です。

    • <port> は前のステップで書き留めた [Port (ポート)] です。

    • <certificate> は証明書ファイルへのフルパスです。Windows システムの場合、証明書のパスは Linux 形式の区切り文字 (/) で指定する必要があります。Windows の区切り文字 (\) は使用しないでください。

      Linux および Mac OS X オペレーティングシステムでは、パスは

      ~/.postgresql/root.crt

      Microsoft Windows では、パスは

      %APPDATA%/postgresql/root.crt

    例:

    psql "host=examplecluster.<XXXXXXXXXXXX>.us-west-2.redshift.amazonaws.com user=masteruser dbname=dev port=5439 sslmode=verify-ca sslrootcert=C:/MyDownloads/redshift-ca-bundle.crt"
  4. psql パスワードプロンプトで、<userid> ユーザーのパスワードを入力します。

これでクラスターに接続されるので、コマンドをインタラクティブに入力できます。