Redshiftデータベースに接続し、ハードウェア上で実行されない膨大なクエリを実行するJavaアプリケーションを開発しています。また、アプリケーションは、データセンター内のさまざまな社内の非AWSリソース(NAS、Oracle、MySQLなどのファイル)を使用します。中間サーバー経由でRedshiftに接続
いくつかのネットワークルーティング制限のため、アプリケーションがRedshiftに直接接続することはできません。 SSH経由で私たちの実動Redshiftクラスタに手作業で接続して、VPCに属する中間EC2インスタンスに接続することができます。私はこれをプログラマチックにやりたいと考えています。
同じルーティング制限はありません、私のテスト環境では、、私はこのようなデータソースを使用して接続することができるよ:当社の生産環境では
@Bean(name="dataSourceRedshift")
public DataSource dataSourceRedshift() throws SQLException {
SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
dataSource.setDriver(new com.amazon.redshift.jdbc41.Driver());
dataSource.setUrl("jdbc:postgresql://" + redshiftHost + ":" + redshiftPort + "/" + redshiftDatabase);
dataSource.setUsername(redshiftUser);
dataSource.setPassword(redshiftPass);
return dataSource;
}
、私はRedshiftに直接接続することはできませんが、上記のデータソースBeanを調整してEC2インスタンスを介してSSHトンネルをセットアップする方法はありますか?もしそうでなければ、何が最良の方法であるのですか?