31

Amazon EC2 での ES の構成に関する ec2の優れたチュートリアルelasticsearch があります。私はそれを研究し、すべての推奨事項を適用しました。

これで AMI ができ、この AMI からクラスター内の任意の数のノードを実行できます。自動検出が構成され、ノードは実際に必要なとおりにクラスターに参加します。

問題は、クラスターの負荷に応じてノードを自動的に起動/終了できるようにクラスターを構成する方法です。

たとえば、負荷がないときに 1 つのノードのみを実行し、ピーク負荷時に 12 のノードを実行したいとします。しかし、クラスター内の 11 個のノードを終了すると、シャードとレプリカはどうなるでしょうか? 12 個のノードのうち 11 個のノードを終了した場合、クラスター内のデータが失われないようにするにはどうすればよいですか?

このためにS3 ゲートウェイを構成したいと思うかもしれません。ただし、ローカルを除くすべてのゲートウェイは非推奨です。

シャードの割り当てに関するマニュアルの記事があります。非常に基本的なことが欠けている可能性がありますが、すべてのシャード コピーを常に保持するように 1 つのノードを構成できるかどうかを判断できなかったことを認めなければなりません。私の目標は、これがクラスター内で実行されている唯一のノードである場合でも、データを失わないようにすることです。

私が想像できる唯一の解決策は、12 個のシャードと 12 個のレプリカを持つようにインデックスを構成することです。次に、最大 12 個のノードが起動されると、すべてのノードにすべてのシャードのコピーが作成されます。しかし、私はこのソリューションが好きではありません。ピーク時の負荷で 12 を超えるノードが必要な場合は、クラスターを再構成する必要があるからです。

4

5 に答える 5

12

アプリケーションの弾力性が可変クエリ負荷によって駆動される場合、データを保存しないように構成された ES ノード (node.data = false、http.enabled = true) をセットアップし、それらを自動スケーリング用に配置できます。これらのノードは、すべての HTTP および結果の合成処理をメイン データ ノードからオフロードできます (より多くのインデックス作成と検索のためにそれらを解放します)。

これらのノードにはシャードが割り当てられていないため、それらを動的に起動および停止しても問題はなく、自動検出によりクラスターに参加できるはずです。

于 2013-08-07T21:49:03.100 に答える
0

一時的な需要を満たすためにオートスケーラブル アーキテクチャを採用する場合、これは一般的に懸念事項だと思いますが、それでもデータを保存する必要があります。EBSを活用したソリューションがあると思います

  • シャードを特定の EBS ボリュームにマップします。15個のシャードが必要だとしましょう。15 個の EBS ボリュームが必要です

  • amazon では複数のボリュームをマウントできるため、最初は、複数のボリュームが接続されたいくつかのインスタンスから始めることができます。

  • 負荷が増加すると、追加のインスタンスをスピンアップできます - 最大 15 まで。

上記のソリューションは、最大容量の要件がわかっている場合にのみお勧めします。

于 2014-03-14T23:09:11.563 に答える