こんにちは、テクニカルサポートエンジニアの宮本(@miyamon44)です。
今回は VPC 内の SSH サーバーからのみアクセス可能な AWS RDS for PostgreSQL に 、外部ネットワークにある ETL/ELT ツールの CData Sync から接続してSaaS データをレプリケートしてみる方法をご紹介します。
対象の環境について
AWS VPC 外からの直接のアクセスはできないようにしている AWS RDS for PostgreSQL に対して、別ネットワークにある CData Sync から EC2 の SSH サーバー経由でRDS にアクセスを行い、SaaS データのレプリケートを実行していく構成としています。
RDS for PostgreSQL のセキュリティグループのインバウントルールには、5432 ポートかつ、プライベート環境の 172.31.10.132 からのみアクセスできる設定になっています。
以下は SSH サーバーの プライベート IP アドレスです。
この構成の場合、通常であれば別途 Putty などで SSH ポートフォワーディングを設定して対応することになるかと思いますが、CData Sync では SSH サーバーと RDS for PostgreSQL の接続情報を指定することで接続することができるようになります。
では、さっそく手順をみていきましょう。
※CDataSync のインストールがまだされていない場合は、こちらの記事を参考にインストールしてみてください。
www.cdatablog.jp
接続手順
CData Sync の接続画面の同期先タブより、PostgreSQL コネクタをクリックします。
まずは AWS RDS for PostgreSQL の接続情報を設定します。設定が完了しましたら、Advanced タブをクリックします。
プロパティ名 |
値 |
備考 |
Server |
例)database-1.CDataSample.ap-northeast-1.rds.amazonaws.com |
Amazon RDS PostgreSQLのエンドポイント |
Port |
5432 |
|
Database |
例)Postgres |
接続対象DB名 |
User |
例)Postgres |
PostgreSQLのユーザー |
Password |
例)YOUR_PASSWORD |
PostgreSQLのユーザーパスワード |
Advanced タブでは SSH サーバーの設定を行います。
プロパティ名 |
値 |
備考 |
SSH Client Cert |
例)C:\Work\AWS\key.pem |
予めダウンロードしたPEMキーファイルを指定 |
SSH Client Cert Type |
PEMKEY_FILE |
|
SSH Port |
22 |
SSHサーバー接続用ポートを指定 |
SSH Server |
例)ec2-X-XXX-XXX-X.ap-northeast-1.compute.amazonaws.com |
SSHサーバーのSSHアドレスを指定 |
SSH User |
ec2-user |
SSHアクセスユーザーを指定 |
Use SSH |
True |
SSH接続を利用するのでTrueに設定します |
入力が終わりましたら、もう一度設定タブに戻り、右下の接続テストボタンから接続テストを行います。接続が完了したら保存します。
それではここからジョブを作成していきます。
ヘッダーのジョブボタンをクリックしてジョブ作成画面に遷移し、ジョブを追加から対象のデータソース、同期先(先ほど作成したPostgreSQL)を選択します。
テーブルを追加から、今回は Salesforce の Opportunity テーブルを使用しますので、チェックを入れて右下のボタンをクリックします。
ではレプリケートを行ってみます。
作成したクエリにチェックを入れ、実行ボタンをクリックします。ジョブが完了すると最終更新日時とステータスがこのように表示されます。
最後に SSH サーバーから AWS RDS for PostgreSQL を参照してみます。
[ec2-user@ip-172-31-10-132 ~]$ psql -d cdata -U postgres -h postgresql-miya.csmyxxxr4ysy.ap-northeast-1.rds.amazonaws.com
Password for user postgres:
psql (9.2.24, server 12.5)
WARNING: psql version 9.2, server version 12.0.
Some psql features might not work.
SSL connection (cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256)
Type "help" for help.
cdata=>
cdata=> \dt
List of relations
Schema | Name | Type | Owner
関連コンテンツ