CData API Server を AWS EC2 Amazon Linux2 で構成する

by 杉本和也 | 2020年04月20日

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

前回、CData Sync を AWS EC2 で構成する方法を紹介しました。今回は CData API Serverの構成も紹介したいと思います。

www.cdatablog.jp

CData API Server の構成方法

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

www.cdata.com

f:id:sugimomoto:20200417222416p:plain

今回はその中でも「Cross-Platform版」を使って、自前でAWS EC2を構成し、展開する方法を紹介したいと思います。

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

cdn.cdata.com

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 が利用できるように展開されます。

今回は手軽に構築できる前者の「setup.jar」を使った構築方法を紹介したいと思います。

手順

CData API Serverのダウンロード

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

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

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

f:id:sugimomoto:20200417222634p:plain

なお、EC2 にこの後この「setup.jar」ファイルをアップするのですが、今回はwgetコマンドでEC2上にダウンロードするので、予め私はAmazon S3にアップロードしておきました。

AWS EC2 Amazon Linux の立ち上げ

次にAWS EC2のインスタンスを立ち上げます。

なお、今回は最小環境で構成しますが、必要な性能要件は利用するデータソースや頻度、求めるパフォーマンスによって異なります。

最低限必要な環境要件は以下のURLから確認してください。

http://cdn.cdata.com/help/BWE/jp/odata/System-Requirements.html

今回はベーシックな「Amazon Linux 2 AMI(HVM) SSD Volume Type」

f:id:sugimomoto:20200408225137p:plain

無料利用枠の対象である「t2.micro」で立ち上げました。

f:id:sugimomoto:20200408225433p:plain

環境構成で唯一注意したい点はセキュリティグループの設定で開けるポートです。8080ポートで接続することになるので、以下のようにカスタムTCPでポートを許可しておきましょう。

f:id:sugimomoto:20200408225500p:plain

環境構成後、SSHで接続しますが、今回はお手軽な EC2 Instance Connect で行いました。

f:id:sugimomoto:20200408225615p:plain

JDK Install

まず、JDKをインストールします。今回は手軽にインストールできる yum から「java-1.8.0-openjdk」をインストールしました。

sudo yum install -y java-1.8.0-openjdk

CData API Server の配置

JDKをインストール後、任意の方法で「setup.jar」をダウンロードします。

sudo wget https://XXXXXX/setup.war

ダウンロード後、javaコマンドでsetup.jarファイルを実行します。

sudo java -jar setup.jar

実行後はダイアログに従って、インストールを進めてください。

インストール完了後、自動的にAPI Serverが立ち上がり、「http://EC2のアドレス:8080」でAPI Serverにアクセスできるようになります。

MariaDBの構成

せっかくなので、API Server で REST APIの生成を試すことができる MariaDB (MySQLで接続)も構成してみたいと思います。

# MariaDB をインストール
$ sudo yum install -y mariadb-server

# MariaDB程度 有効化・自動起動設定
$ sudo systemctl start mariadb

# パスワードなどの設定(任意のパスワードを設定)
$ sudo mysql_secure_installation

MariaDB にサンプルデータをインストール

次に MySQL のサンプルデータベースとして公開されているSakila DBを登録します。

https://dev.mysql.com/doc/sakila/en/sakila-installation.html

# 各SQLファイルをダウンロードしてロード
$ sudo wget https://downloads.mysql.com/docs/sakila-db.tar.gz

# ダウンロードした tar.gz を解凍
$ sudo gunzip sakila-db.tar.gz
$ sudo tar xvf sakila-db.tar

# MariaDBにログインして、sakila DB を構成
$ mysql -u root -p

mysql> SOURCE /home/ec2-user/sakila-db/sakila-schema.sql;
mysql> SOURCE /home/ec2-user/sakila-db/sakila-data.sql;

API Server から Localhost の MariaDB に接続してAPIを構成

では、インストールしたMariaDBから REST API を生成してみます。

デフォルトのログイン情報は admin/admin です。

CData API Server にログインし「設定」→「接続」の画面に移動し、データソース一覧の中から「MySQL」を選択します。

f:id:sugimomoto:20200417223617p:plain

あらかじめ設定したLocalhost MariaDBの接続情報を入力し、テスト接続で接続状況を確認した上で、設定を保存しましょう。

f:id:sugimomoto:20200417223655p:plain

次にリソースを追加するために「設定」→「リソース」へ移動し、「リソースを追加」をクリックします。

f:id:sugimomoto:20200417223724p:plain

接続先の一覧から先程登録したMariaDBのMySQL接続を選択すると

f:id:sugimomoto:20200417223753p:plain

対象のテーブル一覧に予め登録したSakila DB のテーブルリストが出てきます。ここから任意のテーブルを選択して

f:id:sugimomoto:20200417223817p:plain

あとは、保存をクリックすれば対象のテーブルがそのままREST APIとして生成されて公開されます。

f:id:sugimomoto:20200417223838p:plain

APIページに行くと、テーブルリソースが追加され、API Reference を確認できます。

f:id:sugimomoto:20200417223911p:plain

実際にエンドポイントにアクセスしてみると、GETリクエストが実行されて、データを取得できました。

f:id:sugimomoto:20200417223948p:plain

おわりに

CData API Server は現在無償版もあるので、ぜひ試してみてください。

www.cdata.com

f:id:sugimomoto:20200417224437p:plain

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。