こんにちは。CData Software Japanリードエンジニアの杉本です。
前回はIIJが提供するクラウドサービスである IIJ GIO で CData API Server を構成しました。
www.cdatablog.jp
今回は CData Syncを構成する方法を紹介します。
IIJ GIOインフラストラクチャーP2 とは?
IIJが提供するパブリッククラウドとプライベートクラウドを融合したIaaSです。
https://www.iij.ad.jp/biz/p2/
一般的なIaaSとして利用可能なパブリックリソースと、VMware環境をそのままクラウドへ移行可能なプライベートリソースが選べることが特徴です。
今回は前者のパブリックリソースにDataSyncを構成してみたいと思います。
CData Sync とは?
Sansan や kintone などのクラウド(SaaS)データ を DB およびデータウェアハウスに同期するレプリケーションツールです。
複雑な設定等は特になく、高度な同期ジョブを作成、運用することができます。また SQL を設定することができるので、柔軟にデータを抽出してデータベースへ連携することができます。
https://www.cdata.com/jp/sync/
CData Sync の構成方法
CData Sync は現在 .NET ベースの「Windows版」とJavaベースの「Cross-Platform版」、およびCross-Platformを予めAMIイメージとして提供している「Amazon AMI版」の3種類が提供されています。
https://www.cdata.com/jp/datasync/www.cdata.com
今回はその中の「Cross-Platform版」を使って、IIJ GIOのIaaSへ展開する方法を紹介したいと思います。
なお、細かな構成方法は以下のヘルプにも掲載されています。
Cross-Platform版は現在大きく分けて2種類の構成方法があります。
一つはCData Sync に予め組み込まれている組み込みJetty サーバーを使うパターン
もう一つはユーザーが任意のJava Servlet コンテナ(Tomcat、JBoss、WebLogic、WebSphere、またはJetty)を使うパターンです。
CData Sync をダウンロードすると、以下の2種類のファイルが混同されており、「setup.jar」を実行すればそのままマシンにCData Sync がインストールされますし、
Tomcatなどに「datasync.war」を配置すれば、そのままその Java Servlet コンテナ上でCData DataSync が利用できるように展開されます。
今回は手軽にセットアップが可能な組み込みJetty サーバーを使うパターンでの構成方法で紹介します。
手順
必要なもの
必要になるものは、IIJ GIOのアカウントとDataSyncの本体です。
- IIJ GIOアカウント
- CData Sync Cross-Platform版
- Salesforce アカウント(トライアルの取得方法はこちらを参照)
IIJ GIO で 仮想サーバを構成する
今回、IIJ GIOでは「VB2-3」プランで「CentOS 8 :64bit」をブートマシンとして構成しました。
ここの環境にSSHでアクセスして、DataSync の構築を行っていきます。
CData DataSyncのダウンロード
まず、CData DataSync 本体を入手します。以下のURLからダウンロードに移動し「Cross-Platform版」をダウンロードしてください。
https://www.cdata.com/jp/datasync/
ZIPファイルを解答すると、以下のファイルが展開されますので、前述の通り「setup.jar」ファイルをこの後利用します。
なお、サーバーにこの後このwarファイルをアップするのですが、今回はwgetコマンドでインスタンス上にダウンロードするので、予め私はクラウドストレージにアップロードしておきました。もちろん、FTPやSCPでアップロードしてもかまいません。
DataSync のセットアップ
それでは DataSync のセットアップを進めていきます。
Cross-Platform版には、JDKが必要なので、あらかじめ、OpenJDKをインストールしておきます。
sudo yum install -y java-1.8.0-openjdk
その後DataSyncの「setup.jar」をダウンロードし、実行すると、ダイアログに従ってインストールをすすめることができます。
sudo wget https://XXXX/DataSync/setup.jar
sudo java -jar setup.jar
Firewall の構成
続いて、CDataSyncのPort「8181」をFirewallが通過できるように、「cdatasync.xml」を作成します。
cd /usr/lib/firewalld/services/
sudo touch cdatasync.xml
sudo vi cdatasync.xml
「cdatasync.xml」の内容は以下のとおりです。
xml version="1.0" encoding="utf-8"
CData Sync
CData Sync
protocol="tcp" port="8181"/>
あとは、先程作成したXMLをFirewallに登録して、リスタートすればOKです。
sudo firewall-cmd --zone=public --permanent --add-service=cdatasync
sudo systemctl restart firewalld.service
MariaDBの構成
DataSyncを使う前に、DataSyncで取得したデータをレプリケートする先のRDBも構成しておきましょう。
# MariaDB をインストール
$ sudo yum install -y mariadb-server
# MariaDB程度 有効化・自動起動設定
$ sudo systemctl start mariadb
# パスワードなどの設定(任意のパスワードを設定)
$ sudo mysql_secure_installation
「mysql_secure_installation」では、サンプルデータベース「mysql」を残しておきました。
ここに今回はSalesforce から取得したデータを流し込んでみたいと思います。
DataSync を使ってみる
それでは実際にDataSync を使ってみましょう。
構成されたIPアドレスでポートNo「8181」を指定することで、DataSyncの管理画面にアクセスすることができます。
「http://XXX.XXX.XXX.XXX:8181/」
ログイン情報はデフォルトだとadmin/adminでは入れます。
ログイン後、情報タブでライセンスをアクティベーションしましょう。今回はトライアルライセンスでアクティベーションを行いました。
では、続いて簡単なレプリケーションの設定を行ってみます。
今回はSalesforce → MySQLにレプリケーションを行います。
「接続」→「データソース」から「Salesforce」を選択し
各種接続情報を入力して、保存します。(アカウントなどの詳しい取得方法はこちらを参照してみてください。)
次にレプリケーション先となるMySQLの接続を定義します。「接続」→「同期先」からMySQLを選択し
先程構成したLocalhostの接続情報を入力します。
あとは同期を行うジョブを作成するだけです。「ジョブ」の画面に移動して「ジョブを追加」をクリックし
テーブルを追加しましょう。一覧からSalesforce のエンティティが選べるので、任意のエンティティ(テーブル)を選択します。
任意のテーブルを追加したら、ジョブを実行します。スケジュール実行もできますし、手動での実行も可能です。これでMySQLにSalesforce のデータが自動的に登録されます。
おわりに
思いの外簡単にセットアップできることがわかってもらえたんじゃないでしょうか。
今回はローカルのRDBにレプリケーションしましたが、IIJ GIOから提供されているRDBにレプリケーションすることも可能です。
皆さんの環境に合わせて構成してみてください。
関連コンテンツ