Amazon Elasticsearch Serviceのサービス制限について

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

はじめに

その他のAWSのサービスと同様、Amazon Elasticsearch Serviceにもデフォルトの制限があります。以下のAmazon Elasticsearch Service Developer Guideのページに記載があります。

こちらは今後のサービス拡張により変更があるかと思いますが、2015年10月時点でのサービス制限についてご紹介します。

Amazon Elasticsearch Serviceのサービス制限

クラスターの制限

クラスタ内の最大インスタンス数 10インスタンス
クラスタ機能として使用するストレージ領域 クラスタのセグメントマージ、ログ、その他内部機能向けとして、各インスタンスのストレージ領域のうち10%から20%が予約されます。
メモリスワップの無効化 全てのインスタンスタイプでメモリスワップは無効化されます。

EBSの制限

EBSボリュームサイズの上限及び下限 EBSボリュームサイズの上限及び下限は、EBSボリュームタイプとインスタンスタイプによって決まります。

■インスタンスタイプ:
・t2.micro.elasticsearch, t2.small.elasticsearch, t2.medium.elasticsearch
→Min:10 GB、Max:35 GB * データノードとなっているインスタンス数
・その他のsmallとmediumのインスタンスタイプ
→Min:10 GB、Max:100 GB
・全てのlarge、xLarge、2xLargeのインスタンスタイプ
→Min:10 GB、Max:512 GB

■EBSボリュームタイプ
・gp2
→Min:10 GB、Max:512 GB
・io1
→Min:35 GB、Max:512 GB
・standard
→Min:10 GB、Max:100 GB

例えば、t2.small.elasticsearchでgp2を使った場合、gp2としての上限は512GBですが、インスタンスタイプとしての上限は35GBなので、この組み合わせで使える上限は35GBになります。

Elasticsearchの制限

bootstrap.mlockall bootstrap.mlockallは有効化されており、JVMが起動する際にメモリを確保し、スワップを防ぎます。 なお、以下インスタンスタイプを除きます。
・t2.micro.elasticsearch
・t2.small.elasticsearch
・t2.medium.elasticsearch
カスタムプラグイン カスタムプラグインはサポートしていません。しかし、Kibana、ICU、Kuromojiなどの幾つかの標準的なプラグインを組み込んでいます。
ES_HEAP_SIZE環境変数 ElasticsearchのJavaプロセスのヒープサイズは32GBに制限されています。
スクリプティングモジュール Dynamic Scriptingはサポートされていません。

Logstashの制限

アウトプットプラグイン Logstashアウトプットプラグインとしてelasticsearchをサポートしています。

(※なお、logstash-output-amazon_esも使えます)

リージョン固有の制限

sa-east-1(サンパウロ)リージョン サンパウロリージョンではi2及びr3リージョンをサポートしていません。

サービスリクエストの制限

HTTPリクエストのサイズ上限 HTTPリクエストはインスタンスタイプによってサイズ上限があります。
・t2.micro.elasticsearch: 10 MB
・t2.small.elasticsearch: 10 MB
・t2.medium.elasticsearch: 10 MB
・m3.medium.elasticsearch: 10 MB
・m3.large.elasticsearch: 10 MB
・m3.xlarge.elasticsearch: 100 MB
・m3.2xlarge.elasticsearch: 100 MB
・r3.large.elasticsearch: 100 MB
・r3.xlarge.elasticsearch: 100 MB
・r3.2xlarge.elasticsearch: 100 MB
・r3.4xlarge.elasticsearch: 100 MB
・r3.8xlarge.elasticsearch: 100 MB
・i2.xlarge.elasticsearch: 100 MB
・i2.2xlarge.elasticsearch: 100 MB
HTTP POSTリクエストのパラメータ 署名バージョン4でリクエストされたHTTP POSTのパラメータは無視します。
TCPトランスポート 本サービスはHTTP(80/tcp)プロトコルでの接続をサポートしています。

(※HTTP(443/tcp)もサポートしています)

さいごに

クラスタ内の最大インスタンス数については上限緩和申請が可能ですので、10インスタンス以上必要な場合はAWSサポートへ上限緩和申請を行ってください。

何ができて何ができないのかが分かれば活用の幅が広がります。ぜひ皆さんもAmazon ESをお試しください!

  • みのわす

    >but does not support TCP transport.

    ここがなぁ…。Java(Spring)のElasticSearchのライブラリがRestには非対応だったりする。