Alibaba Cloud Elasticsearch (ES) を使用する前に、必要なリソースの合計量 (ディスク容量、クラスター仕様、シャードの数、各シャードのサイズなど) を推定する必要があります。 Alibaba Cloud は、テスト結果と当社のプラクティスに基づいて、Elasticsearch の必要なリソース量の一般的な計算方法をいくつか提供しています。 当該計算方法は参照目的のみとなります。

対象のディスクタイプ

この Elasticsearch サイズ指定ガイドは、[ディスクタイプ] が [SSD クラウドディスク] の Elasticsearch インスタンスが対象です。

ディスクのサイズ指定

Alibaba Cloud 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

クラスターのサイズ指定

Alibaba Cloud Elasticsearch クラスターのパフォーマンスは、クラスター内の Elasticsearch ノードの仕様によって定められます。 Elasticsearch ノードの仕様は、テスト結果と実践に基づいて次のように定めることを推奨します。
  • 各クラスターの最大ノード数 = 各ノードの CPU コア数 × 5
  • 各ノードの最大データ量。
    Elasticsearch ノードが保存できるデータの最大量は、シナリオごとに異なります。
    • データクエリの高速化と集約:各ノードの最大データ量 = 各ノードのメモリ (GB) × 10
    • ログデータのインポートとオフライン分析:各ノードの最大データ量 = 各ノードのメモリ (GB) × 50
    • 多くのシナリオの場合:各ノードの最大データ量 = 各ノードのメモリ (GB) × 30
表 1. 推奨クラスター仕様
仕様 ノードの最大数 各ノードの最大メモリ (クエリ) 各ノードの最大メモリ (ログ) 各ノードの最大メモリ (共通)
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 のエラスティックスケーリング機能を使用して、ディスクの拡張、ノードの追加、ノードのアップグレードを行うことができます。