メニュー
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. Launch the pgAdmin application on your client computer. You can install pgAdmin from http://www.pgadmin.org/.

  2. Select Add Server from the File menu.

  3. In the New Server Registration dialog box, enter the DB instance endpoint (for example, mypostgresql.c6c8dntfzzhgv0.us-west-2.rds.amazonaws.com) in the Host text box. Do not include the colon or port number as shown on the Amazon RDS console (mypostgresql.c6c8dntfzzhgv0.us-west-2.rds.amazonaws.com:5432).

    Enter the port you assigned to the DB instance into the Port text box. Enter the user name and user password you entered when you created the DB instance into the Username and Password text boxes, respectively.

    
                                Postgres connect

  4. Click OK.

  5. In the Object browser, expand the Server Groups. Select the Server (the DB instance) you created, and then select the database name.

    
                                Postgres connect

  6. Click the plugin icon and click PSQL Console. The psql command window opens for the default database you created.

    
                                Postgres connect

  7. Use the command window to enter SQL or psql commands. Type \q to close the window.

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 セキュリティグループに設定されていることを確認します。

関連トピック