Amazon Relational Database Service
ユーザーガイド (API バージョン 2014-10-31)

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

Amazon RDS によって DB インスタンスがプロビジョニングされると、標準の SQL クライアントアプリケーションを使用してインスタンスに接続できます。Amazon RDS DB インスタンスの詳細を一覧表示するには、AWS マネジメントコンソール、AWS CLI の describe-db-instances コマンド、または Amazon RDS API の DescribeDBInstances アクションを使用できます。接続するには以下の情報が必要です。

  • 次の例のような DB インスタンスのホストまたはホスト名。

    myinstance.123456789012.us-east-1.rds.amazonaws.com
  • DB インスタンスがリッスンするポート。たとえば、デフォルトの PostgreSQL ポートは 5432 です。

  • DB インスタンスのユーザー名とパスワード。

以下に、PostgreSQL DB インスタンスに接続する 2 つの方法を示します。最初の例では、オープンソースの PostgreSQL 向け管理開発ツールとして人気のある pgAdmin を使用します。2 番目の例では、PostgreSQL に付属するコマンドラインユーティリティである psql を使用します。

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

オープンソースのツール pgAdmin を使用して、PostgreSQL DB インスタンスに接続できます。

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

  1. http://www.pgadmin.org/ から pgAdmin をインストールします。pgAdmin は、クライアントコンピュータに PostgreSQL のローカルインスタンスがなくても、ダウンロードして使用できます。

  2. クライアントコンピュータの pgAdmin アプリケーションを起動します。

  3. [Dashboard] (ダッシュボード) タブで、[Add New Server] (新しいサーバーの追加) を選択します。

  4. [Create - Server] (作成 - サーバー) ダイアログボックスの [General] (全般) タブで名前を入力して、pgAdmin のサーバーを特定します。

  5. [Connection] (接続) タブで、DB インスタンスから以下の情報を入力します。

    • [ホスト] に、エンドポイントを入力します (例: mypostgresql.c6c8dntfzzhgv0.us-east-2.rds.amazonaws.com)。

    • [Port] (ポート) には、割り当てられているポートを入力します。

    • [Username] (ユーザー名) には、DB インスタンスの作成時に入力したユーザー名を入力します。

    • [パスワード] に、DB インスタンスの作成時に入力したパスワードを入力します。

  6. [Save] を選択します。

    接続に問題がある場合は、「接続の問題のトラブルシューティング」を参照してください。

  7. pgAdmin ブラウザでデータベースにアクセスするには、[Servers] (サーバー)、DB インスタンス、および [Databases] (データベース) を展開します。DB インスタンスのデータベース名を選択します。

  8. SQL コマンドを入力できるパネルを開くには、[Tools] (ツール)、[Query Tool] (クエリツール) の順に選択します。

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

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

以下の形式のいずれかを使用して、Amazon RDS 上の PostgreSQL DB インスタンスに接続します。接続時にパスワードを求められます。バッチジョブまたはスクリプトには、--no-password オプションを使用します。

Unix の場合、次の形式を使用します。

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

Windows の場合、次の形式を使用します。

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

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

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

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

DB インスタンスに接続できない場合、最も一般的なエラーは Could not connect to server: Connection timed out. です。このエラーを受け取った場合は、以下を実行します。

  • 使用しているホスト名が DB インスタンスのエンドポイントであること、および使用しているポート番号が正しいことを確認します。

  • DB インスタンスのパブリックアクセシビリティが [Yes] (はい) に設定されていることを確認します。

  • 接続で経由する可能性のあるファイアウォールを通過するアクセス許可のルールが、DB インスタンスに割り当てられたセキュリティグループに設定されていることを確認します。たとえば、DB インスタンスをデフォルトポートの 5432 を使用して作成した場合、会社のファイアウォールルールで自社デバイスからのそのポートへの接続がブロックされる可能性があります。

    この問題を解決するには、別のポートを使用するよう DB インスタンスを変更します。また、DB インスタンスに適用されているセキュリティグループが、その新しいポートへの接続を許可していることも確認します。

  • アプリケーションが実行中のデバイスまたは Amazon EC2 インスタンスからの接続を承認しないセキュリティグループを使用して DB インスタンスを作成したかどうか確認します。接続が機能するには、作成時に DB インスタンスに割り当てたセキュリティグループが DB インスタンスへのアクセスを許可する必要があります。たとえば、DB インスタンスが VPC で作成された場合、接続を承認する VPC セキュリティグループが必要です。または、DB インスタンスが VPC の外部で作成された場合は、それらの接続を承認するデータベースセキュリティグループが必要です。

最も一般的な接続の問題は、DB インスタンスに割り当てられているセキュリティグループのアクセスルールに関係するものです。DB インスタンスの作成時にデフォルトの DB セキュリティグループを使用した場合、恐らくそのセキュリティグループにはインスタンスへのアクセスを許可するルールはありません。Amazon RDS セキュリティグループの詳細については、「セキュリティグループによるアクセスの制御」を参照してください。