
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プランでは更にShield、Watcher、Marvelが使え、かつSLAベースのサポートが受けられます。
さて、Foundでは14日間のフリートライアルが用意されています。早速使ってみました!
やってみた
フリートライアルの申し込み
FoundのWebサイトから、[Free Trial]のリンクをクリックします。

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

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

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

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

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

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

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

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

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

Shardingについて設定します。

Automatic index creationの設定をします。

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

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

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

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

使ってみる
まずは接続確認。問題ないですね。この状態だと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をクリックします。

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

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

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

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

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

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

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







