Amazon EC2 での ES の構成に関する ec2の優れたチュートリアルelasticsearch があります。私はそれを研究し、すべての推奨事項を適用しました。
これで AMI ができ、この AMI からクラスター内の任意の数のノードを実行できます。自動検出が構成され、ノードは実際に必要なとおりにクラスターに参加します。
問題は、クラスターの負荷に応じてノードを自動的に起動/終了できるようにクラスターを構成する方法です。
たとえば、負荷がないときに 1 つのノードのみを実行し、ピーク負荷時に 12 のノードを実行したいとします。しかし、クラスター内の 11 個のノードを終了すると、シャードとレプリカはどうなるでしょうか? 12 個のノードのうち 11 個のノードを終了した場合、クラスター内のデータが失われないようにするにはどうすればよいですか?
このためにS3 ゲートウェイを構成したいと思うかもしれません。ただし、ローカルを除くすべてのゲートウェイは非推奨です。
シャードの割り当てに関するマニュアルの記事があります。非常に基本的なことが欠けている可能性がありますが、すべてのシャード コピーを常に保持するように 1 つのノードを構成できるかどうかを判断できなかったことを認めなければなりません。私の目標は、これがクラスター内で実行されている唯一のノードである場合でも、データを失わないようにすることです。
私が想像できる唯一の解決策は、12 個のシャードと 12 個のレプリカを持つようにインデックスを構成することです。次に、最大 12 個のノードが起動されると、すべてのノードにすべてのシャードのコピーが作成されます。しかし、私はこのソリューションが好きではありません。ピーク時の負荷で 12 を超えるノードが必要な場合は、クラスターを再構成する必要があるからです。