Alibaba Cloud Elasticsearch (ES) を使用する前に、必要なリソースの合計量 (ディスク容量、クラスター仕様、シャードの数、各シャードのサイズなど) を推定する必要があります。 Alibaba Cloud は、テスト結果と当社のプラクティスに基づいて、Elasticsearch の必要なリソース量の一般的な計算方法をいくつか提供しています。 当該計算方法は参照目的のみとなります。
対象のディスクタイプ
この Elasticsearch サイズ指定ガイドは、[ディスクタイプ] が [SSD クラウドディスク] の Elasticsearch インスタンスが対象です。
ディスクのサイズ指定
- インデックスレプリカの数。 各インデックスには、少なくとも 1 つのレプリカが必要です。
- インデックス作成のオーバーヘッド。 通常、インデックス作成のオーバーヘッドは、ソースデータの場合の 10% 増加します。 _all パラメーターのオーバーヘッドは含まれません。
- オペレーティングシステムの予約されている容量。 オペレーティングシステムは、重要プロセス、システムリカバリ、ディスクフラグメントのために既定でディスク容量の5% を予約します。
- Alibaba Cloud Elasticsearch のオーバーヘッド。 Alibaba Cloud Elasticsearch はセグメントのマージ、ログ、その他の内部操作のためにディスク容量の 20% を予約します。
- セキュリティしきい値のオーバーヘッド。 ディスク容量の最低 15% をセキュリティのしきい値として予約する必要があります。
これらの要因に基づいて、必要な最小ディスク容量は次のように計算されます:最小ディスク容量=ソースデータのサイズ × 3.4
。必要な合計ディスク容量は次のように計算されます。
合計ディスク容量 = ソースデータのサイズ × (1 + インデックスレプリカの数) × (1 + インデックスオーバヘッド)/(1 - Linux によって予約されている容量)/(1 - Elasticsearch オーバーヘッド)/(1 - セキュリティーしきい値のオーバーヘッド)
= ソースデータのサイズ × (1 + インデックスレプリカの数) × 1.7
= ソースデータのサイズ × 3.4
- ビジネスで必要でない限り、 _all パラメーターを有効化しないことを推奨します。
- _all パラメーターが有効になっているインデックスでは、ディスク使用率に大きなオーバーヘッドが発生します。 テスト結果と実践に基づいて、推定ディスク容量の 50% を最終的なディスク容量に追加することを推奨します。
合計ディスク容量 = ソースデータのサイズ × (1 + インデックスレプリカの数) × 1.7 × (1 + 0.5) = ソースデータのサイズ × 5.1
クラスターのサイズ指定
各クラスターの最大ノード数 = 各ノードの CPU コア数 × 5
- 各ノードの最大データ量。
Elasticsearch ノードが保存できるデータの最大量は、シナリオごとに異なります。
- データクエリの高速化と集約:
各ノードの最大データ量 = 各ノードのメモリ (GB) × 10
- ログデータのインポートとオフライン分析:
各ノードの最大データ量 = 各ノードのメモリ (GB) × 50
- 多くのシナリオの場合:
各ノードの最大データ量 = 各ノードのメモリ (GB) × 30
- データクエリの高速化と集約:
仕様 | ノードの最大数 | 各ノードの最大メモリ (クエリ) | 各ノードの最大メモリ (ログ) | 各ノードの最大メモリ (共通) |
---|---|---|---|---|
2 コア 4 GB | 10 | 40 GB | 200 GB | 100 GB |
2 コア 8 GB | 10 | 80 GB | 400 GB | 200 GB |
4 コア 16 GB | 20 | 160 GB | 800 GB | 512 GB |
8 コア 32 GB | 40 | 320 GB | 1.5 TB | 1 TB |
16 コア 64 GB | 50 | 640 GB | 2 TB | 2 TB |
シャードのサイズ指定
シャードの数と各シャードのサイズの両方が、Alibaba Cloud Elasticsearch クラスターの安定性とパフォーマンスに影響します。 Elasticsearch の各インデックスは、特定の数のシャードに分割されます。 既定では、インデックスは 5 つのシャードに分割されます。
- 小規模な Elasticsearch ノードの場合、各シャードのサイズは 30 GB 以下にすることを推奨します。 大規模な Elasticsearch ノードの場合、各シャードのサイズは 50 GB 以下にすることを推奨します。
- ログ分析または非常に大きなインデックスの場合、各シャードのサイズは 100 GB 以下にすることを推奨します。
- レプリカを含むシャードの数は、ノード数と同等またはノード数の等倍である必要があります。
- ノードのインデックスに最大 5 つのシャードを指定することを推奨します。
ユーザーによって、データスキーマ、クエリの複雑さ、データサイズ、パフォーマンス、データの変更に関する要件が異なる場合があります。 ここでは、Elasticsearch のサイズ指定に関する参照情報のみを提供しています。 可能であれば、実際のデータとサービスのシナリオに基づいて、Elasticsearch クラスターのサイズを測定することを推奨します。
本記事の内容を参照して、Elasticsearch クラスターの仕様とサイズを選択することができます。 ワークロードの負荷が大きい場合、Alibaba Cloud Elasticsearch のエラスティックスケーリング機能を使用して、ディスクの拡張、ノードの追加、ノードのアップグレードを行うことができます。