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

Elasticsearch Service

ども、藤本です。

現地時間 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 も最新バージョンの追従が早くなり、利用者としては嬉しい限りです。そうなると困るのがバージョンアップに対応していないことです。バージョンアップにも対応していただけると更に嬉しいですね!

AWS Cloud Roadshow 2017 福岡