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

専用マスターノード

Amazon Elasticsearch Service では、クラスターの安定性を向上するために専用マスターノードを使用します。専用マスターノードではクラスター管理タスクを実行しますが、データは保持せず、データのアップロードリクエストにも応答しません。このように、クラスター管理タスクをオフロードすると、ドメインの安定性が向上します。

本番稼働用 Amazon ES ドメインには、専用マスターノードを 3 つ割り当てることをお勧めします。

  1. 専用マスターノードが 1 つだと、障害発生時にバックアップがとれません。

  2. 専用マスターノードが 2 つの場合は、障害発生時に新しいマスターノードを選択するためのクォーラムがクラスターにありません。

    クォーラムは、専用マスターノードの数/ 2 + 1 (直近の整数まで切り捨て) で計算され、ドメインを作成したときに Amazon ES で discovery.zen.minimum_master_nodes に設定されます。

    ここでは 2/2 + 1 = 2 となります。専用マスターノード 1 つが失敗し、バックアップは 1 つのみであれば、クラスターにはクォーラムがなく、新しいマスターを選択できません。

  3. 推奨される専用マスターノード数は 3 つです。マスターノードが失敗したときに 2 つのバックアップノードが使用でき、必要なクォーラム (2) で新しいマスターを選択できます。

  4. 専用マスターノードを 4 つにすると 3 つより良くなるわけではなく、ゾーン対応を活用すると問題が発生する可能性があります。

    • マスターノード 1 つが失敗した場合、クォーラム (3) で新しいマスターを選択します。2 つのノードが失敗したした場合、そのクォーラムは失われ、専用マスターノードが 3 つの場合と同じ状況になります。

    • 各アベイラビリティーゾーンに 2 つの専用マスターノードがあり、両ゾーンは相互に通信できない場合、いずれのゾーンにも新しいマスターを選択するためのクォーラムはありません。

  5. 専用マスターノードが 5 つの場合は、3 つの場合と同様です。2 つのノードを失うと 1 つのクォーラムが維持されます。ただし、アクティブな専用マスターノードは常時 1 つのみであるため、この構成ではアイドル状態のノード 4 つにコストが発生することになります。多くのお客様は、このレベルのフェイルオーバーは過剰だと考えています。

注記

新しいマスターノードを選択するために必要なクォーラムがクラスターにない場合は、クラスターへの書き込みおよび読み取りリクエストの両方が失敗します。この動作は Elasticsearch のデフォルトとは異なります。

専用マスターノードで実行するクラスター管理タスクは次のとおりです。

  • クラスター内のすべてのノードを追跡する

  • クラスター内のインデックスの数を追跡する

  • 各インデックスに属するシャード数を追跡する

  • クラスター内のノードのルーティング情報を保持する

  • クラスター内のインデックス作成やノードの作成/削除など、状態が変化したときにクラスターの状態を更新する

  • クラスターの状態に施された変更を、クラスター内のすべてのノードにわたって複製する

  • クラスター内のデータノードの可用性を監視するハートビートシグナル (定期的なシグナル) を送信することで、すべてのクラスターノードの状態を監視する

次の図は、10 のインスタンスを持つ Amazon ES ドメインを表しています。インスタンスのうち 7 つはデータノードで、3 つは専用マスターノードです。専用マスターノードのうち、1 つのみがアクティブで、グレーの専用マスターノード 2 つは、アクティブな専用マスターノードが失敗したときのために、バックアップとして待機します。すべてのデータアップロードリクエストは、7 つのデータノードにより保存され、すべてのクラスター管理タスクは、アクティブな専用マスターノードにオフロードされます。

専用マスターノードでは検索およびクエリリクエストを処理しませんが、そのサイズは管理可能なインスタンス、インデックス、シャードの数と大きな相関があります。本番稼働用クラスターにおいて、専用マスターノードには以下のインスタンスタイプをお勧めします。これらの推奨事項は一般的なワークロードに基づいており、お客様の要件によって異なります。

Instance Count

推奨される最小専用マスターインスタンスタイプ

5–10

m3.medium.elasticsearch

10–20

m4.large.elasticsearch

20–50

c4.xlarge.elasticsearch

50–100

c4.2xlarge.elasticsearch