PostgreJDBCドライバーを使用してSQLWorkbench/JからRedshiftデータベースに接続しようとしていますが、接続できません。 「接続に失敗しました」というエラーが表示されます。 jdbcドライバーは正しく配置されています。 Redshift用のAginityWorkbenchも試しましたが、データベースのリストを表示できませんでした。 jdbc:postgresql://Host:port/name_of_database
の形式のデータベースへの接続URLを持っていますが、驚くべきことに、ホストにpingを実行することさえできませんでした。 Amazonコンソールからデータベースの状態が良好であることがわかります。だから、私の質問は次のとおりです。
編集1:パブリックIPをセキュリティグループに追加した後、ping中にホストは解決されますが、それでも100%のパケット損失があります。
Edit2:EC2-Classicでデータベースを正常にホストできましたが、EC2-VPCではホストできませんでした。パブリックIPが不足しているため、100%のパケット損失があるVPCでデータベースを再ホストしようとしました。
IPアドレスブロックをクラスターのセキュリティグループに追加する必要があります。
これは、他のセキュリティグループ(VPCなど)とは別のものです。
Redshiftコンソールの左側にあります。 https://console.aws.Amazon.com/redshift/
ローカルマシンからpsqlを介してVPCのRedshiftクラスターに接続しようとしました。ローカルIP/CIDRをセキュリティグループのインバウンドルールに明示的に追加する必要があることがわかりました。
メニューはAWSコンソールの[Services]> [VPC]> [SecurityGroups]にあります。次に、クリックしてセキュリティグループを編集すると、ページの下部に[受信ルール]タブが表示されます。例:
これ以前はCIDRに慣れていませんでしたが、デフォルトのCIDRは32のようです。私の場合、xx.xxx.xxx.xx/32からのトラフィックを許可するインバウンドルールを追加しました-xx.xxx.xxx.xxが私のローカルIPアドレスです。
同じVPC内のEC2インスタンスの場合、プライベートIPのCIDR/IPをセキュリティグループルールに追加する必要があります。つまり、54.191.XXX.XXXのパブリックIPの代わりに、172.31.XXXのプライベートIPを追加する必要があります。 .XXXをセキュリティグループの入力ルールに追加します。
VPC内のEC2マシンから接続するだけで問題を解決したようです。これは、Redshiftクラスターを公開しなかったことを意味します。これは、クラスターを起動するときに使用できるオプションの1つです。