SQL Workbench/JからAmazon Redshiftに接続できない(2015年)


 

WindowsからRedshiftに接続できる環境をつくるべく、SQL Workbench/Jをインストールした。

環境は、Windows 7 SP1、JRE 1.7.0_07、SQL Workbench/JはBuild 117 (2015-01-04) 。

 
Cluster Subnet Groupを作成してVPCと紐付けをし、Redshiftクラスターを起動する。
ここまでは問題ない。

が、以下のサイトの手順通りSQL Workbench/Jをセットアップしたところ、Redshiftにつながらない・・。

ステップ 1: 前提条件の設定 – Amazon Redshift

connection profileで設定値を入力して接続すると、下記のエラーが出てどうしても接続できない。

connection_failed_20150402

 
いろいろ切り分けした。

・Security Groupの定義をよくよくチェック。ソースのIPを絞っていたので、試しにフルオープン(0.0.0.0/0)にしてみたり。
・クライアント側のWindowsファイアウォールがブロックしている・・?SQLWorkbench64.exeの通信を許可してみたり。
・名前解決・・?JDBC URLのFQDN部分をグローバルIPにしてみたり。
・VPC内の同一サブネットにWindowsインスタンスを立て、そこからRedshiftにローカルIP経由でアクセスしてみたり。
・ドライバ”postgresql-8.4-703.jdbc4.jar”が古いのかもしれない。最新のVersion 9.4-1201を試してみたり。

ここまで試してダメだったので「詰んだ~」とヘコんでいたところ、ふと「日本語のマニュアルがあやしい」説が頭をよぎった。

これがビンゴで、

日本語のマニュアルには

PostgreSQL JDBC ドライバをダウンロードする

Amazon Redshift の推奨される次の PostgreSQL JDBC ドライバをダウンロードします:

http://jdbc.postgresql.org/download/postgresql-8.4-703.jdbc4.jar

クライアントコンピュータの任意の場所にこのファイルを保存することができます。

とあるのだが、

英語のマニュアルに切り替えると、

Download the Amazon Redshift JDBC Driver

Amazon Redshift offers drivers for tools that are compatible with either the JDBC 4.0 API or the JDBC 4.1 API. For information about the functionality supported by these drivers, go to the Amazon Redshift JDBC Driver Release Notes.

Download one of the following, depending on the version of the JDBC API that your SQL client tool or application uses:

JDBC 4.1–compatible driver: https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC41-1.1.2.0002.jar

The class name for this driver is com.amazon.redshift.jdbc41.Driver.

JDBC 4.0–compatible driver: https://s3.amazonaws.com/redshift-downloads/drivers/RedshiftJDBC4-1.1.2.0002.jar

The class name for this driver is com.amazon.redshift.jdbc4.Driver.

と書いてあるのであった・・。
日本語のマニュアルの記載が古く、現状ではPostgreSQLドライバを使うと、Redshiftに接続できない模様(少なくとも私の環境では)。

 
AWS提供の”RedshiftJDBC41-1.1.2.0002.jar”を使ったところ、無事SQL Workbench/JからRedshiftにつながった。

 
教訓:AWSのドキュメントは必ず英語版を参照しましょう。
 
 

関連記事