Amazon Elasticsearch ServiceとFoundの比較

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSが提供するフルマネージドElasticsearchサービス、Amazon Elasticsearch Service(Amazon ES)が本日リリースされました...となると気になるのが、以前Elasticsearch as a Service!Foundを使ってみたという記事で紹介した、Elasticsearchの開発元であるElasticが提供するElasticsearchホステッドサービス、Foundです。

Hosted_Elasticsearch___ElasticAmazon ESとFoundでは、どのような機能差があるのか?どう使い分けるのか?をまとめてみました。

Amazon ESで出来てFoundで出来ないこと

IAMポリシーでアクセス制御ができる

Amazon ESのアクセス制御はIAMポリシーで行います。

Amazon_Elasticsearch_Service_Management_Console

IAMユーザーやIAMロール、または接続元IPアドレスなどで制御可能です。また利用可能なAPIを制限することもできます。AWSに慣れた管理者であれば、すぐに設定することができるでしょう。

CloudWatchでElasticsearchクラスタのモニタリングができる

Amazon ESのElasticsearchクラスタのモニタリングはCloudWatchで行います。

Amazon_Elasticsearch_Service_Management_Console 2

こちらも、AWSを使い慣れた管理者であれば、とても馴染み深いものですね。クラスタノステータスやノード数、ドキュメント数などが一覧で確認できます。

他のAWSサービスと連携できる

Amazon ESは、リリースに合わせてCloudWatch Logsとの連携機能も一緒に追加されました。

CloudWatch_Management_Console

CloudWatch Logs以外にも、今後その他AWSサービスとの連携機能が増える...かも?しれません。例えばDynamoDBRedshiftと連携できたら、と思うと夢が広がりますね!

Foundで出来てAmazon ESで出来ないこと

様々なDashboardに対応している

FoundでElasticsearchクラスタを作ると、最初から以下のようなダッシュボードが用意されています。

Found_Console 2

個人的にはHeadはやっぱり好きなので、使えるのは嬉しいです。

Amazon ESではプラグインの追加はできませんので、プラグイン型のダッシュボードは使うことができず、最初から用意されているKibanaだけが使えます。

Dynamic Scriptが使える

FoundではDynamic Scriptが使えます。

Found_Console 3

Dynamic Scriptは、Elasticsearchへのリクエストとしてスクリプトを使うことが出来る機能です。Amazon ESではDynamic Scriptは使えません。

ユーザー辞書が使える

FoundのPremiumではBundleを使ってユーザー辞書のアップロードができます。が、Amazon ESでは今の所、ユーザー辞書をアップロードする仕組みはありません。とはいえ、ユーザー辞書を使うシチュエーションは多いので、すぐ対応されると思います(期待してます)

 Elasticsearchのアップグレードができる

FoundではElasticsearchのバージョンが指定でき、アップグレードも可能です。

Found_Console 4

Amazon ESでは現時点ではバージョン指定ができず、アップグレードもできません。将来的に機能追加される可能性はありますが、現時点では、新しい機能を使うのであれば、Foundのほうが良いです。

Shieldでアクセス制御ができる

FoundのPremiumでは有償プラグインが提供されますので、Shieldでアクセス制御ができます。

Shield__Enterprise_Security_for_Elasticsearch___Elastic

Shieldについては以下のブログをご参照ください。

これまでもShieldでアクセス制御を行っていたのであれば、設定は容易でしょう。また個別にIAMにユーザーやロールを追加することなく、Found上だけでユーザー管理、アクセス制御ができます。Shieldはアクセス制御だけでなく監査証跡などもできますので、幅広いセキュリティ設定が可能です。

MarvelでElasticsearchクラスタのモニタリングができる

Shieldと同様、FoundのPremiumではMarvelでElasticsearchクラスタのモニタリングができます。

Marvel__Monitor_and_Manage_Elasticsearch___Elastic

CloudWatchはでモニタリング出来るのは簡易的なものとなります。Marvelでは、Elasticsearchクラスタの詳細まで確認できます。これまでもMarvelでモニタリングをしていたのであれば、同じインターフェースで同じ運用ができます。

Watcherでアラート検知ができる

FoundのPremiumではWatcherでアラート検知ができます。

Watcher__Alerts___Notifications_for_Elasticsearch___Elastic

Shieldについては以下のブログをご参照ください。

Amazon ESでは、Watcherのように「データを特定のキーワードでひっかけて定義したアクションを実行する」ようなことはできません。

Elasticsearchのサポートがある

意外とこれが一番重要かも知れないと思いましたが、FoundのPremiumではポータルサイトによるElasticsearchのサポートが受けられます。Amazon ESでももちろんAWSからのサポートは受けられますが、Elasticsearchの開発元のサポートが受けられるというのは、エンタープライズな用途では重要です。

まとめ

Amazon ESは、AWS管理コンソールから使えること、IAMやCloudWatchといったAWSの機能と密に連携していることから、AWS利用者にとってはとても敷居が低く使えると思います。逆にElasticsearchに慣れ親しんだユーザー、Elasticsearchの商用プラグインを活用しているユーザーにとっては、物足りない部分があるのでは無いでしょうか。

FoundはElasticが提供しているだけに、Elasticsearchの機能をほぼフルに使えるサービスです。Elasticsearchのパワーユーザー、Elasticsearchの商用プラグインを活用しているユーザーにとっては、自分で構築するよりも早く、簡単に、Elasticsearchクラスタが構築できる、素晴らしいサービスだと思います。

以上から、「AWSユーザーがElasticsearchを使いたい」場合にはAmazon ESが、「ElasticsearchパワーユーザーがマネージドなElasticsearchサービスを利用したい」のであればFoundが、マッチするのでは無いでしょうか。