2013-11-03 9 views
8

私はElastic BeanstalkでAWS経由に展開を計画してDjangoのアプリを書いています。なぜ私は私のアプリケーションのために実行したいコンテナコマンドのために 'leader_only'を指定する必要があるのか​​理解しようとしています。この詳細については、hereを参照してください。AWS Elastic Beanstalk - なぜ私はleader_onlyをコマンドに使用しますか?

それは言う:

また、あなたがleader_only使用することができます。 1つのインスタンスは、Auto Scalingグループのリーダーの になるように選択されています。 leader_only値がtrueに を設定されている場合、コマンドは リーダーとしてマークされているインスタンス上で実行されます。

アプリケーションを実行するインスタンスが複数ある場合は、「leader_only」を使用して1つのインスタンスのみでコマンドを実行し、残りのインスタンスには影響しません。私はおそらくそれの目的を誤解していますが、リーダーで環境が他のインスタンスと異なる場合がありますので、それは非理想的なようで、エンドユーザーは、彼らがに接続するために起こるどのインスタンスに応じて、異なる結果を得ることができます。

+0

以下に述べるが、簡潔にするとして、あなただけのスタックに対して一度何かを実行する必要がある場合、それが使われています。例:データベース移行の実行。 –

答えて

15

ビューの技術的な立場からは、Elastic Beanstalkでは、グループを自動スケーリングとするとき、あなたが潜在的にあなたのコマンドは、いくつかのEC2インスタンス上で同時に実行することができることを前提とする必要があるものを展開しています。 leader_onlyの

主な目標は、あなたのコマンドは一つだけEC2インスタンス上で実行されることを確認してください。使用例の場合に便利です:dbマイグレーション・スクリプトの実行、1つのec2で1回だけ実行されるdbの作成など。したがって、leader_onlyは、このインスタンスでのみ実行されるコマンドのマーカーです。

ただし、リーダーの属性は環境の作成時に1回設定され、自動スケーリンググループにリーダーを持たない場合、リーダーが死んで新しいインスタンスの可能性のある状況に置き換えられた場合に備えて設定されます。

関連する問題