RDS for PostgreSQL インスタンスへの接続に関するトラブルシューティング
– 致命的エラー: データベース名
が存在しません。
接続時にFATAL: database
のようなエラーが発生する場合、デフォルトのデータベース名 postgres を name
does not exist--dbname
オプションに使用してみてください。
- サーバー接続失敗エラー: 接続がタイムアウトしました。
DB インスタンスに接続できない場合、最も一般的なエラーは Could
not connect to server: Connection timed out.
です。このエラーを受け取った場合、以下を確認します。
-
使用しているホスト名が DB インスタンスのエンドポイントであること、および使用しているポート番号が正しいことを確認します。
-
DB インスタンスのパブリックアクセシビリティがはいに設定され、外部接続が許可されていることを確認します。パブリックアクセス設定を変更するには 、Amazon RDS DB インスタンスを変更する を参照してください。
-
データベースに接続するユーザーに CONNECT アクセス権があることを確認してください。次のクエリを使用して、データベースへの接続アクセスを提供できます。
GRANT CONNECT ON DATABASE
database name
TOusername
; -
接続で経由する可能性のあるファイアウォールを通過するアクセス許可のルールが、DB インスタンスに割り当てられたセキュリティグループに設定されていることを確認します。例えば、DB インスタンスをデフォルトポート 5432 で作成した場合、会社のファイアウォールルールにより、外部企業デバイスから当該ポートへの接続がブロックされる可能性があります。
この問題を解決するには、別のポートを使用するよう DB インスタンスを変更します。また、DB インスタンスに適用されているセキュリティグループが、その新しいポートへの接続を許可していることも確認します。データベースポートの設定を変更するには 、「Amazon RDS DB インスタンスを変更する」を参照してください 。
-
「 セキュリティグループのアクセスルールのエラー」も参照してください。
セキュリティグループのアクセスルールのエラー
最も一般的な接続の問題は、DB インスタンスに割り当てられているセキュリティグループのアクセスルールに関係するものです。DB インスタンスの作成時にデフォルトのセキュリティグループを使用した場合、恐らくそのセキュリティグループにはインスタンスへのアクセスを許可するルールはありません。
接続が機能するには、作成時に DB インスタンスに割り当てたセキュリティグループが DB インスタンスへのアクセスを許可する必要があります。例えば、DB インスタンスが VPC で作成された場合、接続を承認する VPC セキュリティグループが必要です。アプリケーションが実行中のデバイスまたはAmazon EC2 インスタンスからの接続を承認しないセキュリティグループを使用して、 DB インスタンスを作成したかどうかを確認します。
セキュリティグループでインバウンドのルールを追加または編集できます。出典 に対して マイ IP を選択すると、ブラウザで検出された IP アドレスから DB インスタンスにアクセスできます。詳細については、「セキュリティグループを作成して VPC 内の DB インスタンスへのアクセスを提供する」を参照してください。
または、DB インスタンスが VPC の外部で作成された場合は、それらの接続を承認するデータベースセキュリティグループが必要です。
Amazon RDS セキュリティグループの詳細については、「セキュリティグループによるアクセス制御」を参照してください。