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

こんにちは、藤本です。

現地時間 6/1 Amazon Elasticsearch Service に Elasticsearch 5.3 / Kibana 5.3 が追加されました。5.1 に続き、5 系の 2つ目のマイナーバージョン追加となりました。Elastic 社から Elastic Stack 5.3 がリリースされてから 2ヶ月ちょっとで取り入れられました。この早い対応は嬉しいですね。

概要

Amazon Elasticsearch Service は Elasticsearch / Kibana の AWSマネージドサービスです。Elasticsearch クラスタの管理・運用を AWS が行ってくれるため、利用者は画面を数操作するだけで Elasticsearch / Kibana の利用を開始でき、設定変更も数クリックで構成変更ができます。今までは Elasticsearch 1.7/2.3/5.1 を利用できました。それが今回のアップデートにより、Elasticsearch 5.3 を利用可能となりました。

Elasticsearch / Kibana 5.1 -> 5.3 なので、今までのメジャーアップデートのように新機能は盛りだくさんではありませんが、それでも多くのアップデートがあります。

変更点まとめ

追加バージョン

  • Elasticsearch 5.3.2
  • Kibana 5.3.2

Elasticsearch / Kibana の変更点

Elasitcsearch / Kibana の変更内容は下記ブログをご参照ください。

Elastic 社公式

Develpers.IO まとめ

プラグイン

Amazon Elasticsearch Service はプラグインを追加することができません。Elasticsearch 5.3 で利用可能なプラグインが増えました。追加されたプラグインは以下の通りです。

  • Mapper Attachments
  • Mapper Size
  • Ukranian Analysis
$ curl https://search-es53-xxxxxxxxxxxxxx.ap-northeast-1.es.amazonaws.com/_cat/plugins
0bg47se analysis-icu        5.3.2
0bg47se analysis-kuromoji   5.3.2
0bg47se analysis-phonetic   5.3.2
0bg47se analysis-smartcn    5.3.2
0bg47se analysis-stempel    5.3.2
0bg47se analysis-ukrainian  5.3.2
0bg47se discovery-ec2       5.3.2
0bg47se elasticsearch-jetty 2.2.0
0bg47se ingest-attachment   5.3.2
0bg47se ingest-user-agent   5.3.2
0bg47se mapper-attachments  5.3.2
0bg47se mapper-murmur3      5.3.2
0bg47se mapper-size         5.3.2
0bg47se repository-s3       5.3.2

Curator Support

個人的に一番気になっているアップデートです。Elastic 社が OSS として公開するインデックス管理ツールの Curator をサポートしたとのことなのですが、ドキュメントでは特に言及されていないようでした。

Curator

過去に Amazon Elasticsearch Service 5.1 で Curator を試した方がいれば、正常に動作しないことがあったかと思います。理由は Curator のドキュメントにもまとめられています。

Curator は 4系から Elasticsearch の設定情報取得に /_cluster/state/metadata API を利用していました。ただ Amazon ES の Elasticsearch 5.1 は /_cluster/state/metadata API に対して Curator が動作する上で完全なレスポンスを提供していませんでした。それにより、Curator を正常に動作させることができませんでした。それが Amazon ES の Elasticsearch 5.3 から Curator が動作するのに必要なレスポンスを返すようになり、Curator が動作するようになりました。ただ試した限りだと一部のアクションしか使えないようです。それでは試してみましょう。

インストール

Curator はpipコマンドで簡単にインストールできます。

$ pip install elasticsearch-curator
設定

Curator を実行する上での設定ファイルを 2つ作成する必要があります。一つは対象とする Elasticsearch サーバーの設定、もう一つは対象の Elasticsearch に対して何を実施するかアクションの設定をそれぞれ記述します。

まずは前者。Elasticsearch Service ドメインの DNS 名を設定します。HTTPS アクセスを利用する場合は、ポート番号に 443 を、SSL の有効化を設定します。

client: hosts: - search-es53-xxxxxxxxxxxxxx.ap-northeast-1.es.amazonaws.com port: 443 use_ssl: True

続いて、アクション。今回はインデックスの削除を実施します。actionはインデックス削除の場合、delete_indicesを設定します。フィルターで対象となるインデックス情報を記述します。今回はプレフィックスで削除対象のインデックス名を指定しています。フィルターを追加して、インデックス名から何日以上過ぎているインデックスを削除するという設定も可能です。

actions: 1: action: delete_indices filters: - filtertype: pattern kind: prefix value: elblog-

2つのインデックスが、

$ curl https://search-es53-xxxxxxxxxxxxxx.ap-northeast-1.es.amazonaws.com/_cat/indices
yellow open elblog-2017.04.01 TXEudbRjS864bG7-En3cEw 5 1   1 0 22.1kb 22.1kb
yellow open elblog-2017.03.31 W4IDFl_uQLqlWdTiZ3-tcA 5 1 758 0  1.4mb  1.4mb

Curator をコマンド実行することで、

$ curator --config es53.yml delete_action.yml
2017-06-04 20:32:56,517 INFO      Preparing Action ID: 1, "delete_indices"
2017-06-04 20:32:56,585 INFO      Trying Action ID: 1, "delete_indices": No description given
2017-06-04 20:32:56,635 INFO      Deleting selected indices: ['elblog-2017.04.01', 'elblog-2017.03.31']
2017-06-04 20:32:56,635 INFO      ---deleting index elblog-2017.04.01
2017-06-04 20:32:56,635 INFO      ---deleting index elblog-2017.03.31
2017-06-04 20:32:56,795 INFO      Action ID: 1, "delete_indices" completed.
2017-06-04 20:32:56,795 INFO      Job completed.

削除されました。

$ curl https://search-es53-xxxxxxxxxxxxxx.ap-northeast-1.es.amazonaws.com/_cat/indices

ちなみに Amazon ES の Elasticsearch 5.1 の場合、下記のエラーが出力されました。

$ curator --config es51.yml delete_action.yml
2017-06-04 20:32:51,869 INFO      Preparing Action ID: 1, "delete_indices"
2017-06-04 20:32:51,984 INFO      Trying Action ID: 1, "delete_indices": No description given
2017-06-04 20:32:52,041 ERROR     Failed to complete action: delete_indices.  <class 'KeyError'>: 'settings'

また私が試した限りでは Amazon Elasticsearch Service の Elasticsearch 5.3 でも Curator によるクローズや、スナップショット取得はエラーが発生し、利用することができませんでした。

まとめ

いかがでしたでしょうか? Elasticsearch / Kibana は次々と新機能が取り入れられているため、Amazon Elasticsearch Service が新しいバージョンを早く取り入れてくれるのはすごい嬉しいですね。