こんにちは。CData Software Japan リードエンジニアの杉本です。
今日は エンタープライズ検索のアプリケーションとして有名な Elasticsearch を Elastic Cloud を使って環境をホスティングする方法、および構成後に Elasticsearch REST APIにアクセスする方法(Postman・CData Drivers)を紹介したいと思います。
Elasticsearch とは?
Elasticsearch は Apache Lucene を基盤として構築されたオープンソースの RESTful 分散検索/分析エンジンです。
オープンソースとしても提供されていますが、 Elastic社が提供する Elastic Cloud を用いることでAWS・Azure・GCPのクラウド上でPaaSライクに環境をホスティングすることが可能になっています。
AWSなどでもマネージドなPaaSサービスとして Amazon Elasticsearch Service なども提供されています。
今回は Elastic Cloud での環境構築方法を解説します。
手順
Elastic Cloudのトライアル開始
Elastic Cloud は14日間のトライアルを利用可能です。トライアルは以下のURLにアクセスして開始します。
https://www.elastic.co/jp/downloads
まずはアカウント登録を行います。以下のボックスにメールアドレスを入力し「トライアルを始める」をクリックの上、いくつかの設問に回答すればOKです。
確認メールが届くので、メールアドレスの確認を完了し、パスワードを設定するとElastic Cloud のアカウントが作成されます。
パスワード設定後、環境構築を開始します。「Start your free trial」をクリックし
任意の設定で環境を構築します。
今回はAWS上でJapanリージョンの環境を構築しました。バージョンや構成は任意のものを選択してください。選択後、「Create Deployment」ボタンをクリックすれば、環境が構成されます。簡単でとてもいいです。
環境構築開始後、REST API へのアクセスやKibanaへのログイン情報としてUsernameとPasswordが表示されるので忘れずに控えておきましょう。
Kibanaでサンプルデータを作成
環境構築後、APIを試すためにサンプルデータを登録したいと思います。
TOP画面から構成した環境を選択し、Kibanaを立ち上げます。
Kibanaにログインすると、以下のような画面が表示されるので「Try our sample data」を選択します。
Kibanaでは3種類のサンプルデータを利用できます。今回はWeb site Logのサンプルデータを登録しました。
登録したサンプルデータを確認してみます。ここはGIFアニメで撮影しました。
Index名は「kibana_sample_data_logs」で生成されています。DevToolsでREST APIを叩いてみると、正常にサンプルデータが登録されていることが確認できました。
外部から REST API へのアクセス
それでは、外部からこのElasticsearchのREST APIにアクセスしてみたいと思います。
今回は「Postman」から試してみました。
外部からアクセスする場合は、Elastic Cloud のTOPページからEndpoint URLをコピーします。
Postmanを立ち上げて、「GET」メソッドで取得したエンドポイントを使ってURL「https://225b199641544596a4feacbf40ae0ccf.ap-northeast-1.aws.found.io:9243/_search」を組み立てます。
認証はBasic認証で接続できます。「Authorization」タブから「Basic Auth」を選択し、Kibanaへログインする時に利用したUsernameとPasswordを指定します。
あとは「Send」でリクエストを実行すれば、以下のようにRESTAPIにアクセスできます。
URLを「https://225b199641544596a4feacbf40ae0ccf.ap-northeast-1.aws.found.io:9243/kibana_sample_data_logs/_search」に指定することでKibanaで作成したサンプルデータにもアクセスできました。
CData Drivers で Elasticsearch にアクセス
続いて、CData Drivers から Elasticsearch にアクセスしてみます。
https://www.cdata.com/jp/drivers/elasticsearch/
CData Drivers で Elastic Cloud の Elasticsearch にアクセスする場合は以下の4種類の項目を設定します。Port番号がデフォルトとは異なる点に注意してください。
- Server:エンドポイントURL(例:https://225b199641544596a4feacbf40ae0ccf.ap-northeast-1.aws.found.io)
- Port:接続先ポート番号(例:9243)
- User:Elastic Cloud ・Kibanaへのログインユーザー名(例:elastic)
- Password:Elastic Cloud ・Kibanaへのログインパスワード
ODBCでは以下のように設定します。
JDBCなどの接続文字列の場合は以下のようになります。
例)jdbc:cdata:elasticsearch:Server=https://225b199641544596a4feacbf40ae0ccf.ap-northeast-1.aws.found.io;Port=9243;User=elastic;Password=XXXX;
Power BI から Elasticsearch にアクセス
せっかくなのでODBC を使って Power BI から Elasticsearch にアクセスしてみました。
PowerBIを立ち上げて、データソースの一覧から「ODBC」を選択します。
データソース名一覧から「CData Elasticsearch Source」を選択し
Windows認証で接続を進めます。これで接続は完了です。
あとは取り込みたいテーブルを選択するだけです。予めKibanaで作成したサンプルデータを選択してみました。これでPower BIにElasticsearch のデータをロードできます。
取り込めた後は Power BI の機能で可視化することができます。