こんにちは。CData Software Japan リードエンジニアの杉本です。
CData API Server はサーバー用アプリケーションなので、任意のクラウド環境にデプロイして利用することが可能です。
Azure・GCP・AWSなど様々な選択肢がありますが、現在は日本国内でもIaaS・PaaSのクラウドサービスを提供している会社があります。
そんな中で、今回はさくらインターネットが提供するクラウドサービスである「さくらクラウド」でCData API Server を構築する方法を紹介したいと思います。
CData API Server の構成方法
CData API Server は現在 .NET ベースの「Windows版」とJavaベースの「Cross-Platform版」、およびCross-Platformを予めAMIイメージとして提供している「Amazon AMI版」の3種類が提供されています。
今回はその中の「Cross-Platform版」を使って、さくらクラウドのIaaSへ展開する方法を紹介したいと思います。
なお、細かな構成方法は以下のヘルプにも掲載されています。
Cross-Platform版を構成するにあたって
Cross-Platform版は現在大きく分けて2種類の構成方法があります。
一つはCData API Server に予め組み込まれている組み込みJetty サーバーを使うパターン
もう一つはユーザーが任意のJava Servlet コンテナ(Tomcat、JBoss、WebLogic、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を利用します。テスト用なので、構成は最小のものを利用しました。
CData API Serverのダウンロード
まず、CData API Server 本体を入手します。以下のURLからダウンロードに移動し「Cross-Platform版」をダウンロードしてください。
https://www.cdata.com/jp/apiserver/
ZIPファイルを解答すると、以下のファイルが展開されますので、前述の通り「apiserver.war」ファイルをこの後利用します。
なお、サーバーにこの後このwarファイルをアップするのですが、今回はwgetコマンドでインスタンス上にダウンロードするので、予め私はクラウドストレージにアップロードしておきました。もちろん、FTPやSCPでアップロードしてもかまいません。
パケットフィルタの作成
次にさくらクラウドにログインして、環境を構成していきます。
今回はTomcatを構成して、最終的に「8080」ポートでアクセスを行います。そのため、予めパケットフィルタで8080を許可するフィルタ条件を作成しておきましょう。
合わせて、SSH 用の22番ポートを自社のIPアドレスだけ許可し、それ以外をすべてクローズしました。
さくらクラウドの IaaSを構成する
次にIaaSのインスタンスを構成していきます。
サーバ一覧画面に移動して「追加」をクリックし
構成する環境の情報を入力します。今回は検証用途のため、コア数やメモリは最小のものを選択しています。運用環境の場合は、アクセス数などに応じて、選択してください。
アーカイブは「CentOS 7.8」を選択しました。yumからTomcatがインストールしやすいバージョンとして選んだだけなので、Tomcatのインストールが面倒で無い方は任意のOSを選んでかまいません。
あとは「インターネットに接続」する構成を選択し、予め用意しておいたTomcat用のパケットフィルタを選択します。
後ほどSSHでアクセスするので管理者パスワードもしくは公開鍵を指定しておきましょう。
これで構成を行います。
SSH でアクセス
構成が完了したら、対象のIPアドレスを指定して、SSHでアクセスします。
ssh root@XXX.XXX.XXX.XXX
ログインパスワードは先程指定した管理者パスワードを入力します。
必要なパッケージのインストール
それでは環境構築を進めていきましょう。まずyumをアップデートして
yum update
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
<?xml version="1.0" encoding="utf-8"?> <service> <short>Apache Tomcat 8</short> <description>Apache Tomcat 8</description> <port protocol="tcp" port="8080"/> </service>
あとは、先程作成したXMLをFirewallに登録して、リスタートすれば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/
以下のように画面が表示され、ログインできれば作業完了です。
おわりに
CData API Server は無償版も提供されています。今回のようなクラウド・ホスティングも可能なので、ぜひ試してみてください。
20200618追記:パケットフィルタのDeny部分について追記しました。