こんにちは。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
今回はその中でも「Cross-Platform版」を使って、自前でAWS EC2を構成し、展開する方法を紹介したいと思います。
なお、細かな構成方法は以下のヘルプにも掲載されています。
cdn.cdata.com
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」ファイルをこの後利用します。
なお、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」
無料利用枠の対象である「t2.micro」で立ち上げました。
環境構成で唯一注意したい点はセキュリティグループの設定で開けるポートです。8080ポートで接続することになるので、以下のようにカスタムTCPでポートを許可しておきましょう。
環境構成後、SSHで接続しますが、今回はお手軽な EC2 Instance Connect で行いました。
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」を選択します。
あらかじめ設定したLocalhost MariaDBの接続情報を入力し、テスト接続で接続状況を確認した上で、設定を保存しましょう。
次にリソースを追加するために「設定」→「リソース」へ移動し、「リソースを追加」をクリックします。
接続先の一覧から先程登録したMariaDBのMySQL接続を選択すると
対象のテーブル一覧に予め登録したSakila DB のテーブルリストが出てきます。ここから任意のテーブルを選択して
あとは、保存をクリックすれば対象のテーブルがそのままREST APIとして生成されて公開されます。
APIページに行くと、テーブルリソースが追加され、API Reference を確認できます。
実際にエンドポイントにアクセスしてみると、GETリクエストが実行されて、データを取得できました。
おわりに
CData API Server は現在無償版もあるので、ぜひ試してみてください。
www.cdata.com
関連コンテンツ