すべてのプロダクト
Search
ドキュメントセンター

Elasticsearch:仕様とストレージ容量の評価

最終更新日:Feb 28, 2026

購入または構成変更の前に、Alibaba Cloud Elasticsearch (ES) クラスターのストレージ容量、ノード仕様、およびシャードレイアウトを計画します。

クイックリファレンス: プライマリシャードあたり1つのレプリカがある場合、合計ストレージとしてソースデータ量の約 3.4倍 をプロビジョニングします。例えば、100 GiB のソースデータには、約 340 GiB のクラスターストレージが必要です。

このドキュメントの評価方法は、実際のテスト結果と運用経験に基づいています。実際の要件は、データ構造、クエリの複雑さ、データ量、データの変更、およびパフォーマンス目標によって異なる場合があります。構成を確定する前に、代表的なワークロードで見積もりを検証してください。

ストレージ容量の計算式

プライマリシャードあたり1つのレプリカシャードがデフォルトの場合、合計クラスターストレージはソースデータ量の約 3.4倍 です。この乗数には、以下のオーバーヘッド要因が含まれます。

要因オーバーヘッド説明
レプリカシャード2倍 (レプリカ1個の場合)各プライマリシャードには少なくとも1つのレプリカシャードがあります
インデックス作成のオーバーヘッド通常10%ソースデータ以外のインデックス構造によって消費される領域
内部オーバーヘッド20%予約済みセグメントマージ、ログ記録、その他の内部操作
OS予約済み領域5%予約済み重要なプロセス、システムリカバリ、ディスクフラグメント
セキュリティしきい値少なくとも15%予約済みElasticsearch によって維持される最小空き領域

簡易計算式:

Cluster storage = Source data x (1 + Number of replicas) x 1.7
                = Source data x 3.4  (when replicas = 1)

完全な計算式:

Cluster storage = Source data
                  x (1 + Number of replicas)
                  x Indexing overhead factor
                  / (1 - OS reserved)
                  / (1 - Internal overhead)
                  / (1 - Security threshold)

                = Source data x (1 + Number of replicas) x 1.1 / 0.95 / 0.80 / 0.85
                = Source data x (1 + Number of replicas) x 1.7
重要

3.4倍の乗数は、レプリカが1つであることを前提としています。実際のレプリカ数に合わせて計算式を調整してください。

例: 200 GiBのソースデータ

シナリオ: 200 GiB のソースデータ、プライマリシャードあたり1つのレプリカシャード。

Cluster storage = 200 GiB x (1 + 1) x 1.7
                = 200 x 2 x 1.7
                = 680 GiB

計算式に含まれないストレージ消費

計算式に含まれる要因以外にも、以下の項目がストレージを消費します。

  • X-Packモニタリングインデックス -- 例外分析に使用されます。

    • .monitoring-es-6-*: 大量のストレージを消費します。デフォルトでは過去7日間保持されます。

    • .monitoring-kibana-6-*: インデックス数に応じて増加します。デフォルトでは過去7日間保持されます。

    • .watcher-history-3-*: 最小限のストレージを消費します。不要になった場合は手動で削除してください。

  • クラスターログ -- 実行ログ、アクセスログ、スローログが含まれます。デフォルトでは過去7日間保持されます。この保持期間は変更できません。ログ量は、クラスターが受信するクエリとデータプッシュの数に応じて増加します。

ノード仕様とノード数

データノード

データノードあたりの最大スケールを決定する2つのルールを次に示します。

  • クラスターあたりの最大ノード数 = ノードあたりのvCPU x 5

  • ノードあたりの最大ストレージ = ノードあたりのメモリ (GiB) x シナリオ固有の乗数

シナリオ乗数一般的な用途
汎用メモリ x 30読み取り/書き込み混合ワークロード
クエリメモリ x 10高速化、集約
ログ記録メモリ x 50ログインポート、オフライン分析

次の表は、各仕様の最大ノード数とノードあたりの最大ストレージを示しています。

仕様最大ノード数汎用クエリログ記録
2 vCPUs, 4 GiB10120 GiB40 GiB200 GiB
2 vCPUs, 8 GiB10240 GiB80 GiB400 GiB
4 vCPUs, 16 GiB20480 GiB160 GiB800 GiB
8 vCPUs, 32 GiB40960 GiB320 GiB1.5 TiB
16 vCPUs, 64 GiB801.9 TiB640 GiB3 TiB

合計クラスターストレージ = ノードあたりのストレージ x ノード数

ターゲット仕様のノードあたりの最大ストレージと最大ノード数に基づいて、ノード仕様を選択します。

  • データノードの数は、合計シャード数に影響します。ノード仕様を確定する前に、以下のシャード評価を完了してください。

  • 集約負荷の高いクエリの場合は、vCPU対メモリ比が1:2の仕様を選択し、クライアントノードを有効にしてください。

例: 2 TiBのログデータ

