Amazon Elasticsearch Service
開発者ガイド (API バージョン 2015-01-01)

Amazon Elasticsearch Service におけるペタバイト規模

Amazon Elasticsearch Service には、最大 3 PB のドメインストレージが用意されています。i3.16xlarge.elasticsearch インスタンスタイプが 200 個あり、それぞれに 15 TB のストレージがあるドメインを設定できます。規模がまったく異なるため、このサイズのドメインに関する推奨事項は一般的な推奨事項とは異なります。このセクションでは、ドメインの作成、コスト、ストレージ、シャードのサイズに関する考慮事項について説明します。

このセクションでは、i3.16xlarge.elasticsearch インスタンスタイプを頻繁に参照していますが、他のいくつかのインスタンスタイプを使用して 1 PB の合計ドメインストレージに達することができます。

ヒント

AWS データベースブログには、ペタバイト規模のドメインの作成と運用に関する優れた投稿があります。

ドメインの作成

このサイズのドメインは、ドメインあたり 40 インスタンスというデフォルトの制限を超えています。ドメインあたり 200 インスタンスへのサービス制限引き上げをリクエストするには、AWS サポートセンターでサポートケースを作成します。

料金表

このサイズのドメインを作成する前に、Amazon Elasticsearch Service の料金表ページを確認して、関連コストが希望に沿っていることを確認します。

ストレージ

i3 インスタンスタイプは、高速な Non-Volatile Memory Express (NVMe) ローカルストレージを提供するよう特別に設計されたものです。このローカルストレージは Amazon Elastic Block Store と比較してパフォーマンスが大幅に向上する傾向があるため、Amazon ES でこのインスタンスタイプを選択した場合は EBS ボリュームを選択することはできません。必要に応じて EBS ストレージを使用する場合は、r5.12xlarge.elasticsearch など、別のインスタンスタイプを使用します。

シャードのサイズと数

Elasticsearch の一般的なガイドラインは、シャードあたり 50 GB を超えないようにすることです。大きなドメインに対応するために必要なシャードの数および i3.16xlarge.elasticsearch インスタンスが利用可能なリソースが指定されている場合は、シャードのサイズは 100 GB をお勧めします。

たとえば、450 TB のソースデータがあり、レプリカを 1 つにする場合、最小ストレージ要件は 450 TB * 2 * 1.1/0.95 = 1.04 PB です。この計算の説明については、「ストレージ要件の計算」を参照してください。1.04 PB/15 TB = 70 インスタンスですが、時間と共に変動するデータ量を考慮してストレージセーフティネットとして 80 個以上の i3.16xlarge.elasticsearch インスタンスを選択することもできます。各インスタンスにより最小ストレージ要件に 20 GiB が追加されますが、このサイズのディスクでは、この 20 GiB はほぼ無視できます。

シャード数の制御には手間がかかります。Elasticsearch ユーザーがインデックスを毎日ローテーションし、1、2 週間データを保持することがよくあります。このような状況では、「アクティブ」なシャードと「非アクティブ」なシャードを区別すると便利な場合があります。アクティブなシャードとは、書き込みや読み取りがアクティブに行われているシャードです。非アクティブなシャードとは、たまに読み取りリクエストがあるものの大部分はアイドルな状態のサービスです。一般的には、アクティブなシャードの数を数千個未満に維持する必要があります。アクティブなシャードの数が 10,000 に近づくと、パフォーマンスと安定性に大きなリスクが出現します。

プライマリシャードの数は次の式を使用して計算します。450,000 GB * 1.1/(100 GB/シャード) = 4,950 シャード。レプリカを考慮してこの数を 2 倍にすると 9,900 シャードになり、すべてのシャードがアクティブの場合は大きな懸念事項になります。ただし、インデックスをローテーションして、任意の指定日にシャードの数の 1/7 または 1/14 (それぞれ 1,414 または 707 シャード) のみがアクティブな場合、クラスターはうまく機能します。この場合も、ドメインのサイズ決定と設定において最も重要なステップは、現実的なデータセットを使用して代表的なクライアントテストを実行することです。