web-dev-qa-db-ja.com

Redshiftデータベースに接続できません

PostgreJDBCドライバーを使用してSQLWorkbench/JからRedshiftデータベースに接続しようとしていますが、接続できません。 「接続に失敗しました」というエラーが表示されます。 jdbcドライバーは正しく配置されています。 Redshift用のAginityWorkbenchも試しましたが、データベースのリストを表示できませんでした。 jdbc:postgresql://Host:port/name_of_databaseの形式のデータベースへの接続URLを持っていますが、驚くべきことに、ホストにpingを実行することさえできませんでした。 Amazonコンソールからデータベースの状態が良好であることがわかります。だから、私の質問は次のとおりです。

  1. Redshiftデータベースサーバーにpingできないのはなぜですか?
  2. データベースサーバーにSSH接続する方法はありますか?

編集1:パブリックIPをセキュリティグループに追加した後、ping中にホストは解決されますが、それでも100%のパケット損失があります。

Edit2:EC2-Classicでデータベースを正常にホストできましたが、EC2-VPCではホストできませんでした。パブリックIPが不足しているため、100%のパケット損失があるVPCでデータベースを再ホストしようとしました。

14
chemicalkt

IPアドレスブロックをクラスターのセキュリティグループに追加する必要があります。

これは、他のセキュリティグループ(VPCなど)とは別のものです。

Redshiftコンソールの左側にあります。 https://console.aws.Amazon.com/redshift/

16
Joe Harris

ローカルマシンからpsqlを介してVPCのRedshiftクラスターに接続しようとしました。ローカルIP/CIDRをセキュリティグループのインバウンドルールに明示的に追加する必要があることがわかりました。

メニューはAWSコンソールの[Services]> [VPC]> [SecurityGroups]にあります。次に、クリックしてセキュリティグループを編集すると、ページの下部に[受信ルール]タブが表示されます。例:


inbound rules menu example

これ以前はCIDRに慣れていませんでしたが、デフォルトのCIDRは32のようです。私の場合、xx.xxx.xxx.xx/32からのトラフィックを許可するインバウンドルールを追加しました-xx.xxx.xxx.xxが私のローカルIPアドレスです。

5

同じVPC内のEC2インスタンスの場合、プライベートIPのCIDR/IPをセキュリティグループルールに追加する必要があります。つまり、54.191.XXX.XXXのパブリックIPの代わりに、172.31.XXXのプライベートIPを追加する必要があります。 .XXXをセキュリティグループの入力ルールに追加します。

2
Gongqin Shen

VPC内のEC2マシンから接続するだけで問題を解決したようです。これは、Redshiftクラスターを公開しなかったことを意味します。これは、クラスターを起動するときに使用できるオプションの1つです。

0
simplycoding