Elasticsearch as a Service!Foundを使ってみた

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

Foundは、Elasticsearchクラスタを提供するサービスです。もともとはElasticとは別の会社であるfound.noがサービス提供していたのですが、2015年3月にFoundがElasticにJoinし、Elasticから提供されるサービスとなりました。

FoundはAWSにホストされており、EC2上でElasticsearchクラスタを作ってくれます。またAWSの各リージョンに分散した形でクラスタを作ることもできます。AWSはマルチキャストが使えないことから、AWS上でクラスタを作るには一工夫必要なのですが、GUI上でポチポチするだけで簡単にElasticsearchクラスタが作れる、というのはすごいですね!

このFound、2つのプランがあります。StanadrdプランでもElasticsearchクラスタ、Kibana 4、バックアップツールなどが使えますが、Premiumプランでは更にShieldWatcherMarvelが使え、かつSLAベースのサポートが受けられます。

さて、Foundでは14日間のフリートライアルが用意されています。早速使ってみました!

やってみた

フリートライアルの申し込み

FoundのWebサイトから、[Free Trial]のリンクをクリックします。

Hosted_Elasticsearch___Elastic

フリートライアルは、クレジットカードの登録なしに、メールアドレスだけで始められます。超便利。メールアドレスを入力して[START FREE TRIAL]ボタンをクリックします。

Try_Found__Hosted_Elasticsearch__for_Free___Elastic

すると、登録したメールアドレスに以下内容のメールが届きますので、[Start Trial]ボタンをクリックします。

Welcome_to_Found__Hosted_Elasticsearch__-_smokeymonkey_gmail_com_-_Gmail

以下、パスワード設定画面になります。パスワード文字列を入力し、[Set]ボタンをクリックします。

Found_Console

これでフリートライアルの申し込みは完了です![creating an Elasticsearch cluster]リンクをクリックして、早速Elasticsearchクラスタを作ってみましょう!

Found_Console 2

Elasticsearchクラスタの作成

Elasticsearchクラスタの作成画面では、いくつかのオプションを選択します。まずはCapacity。このキャパシティで料金が変わります。今回はメモリ1GB、ストレージ8GBの最小構成で作成します。

Found_Console 3

次にRegion。AWS上でホストされていますので、そのままAWSのリージョンとなります。ちゃんとTokyoリージョンが選択可能なところがナイスですね。

Found_Console 4

Fault toleranceとして、Elasticsearchクラスタのデータセンタ(リージョン)分散の設定が可能です。複数リージョンに分散させることで可用性の高いElasticsearchクラスタが構成できます!フリートライアルでも2データセンター分散が可能です。

Found_Console 5

VersionでElasticsearchのバージョンを指定します。現時点では1.7.1しか選べませんでした。

Found_Console 6

 Dynamic scripts機能の有効化を選択します。クレジットカードを登録しないと使えません。

Found_Console 7

Shardingについて設定します。

Found_Console 8

Automatic index creationの設定をします。

Found_Console 9

Indexをワイルドカードで削除可能にするかの設定です。

Found_Console 10

Pluginの設定をします。kuromojiがちゃんと入っているのが嬉しいですね。

Found_Console 11

Elasticsearchクラスタの名前を指定します。ここまでで設定値は完了、[Create]ボタンをクリックします。

Found_Console 12

これで Elasticsearchクラスタが作成されます!EndpointはHTTPとHTTPSの2種類が用意されます。またDashboardから簡単に各種ダッシュボードを利用可能です。

Found_Console 13

使ってみる

まずは接続確認。問題ないですね。この状態だとEndpointが分かっていれば誰でも使えちゃいますが、FoundではShieldを使ったAccess Controlが用意されています。

$ curl -XGET http://xxxxxx.ap-northeast-1.aws.found.io:9200
{
  "status" : 200,
  "name" : "instance-0000000000",
  "cluster_name" : "xxxxxx",
  "version" : {
    "number" : "1.7.1",
    "build_hash" : "xxxxxx",
    "build_timestamp" : "2015-07-29T09:54:16Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.4"
  },
  "tagline" : "You Know, for Search"
}

とりあえず、サンプルデータを投入してみましょう。10 Minute Walk Throughのサンプルデータ(shakespeare.json)を使いました。

$ curl -XPUT http://xxxxxx.ap-northeast-1.aws.found.io:9200/shakespeare -d '
{
 "mappings" : {
  "_default_" : {
   "properties" : {
    "speaker" : {"type": "string", "index" : "not_analyzed" },
    "play_name" : {"type": "string", "index" : "not_analyzed" },
    "line_id" : { "type" : "integer" },
    "speech_number" : { "type" : "integer" }
   }
  }
 }
}';

$ curl -XPUT http://xxxxxx.ap-northeast-1.aws.found.io:9200/_bulk --data-binary @shakespeare.json

さて、Dashboardsからheadをクリックします。

Found_Console 14

こんな感じで、普通にheadが使えます。

elasticsearch-head

では次にKibanaをクリックします。

Found_Console 15

するとKibanaが表示され...あれ、これKibana 3ですね。

Kibana_3_-_Your_Basic_Dashboard

再度ElasticsearchクラスタのConfiguration画面を開くと、Kibana 4についてのオプションがありました。[Enable]ボタンをクリックします。

Found_Console 17

少し待つと、Kibana 4が Enabledになり、Kibana 4へアクセスするリンクが表示されます。

Found_Console 16

はい、ちゃんとKibana 4が使えますね!

Visualize_-_Kibana_4_と_Skype

さいごに

フルマネージドでかつサポートが受けられる形でElasticsearchが使える、しかも簡単に!これはすごいサービスですね。