CData Software Blog

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

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

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

CData API Server はサーバー用アプリケーションなので、任意のクラウド環境にデプロイして利用することが可能です。

Azure・GCPAWSなど様々な選択肢がありますが、現在は日本国内でもIaaS・PaaSのクラウドサービスを提供している会社があります。

そんな中で、今回はさくらインターネットが提供するクラウドサービスである「さくらクラウド」でCData API Server を構築する方法を紹介したいと思います。

https://cloud.sakura.ad.jp/

f:id:sugimomoto:20200617221944p:plain

CData API Server の構成方法

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

www.cdata.com

f:id:sugimomoto:20200417222416p:plain

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

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

cdn.cdata.com

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

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

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

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

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

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

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

手順

必要なもの

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

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

f:id:sugimomoto:20200617221953p:plain

CData API Serverのダウンロード

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

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

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

f:id:sugimomoto:20200417222634p: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フォルダにAPI Serverのwarファイルを配置します。

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

次に、API Serverへログインするためのユーザーを登録します。「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/apiserver/

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

f:id:sugimomoto:20200617222058p:plain

f:id:sugimomoto:20200617222105p:plain

おわりに

CData API Server は無償版も提供されています。今回のようなクラウドホスティングも可能なので、ぜひ試してみてください。

www.cdata.com

f:id:sugimomoto:20200417224437p:plain

20200618追記:パケットフィルタのDeny部分について追記しました。