Amazon Elasticsearch Service で Elasticsearch 5.5 の利用が可能となりました

2017.09.08

この記事は公開されてから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 を利用可能となりました。

Amazon_Elasticsearch_Service_Management_Console

変更点まとめ

バージョン

  • 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 まとめ

自動スナップショットの利用が可能となりました

これは嬉しいアップデート。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_Management_Console

まとめ

いかがでしたでしょうか? Amazon Elasticsearch Service も最新バージョンの追従が早くなり、利用者としては嬉しい限りです。そうなると困るのがバージョンアップに対応していないことです。バージョンアップにも対応していただけると更に嬉しいですね!