CData Software Blog

クラウド連携のCData Software の技術ブログです。

さくらクラウドで CData Sync を構築する

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

前回、さくらクラウドでCData API Serverを構成する方法を紹介しました。

www.cdatablog.jp

今回はそのさくらクラウドにCDataSyncを構成方法も紹介したいと思います。

自動データレプリケーション | CData Software Japan

f:id:sugimomoto:20200622105809p:plain

cloud.sakura.ad.jp

f:id:sugimomoto:20200617221944p:plain

CData Sync の構成方法

CData Sync はAPI Serverと同様に現在 .NET ベースの「Windows版」とJavaベースの「Cross-Platform版」、およびCross-Platformを予めAMIイメージとして提供している「Amazon AMI版」の3種類が提供されています。

https://www.cdata.com/jp/sync/www.cdata.com

f:id:sugimomoto:20200622105940p:plain

今回はその中の「Cross-Platform版」を使って、さくらクラウドのIaaSへ展開する方法を紹介します。

なお、細かな構成方法は以下のヘルプにも掲載されています。

cdn.cdata.com

Cross-Platform版を構成するにあたって

Cross-Platform版は現在大きく分けて2種類の構成方法があります。

一つはCData Sync に予め組み込まれている組み込みJetty サーバーを使うパターン

もう一つはユーザーが任意のJava Servlet コンテナ(TomcatJBossWebLogic、WebSphere、またはJetty)を使うパターンです。

CData Sync をダウンロードすると、以下の2種類のファイルが混同されており、「setup.jar」を実行すればそのままマシンにCData Sync がインストールされますし、

Tomcatなどに「datasync.war」を配置すれば、そのままその Java Servlet コンテナ上でCData Sync が利用できるように展開されます。

今回は後者の任意のJava Servletコンテナに展開する例としてさくらクラウドIaaSを立ち上げて、Tomcatを構成し、CData Sync を展開する方法で進めます。

手順

必要なもの

必要になるものは、さくらクラウドのアカウントとSyncの本体です。

  • さくらクラウドアカウント
  • CData Sync Cross-Platform版

さくらクラウドではIaaSを利用します。テスト用なので、構成は最小のものを利用しました。

f:id:sugimomoto:20200617221953p:plain

CData Syncのダウンロード

まず、CData Sync 本体を入手します。以下のURLからダウンロードに移動し「Cross-Platform版」をダウンロードしてください。

https://www.cdata.com/jp/sync/

ZIPファイルを解答すると、以下のファイルが展開されますので、前述の通り「datasync.war」ファイルをこの後利用します。

f:id:sugimomoto:20200622105955p:plain

なお、サーバーにこの後このwarファイルをアップするのですが、今回はwgetコマンドでインスタンス上にダウンロードするので、予め私はクラウドストレージにアップロードしておきました。もちろん、FTPやSCPでアップロードしてもかまいません。

パケットフィルタの作成

次にさくらクラウドにログインして、環境を構成していきます。

今回はTomcatを構成して、最終的に「8080」ポートでアクセスを行います。そのため、予めパケットフィルタで8080を許可するフィルタ条件を作成しておきましょう。

合わせて、SSH 用の22番ポートを自社のIPアドレスだけ許可し、それ以外をすべてクローズしました。

f:id:sugimomoto:20200618143500p:plain

さくらクラウドの IaaSを構成する

次にIaaSのインスタンスを構成していきます。

サーバ一覧画面に移動して「追加」をクリックし

f:id:sugimomoto:20200617222007p:plain

構成する環境の情報を入力します。今回は検証用途のため、コア数やメモリは最小のものを選択しています。運用環境の場合は、アクセス数などに応じて、選択してください。

アーカイブは「CentOS 7.8」を選択しました。yumからTomcatがインストールしやすいバージョンとして選んだだけなので、Tomcatのインストールが面倒で無い方は任意のOSを選んでかまいません。

f:id:sugimomoto:20200617222019p:plain

あとは「インターネットに接続」する構成を選択し、予め用意しておいたTomcat用のパケットフィルタを選択します。

f:id:sugimomoto:20200617222027p:plain

後ほどSSHでアクセスするので管理者パスワードもしくは公開鍵を指定しておきましょう。

f:id:sugimomoto:20200617222034p:plain

これで構成を行います。

f:id:sugimomoto:20200617222042p:plain

SSH でアクセス

構成が完了したら、対象のIPアドレスを指定して、SSHでアクセスします。

ssh root@XXX.XXX.XXX.XXX

ログインパスワードは先程指定した管理者パスワードを入力します。

必要なパッケージのインストール

それでは環境構築を進めていきましょう。まずyumをアップデートして

yum update

Tomcatwgetyumからインストールします。

sudo yum install tomcat
sudo yum install wget 

インストール完了後、tomcatのWebAppsフォルダにSyncのwarファイルを配置します。

cd usr/share/tomcat/webapps
sudo wget https://XXXXX/datasync.war

次に、Syncへログインするためのユーザーを登録します。「conf/tomcat-users.xml」を編集し

sudo vi /usr/share/tomcat/conf/tomcat-users.xml

以下の行を追加します。

<user name="admin" password="admin" roles="cdata_admin,admin-gui,manager-gui,manager-status,manager-script,manager-jmx" />

Firewall の構成

続いて、TomcatのPort「8080」をFirewallが通過できるように、「tomcat.xml」を作成します。

cd /usr/lib/firewalld/services/
sudo touch tomcat.xml
sudo vi tomcat.xml

tomcat.xml」の内容は以下のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Apache Tomcat 8</short>
  <description>Apache Tomcat 8</description>
  <port protocol="tcp" port="8080"/>
</service>

あとは、先程作成したXMLFirewallに登録して、リスタートすればOKです。

sudo firewall-cmd --zone=public --permanent --add-service=tomcat
sudo systemctl restart firewalld.service

tomcat の起動

それではTomcatを起動してみましょう。

sudo systemctl start tomcat

起動後、以下のURLでアクセスすることができます。

http://XXX.XXX.XXX.XXX:8080/datasync/

以下のように画面が表示され、ログインできれば作業完了です。

f:id:sugimomoto:20200622110019p:plain

ログイン後、忘れずにトライアルを有効化しておきましょう。

f:id:sugimomoto:20200622110026p:plain

おわりに

さくらクラウドMariaDBPostgreSQLクラウドデータベースのサービスも提供されているので、CDataSyncを使ってそういったデータベースにレプリケーションも可能です。

f:id:sugimomoto:20200622110054p:plain

もちろん、RDB以外にも様々なNoSQL・DWHをサポートしているので、お好みのデータソースにレプリケーションを試してみてください。

https://www.cdata.com/jp/sync/#destinations

f:id:sugimomoto:20200622110100p:plain