この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
ども、藤本です。
現地時間 9/7、Amazon Elasticsearch Service に Elasticsearch 5.5 / Kibana 5.5 が追加されました。5.1、5.3 に続き、5 系の 3つ目のマイナーバージョン追加となりました。Elastic 社から Elastic Stack 5.5 がリリースされてから 2ヶ月で取り入れられました。最近はこのペースで取り込まれているので嬉しいです。
概要
Amazon Elasticsearch Service は Elasticsearch / Kibana の AWSマネージドサービスです。Elasticsearch クラスタの管理・運用を AWS が行ってくれるため、利用者は画面を数操作するだけで Elasticsearch / Kibana の利用を開始でき、設定変更も数クリックで構成変更ができます。今までは Elasticsearch 1.7/2.3/5.1/5.3 を利用できました。それが今回のアップデートにより、Elasticsearch 5.5 を利用可能となりました。
変更点まとめ
バージョン
- Elasticsearch : 5.5.2
- Kibana : 5.5.2
$ curl https://search-es55-xxxxxxxxxxxxx.ap-northeast-1.es.amazonaws.com/
{
"name" : "xxxxxx",
"cluster_name" : "00000000000:es55",
"cluster_uuid" : "xxxxxxxxxxxxxx",
"version" : {
"number" : "5.5.2",
"build_hash" : "xxxxxxx",
"build_date" : "2017-08-21T22:31:55.076Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
Elasticsearch / Kibana の変更点
Elasitcsearch / Kibana の 5.4、5.5 の変更内容は下記ブログをご参照ください。
Elastic 社公式
Develpers.IO まとめ
- Kibana 5.4.0 で追加された Time Series Visual Builder を試してみた
- Kibana 5.4.0 から Pipeline Aggregation を可視化できるようになりました
- Kibana 5.4.0 の新機能を試してみた
- Kibana 5.5.0 の新機能の Region Map を試してみた
- Region Map で都道府県のデータを描画してみた #Kibana
自動スナップショットの利用が可能となりました
これは嬉しいアップデート。Amazon Elasticsearch Service はマネージドサービスでスナップショットは日次で自動で取得してくれます。ただ今までは自動取得したスナップショットから復元する場合、自身では実施できず、サポートへ依頼した上で AWS マターで復元が実施されます。S3 への手動スナップショットも実施できますが、Elasticsearch 自身でスナップショットのスケジューリング機能を持っていないため、Curator や独自スクリプトで外部で実装する必要がありました。それが今回のアップデートで任意のタイミングでユーザーの操作により自動スナップショットから復元可能となりました。データ破損時や、障害発生時に AWS への連絡や AWS の作業を待たずに即時に復元に取り掛かれるのは嬉しいです。
Stored Scripts 対応
Amazon Elasticsearch Service では 1.7、2.3 はスクリプトの利用がサポートされていませんでした。5.x系からリリースされた安全で高速な Painless Language を利用できるようになりました。今回のアップデートまでの利用方法は inline(リクエスト都度、スクリプトを記述)のみでした。今回のアップデートで Elasticsearch Service 内でスクリプトを保持できる Stored Script に対応しました。5.5系だけでなく、5.1、5.3 でも利用できるようです。
$ curl -XPOST https://search-es55-xxxxxxxxxxxxx.ap-northeast-1.es.amazonaws.com/_scripts/increment -d '{
"script": {
"lang": "painless",
"code": "doc['age'].value + 1"
}
}'
$ curl -XPOST https://search-es55-xxxxxxxxxxxxx.ap-northeast-1.es.amazonaws.com/user/type -d '{
"name": "Fujimoto",
"age": 33
}
$ curl https://search-es55-xxxxxxxxxxxxx.ap-northeast-1.es.amazonaws.com/user/_search -d '{
"_source": ["name","age"],
"script_fields": {
"incremental_age": {
"script": {
"stored": "increment"
}
}
}
}
{
"took": 148,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "user",
"_type": "type",
"_id": "AV5ffEZC09gINGHUS7dy",
"_score": 1,
"_source": {
"name": "Fujimoto",
"age": 33
},
"fields": {
"incremental_age": [
34
]
}
}
]
}
}
Max Clause Count の上限値を指定可能になりました
Elasticsearch のクエリを行う際にクエリに含めることができるワードはデフォルトで 1024 までに制限されています。この上限を増やすためには Elasticsearch の設定ファイルのindex.query.bool.max_clause_count
で上限値を指定する必要がありました。ただ Amazon Elasticsearch Service は AWSマネージドサービスで設定ファイルを編集できないため、上限値を増やすことができませんでした。今回のアップデートで Amazon Elasticsearch Service の設定項目にindices.query.bool.max_clause_count
が追加されました。
まとめ
いかがでしたでしょうか? Amazon Elasticsearch Service も最新バージョンの追従が早くなり、利用者としては嬉しい限りです。そうなると困るのがバージョンアップに対応していないことです。バージョンアップにも対応していただけると更に嬉しいですね!