シナリオ: 2 TiB のログデータ、ログ記録のユースケース、レプリカ1つ。

  1. 必要なストレージを計算します: 2 TiB x 3.4 = 6.8 TiB

  2. ノード仕様を選択します: 8 vCPU、32 GiB (ログ記録の最大値: ノードあたり 1.5 TiB)

  3. ノード数を計算します: 6.8 TiB / 1.5 TiB = 約 5 ノード (切り上げ)

  4. ノード制限を確認します: 5 ノード < 40 最大ノード。有効です。

専用マスターノード

多数のデータノードを持つクラスターでは、クラスターの安定性を維持するために専用マスターノードを有効にしてください。データノード数に基づいて仕様を選択します。

データノード数専用マスターノード仕様
デフォルト2 vCPUs, 8 GiB
10以上4 vCPUs, 16 GiB
30以上8 vCPUs, 32 GiB
50以上16 vCPUs, 64 GiB
クラスターに多数のインデックスとシャードがある場合、またはデータが頻繁に変更される場合は、専用マスターノードにより高い仕様を選択してください。

クライアントノード

クライアントノード (Elasticsearch のコーディネーティングノード) は、分散クエリのリデュースフェーズを処理します。専用クライアントノードは、ガベージコレクション (GC) の影響をデータノードから分離します。

ガイドライン
クライアントノード対データノード比1:5
クライアントノードのvCPU対メモリ比1:4 または 1:8
最小クライアントノード数2

例: 各 8 vCPU、32 GiB のデータノードが10個ある場合、各 8 vCPU、32 GiB のクライアントノードを2個構成します。

シャードの評価

シャードは Elasticsearch インデックスの基本的なストレージ単位であり、プライマリシャードとレプリカシャードに分類されます。詳細については、「シャードとレプリカシャード」をご参照ください。

適切なシャード計画は、パフォーマンスの低下、ディスク使用率の不均一、ノード間のCPU負荷の不均衡を防ぎます。インデックスあたりのデータ量、予想されるデータ増加、ノード仕様、および一時的なインデックスが定期的な削除またはマージを必要とするかどうかに基づいてシャードを計画します。

シャードサイズのガイドライン

シナリオ最大シャードサイズ
汎用ワークロード30 GiB (特殊な場合は最大 50 GiB)
ログ分析または非常に大きなインデックス100 GiB

インデックスあたりのシャード数

データ量に基づいてシャード数を決定します。

  • 大容量データ、高い書き込みスループット: プライマリシャードあたり1つのレプリカを持つ、インデックスあたり複数のプライマリシャードを構成します。

  • 小容量データ、低い書き込みスループット: インデックスあたり1つのプライマリシャードと、1つ以上のレプリカシャードを構成します。

デフォルトのシャード構成はバージョンによって異なります。
  • V7.X以降: インデックスあたり1つのプライマリシャード、1つのレプリカシャード

  • V7.X以前: インデックスあたり5つのプライマリシャード、1つのレプリカシャード

小さなインデックスでの負荷分散: インデックスあたりのデータ量が 30 GiB 未満の場合、複数のレプリカを持つ1つのプライマリシャードを使用して、ノード全体に負荷を分散します。例えば、5ノードクラスター上の 20 GiB のインデックスは、1つのプライマリシャードと4つのレプリカシャードを使用できます。

シャード分散のガイドライン

  • 合計シャード数をデータノード数と等しくするか、その整数倍にしてください。

  • 単一ノードあたりのインデックスあたりの最大シャード数は5つにしてください。

ノードあたりの合計シャード数

単一のデータノードが保持できる最大シャード数を計算します。

クラスターサイズ計算式
小規模な仕様 (またはデータ量 < 1 TiB)ノードあたりのシャード数 = メモリ (GiB) x 30
大規模な仕様ノードあたりのシャード数 = メモリ (GiB) x 50
  • V7.X クラスターにおけるノードあたりのデフォルトの最大シャード数は 1,000 です。この制限を変更しないでください。より多くのシャードが必要な場合は、代わりにノードを追加してください。

  • 過剰なシャードはパフォーマンスオーバーヘッドを増加させ、ファイルハンドルを使い果たし、クラスター障害につながる可能性があります。実際のビジネス要件に基づいてシャードを構成してください。

詳細については、「How to size your shards」をご参照ください。

サイジングとメンテナンスのベストプラクティス

  • 見積もりから開始し、反復します。 このドキュメントの計算式は、初期のサイジング見積もりを提供します。代表的なワークロードで検証し、必要に応じて調整してください。

  • 古いインデックスを削除します。 自動インデックス作成が有効になっている場合、インデックスライフサイクル管理 (ILM) または Elasticsearch APIスクリプトを使用して古いインデックスを削除します。詳細については、「ILM を使用した Heartbeat インデックスの管理」をご参照ください。

  • ヒープメモリを解放します。 小さいまたは未使用のインデックスを速やかに削除して、ヒープメモリを解放してください。

  • シャードの健全性を監視します。 既存のインデックスのシャードあたりのデータ量が推奨制限を超えている場合、データを再インデックスします。詳細については、「reindex API を使用したデータ移行」をご参照ください。データの再インデックスはサービスの継続性を維持しますが、時間のかかる作業です。

参考