メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

PostgreSQL データベースエンジンを実行する DB インスタンスへの接続

Amazon RDS によって DB インスタンスがプロビジョニングされると、標準の SQL クライアントアプリケーションを使用して、インスタンスに接続できます。作成時に DB インスタンスに割り当てたセキュリティグループにより、DB インスタンスへのアクセスを許可する必要がある点に注意することが重要です。DB インスタンスに接続する際に問題が発生した場合、通常は DB インスタンスに割り当てられたセキュリティグループでセットアップしたアクセスルールに問題があります。

AWS マネジメントコンソール、AWS CLI の describe-db-instances コマンド、または Amazon RDS API の DescribeDBInstances アクションを使用して、エンドポイントを含む Amazon RDS DB インスタンスの詳細を一覧表示できます。エンドポイントの値が myinstance.123456789012.us-east-1.rds.amazonaws.com:5432 である場合、PostgreSQL 接続文字列に以下の値を指定します。

  • ホストまたはホスト名には を指定します

    Copy
    myinstance.123456789012.us-east-1.rds.amazonaws.com
  • ポートには を指定します。

    Copy
    5432

新しい DB インスタンスへの接続に失敗する一般的な原因には、次の 2 つがあります。

  • PostgreSQL アプリケーションまたはユーティリティが実行されているデバイスまたは Amazon EC2 インスタンスからの接続を許可しないセキュリティグループを使用して DB インスタンスが作成されました。DB インスタンスが VPC で作成された場合、接続を許可する VPC セキュリティグループが必要です。DB インスタンスが VPC の外部で作成された場合は、接続を許可する DB セキュリティグループが必要です。

  • DB インスタンスが、デフォルトポートの 5432 を使用して作成されたが、会社のファイアウォールルールで、社内ネットワークのデバイスからそのポートへの接続がブロックされています。この問題を解決するには、別のポートを使用してインスタンスを変更します。

このセクションでは、PostgreSQL DB インスタンスに接続する 2 つの方法について説明します。最初の例では、オープンソースの PostgreSQL 向け管理開発ツールとして人気のある pgAdmin を使用します。pgAdmin は、クライアントコンピュータに PostgreSQL のローカルインスタンスがなくても、ダウンロードして使用できます。2 番目の例では、PostgreSQL に付属するコマンドラインユーティリティである psql を使用します。psql を使用するには、クライアントコンピュータに PostgreSQL をインストールしているか、または psql クライアントをインストールしている必要があります。

この例では、pgAdmin を使用して PostgreSQL DB インスタンスに接続します。

pgAdmin を使用した PostgreSQL DB インスタンスへの接続

pgAdmin を使用して PostgreSQL DB インスタンスに接続するには

  1. クライアントコンピュータの pgAdmin アプリケーションを起動します。pgAdminhttp://www.pgadmin.org/ からインストールできます。

  2. [File] メニューの [Add Server] を選択します。

  3. [New Server Registration] ダイアログボックスで、DB インスタンスのエンドポイント (例: mypostgresql.c6c8dntfzzhgv0.us-west-2.rds.amazonaws.com) を [Host] テキストボックスに入力します。Amazon RDS コンソールに表示されているコロンとポート番号 (mypostgresql.c6c8dntfzzhgv0.us-west-2.rds.amazonaws.com :5432) は含めないでください。

    [Port] テキストボックスに DB インスタンスに割り当てたポートを入力します。DB インスタンスの作成時に入力したユーザー名とパスワードをそれぞれ [Username] および [Password] テキストボックスに入力します。

     Postgres に接続
  4. [OK] をクリックします。

  5. [Object browser] で [Server Groups] を展開します。作成したサーバー (DB インスタンス) を選択し、データベース名を選択します。

     Postgres に接続
  6. プラグインアイコンをクリックし、[PSQL Console] をクリックします。作成したデフォルトデータベース用の psql コマンドウィンドウが開きます。

     Postgres に接続
  7. コマンドウィンドウを使用して、SQL コマンドまたは psql コマンドを入力します。ウィンドウを閉じるには、\q と入力します。

psql を使用した PostgreSQL DB インスタンスへの接続

クライアントコンピュータに PostgreSQL がインストールされている場合は、psql のローカルインスタンスを使用して、PostgreSQL DB インスタンスに接続できます。psql を使用して PostgreSQL DB インスタンスに接続するには、ホスト情報とアクセス認証情報を指定する必要があります。

Amazon RDS 上の PostgreSQL DB インスタンスに接続する際は、次の形式が使用されます。パスワードが求められる点に注意してください。バッチジョブやスクリプトにはパスワードオプションがありません。

Linux、OS X、Unix の場合:

Copy
psql \ --host=<DB instance endpoint> \ --port=<port> \ --username <master user name> \ --password \ --dbname=<database name>

Windows の場合:

Copy
psql ^ --host=<DB instance endpoint> ^ --port=<port> ^ --username <master user name> ^ --password ^ --dbname=<database name>

たとえば、次のコマンドは、架空の認証情報を使用して、mypostgresql という PostgreSQL DB インスタンス上の mypgdb というデータベースに接続します。

Copy
psql --host=mypostgresql.c6c8mwvfdgv0.us-west-2.rds.amazonaws.com --port=5432 --username=awsuser --password --dbname=mypgdb

接続の問題のトラブルシューティング

DB インスタンスでデータベースに接続する際に非常によくある問題は、DB インスタンスに割り当てられたセキュリティグループの問題です。DB インスタンスの作成時にデフォルト DB セキュリティグループを使用した場合、インスタンスへのアクセスを許可するルールがセキュリティグループになかった可能性が高いと考えられます。Amazon RDS セキュリティグループの詳細については、「Amazon RDS セキュリティグループ」を参照してください。

最も一般的なエラーは、"could not connect to server: Connection timed out" です。このエラーが発生した場合、ホスト名が DB インスタンスのエンドポイントであること、およびポート番号が正しいことを確認します。接続で経由する可能性のあるファイアウォールを通過するのに必要なルールが、DB インスタンスに割り当てられた DB セキュリティグループに設定されていることを確認します。

関連トピック