by CData Software Japan | May 13, 2021

SSHサーバー経由で PostgreSQL に接続する方法:CData PostgreSQL ODBC Driver

f:id:sugimomoto:20210518162710p:plain

こんにちは。CData Software Japan リードエンジニアの杉本です。

AWSやAzureでPostgreSQL などのRDBを構築している方々の中には、外部からだと踏み台のSSHサーバーを経由しなければ接続できない環境構成をされているところが結構あるのではないでしょうか。

通常であれば、Puttyなどでポートフォワードを構成して、接続しなければいけませんが、CData PostgreSQL Driverだと、Driverの機能を使ってポートフォワードの必要など無くSSHサーバーを経由した接続が実現できます。

www.cdata.com

f:id:sugimomoto:20210513134508p:plain

今回はこのSSHサーバー経由での接続方法を紹介したいと思います。

なお、PostgreSQL ODBC Driverを例としていますが、この機能はJDBCADO.NETなどすべてのテクノロジーラインナップで対応しています。

対象の環境について

今回は AWS RDS PostgreSQL を対象のRDBとして、EC2で構成したSSHサーバーを経由して接続を行います。

以下のようなイメージになります。

f:id:sugimomoto:20210513134515p:plain

SSHサーバーには外部から以下のSSHコマンドでRDBにアクセスできるようになっており

ssh -i "key.pem" ec2-user@ec2-X-XXX-XXX-X.ap-northeast-1.compute.amazonaws.com

このSSHサーバーからのみ、Amazon RDS の PostgreSQLにアクセスできます。

接続手順

まず、必要なドライバーをダウンロードしてきましょう。

以下のURLからCData PostgreSQL ODBC Driver 30日間のトライアルが入手できます。

https://www.cdata.com/jp/drivers/postgresql/odbc/

f:id:sugimomoto:20210513134546p:plain

ダウンロード後、Exeファイルを実行し、ダイアログに従ってセットアップを進めます。

f:id:sugimomoto:20210513134554p:plain

https://cdn.cdata.com/help/FPF/jp/odbc/RSBPostgresql_p_UseSSH.htm

セットアップが完了すると、以下のようにODBC DSNの構成画面が表示されるので、接続情報をそれぞれ入力します。

AuthenticationカテゴリのところにはSSHサーバー経由で接続するPostgreSQL RDSの情報

SSHカテゴリのところに、EC2 SSHサーバーの接続情報をそれぞれ入力します。

プロパティ名 備考
Server 例)database-1.CDataSample.ap-northeast-1.rds.amazonaws.com Amazon RDS PostgreSQLのエンドポイント
Port 5432
User 例)Postgres PostgreSQLのユーザー
Database 例)Postgres 接続対象DB名
Password 例)YOUR_PASSWORD PostgreSQLのユーザーパスワード
SSH Port 22 SSHサーバー接続用ポートを指定
SSH Server 例)ec2-X-XXX-XXX-X.ap-northeast-1.compute.amazonaws.com SSHサーバーのSSHアドレスを指定
SSH User ec2-user SSHアクセスユーザーを指定
SSH Client Cert 例)C:\Work\AWS\key.pem 予めダウンロードしたPEMキーファイルを指定
Use SSH True SSH接続を利用するのでTrueに設定します。

f:id:sugimomoto:20210513134600p:plain

入力後、接続テストをクリックして、以下のように成功しましたと表示されればOKです。

f:id:sugimomoto:20210513134607p:plain

テーブルタブで実際にAmazon RDS PostgreSQLに接続して、情報が読み取れているかを確認できます。

f:id:sugimomoto:20210513134611p:plain

おわりに

このような形でCData のPostgreSQL Driverでは、オープンソース側で対応していないような機能にも対応していたりします。

もしその他気になる点があれば、テクニカルサポートまでお気軽にお問い合わせください。

https://www.cdata.com/jp/support/submit.aspx