2016-10-03 7 views
2

クラスタ内のEC2インスタンスの1つにECSエージェントが接続されていないという問題があります。これにより、クラスタからEC2インスタンスが黙って削除され(つまり、サービスを実行できなくなる)、静かにクラスタをサービングサーバーから排除します。私は自分のクラスターにオートスケールグループをバックアップし、健全な量を維持するためにサーバーを生成しました。しかし、ECSエージェントの接続されていないサーバーは不健康なものとしてマークされていないため、ASグループはすべてが問題ないと考えています。ECS-agentが接続されていない場合の対処方法

私は、これを緩和するための何かが必要であると感じています。あるいは、私はECSを選んで運用する際に大きな問題があります。

+1

最新のECS AMIを使用していますか?数ヶ月前にDocker/ECSのアップグレードで修正された同様の問題がありました。 – mcheshier

答えて

2

私たちは長い間この問題を抱えていました。新しいAWS ECSに最適化されたそれぞれのAMIでは、より良い結果が得られましたが、3か月前の時点ではそれはまだ時々起こっていました。

  1. 時限オートスケール回転
    1. 我々:mcheshierは、常に最新のAMIまたは少なくとも最新のAWS ECSエージェント

      を使用してください、我々はそれを解決することができました唯一の方法は、通過した作りで述べたようにランダムな時間

  2. グッドCloudWatchのアラート
      にアップスケーリングしてとダウンそれを防ぐためにしようとするだろう
    1. 私たちは、すべてのキュー(SQS)に基づいた一連のマイクロサービスとしてアプリケーションをセットアップさせました。待ち行列に基づいて拡大縮小することができます。私たちはまともなモニタリングをセットアップして、ECSコンテナの数を横切ってキューのレートを近似させました。レートがオフであることが検出されたら、その全体のECSインスタンスをローテーションします。つまり我々のクラスタがworker-1の4つの実行中のコンテナを配備したとします。各作業者は5分ごとに1000メッセージを送信すると近似しています。キューレートが30005分で、従業員数が4人だった場合、1人は期待どおりに働いていませんでした。ラムダにいくつかのスクリプトを設定して、障害のあるスクリプトを見つけ、そのコンテナを実行したインスタンス全体を終了させました。

私はそれが私たちの社内アプリケーションに固有の実現が、私はあなたと他の誰を与えることができるアドバイスがイニシアチブを取り、そこにあなたができる限り多くの指標を置くことで、このことができます願っています。これは、あなたがいくつかのきちんとした分析を行い、システムのねじれを探すことを可能にします、これはそれらの一つです。

+2

インスタンスを最新のECSに最適化されたAMIに置き換えることで、今のところ修正されましたが、ecs-agentがダウンしているときにAWSがインスタンスに障害を起こしていないという悪夢を感じています。 :s – Pepster

+0

彼らはそれが存在していることを否定し、誰もそれが矛盾しているので何が原因であるかを示すために硬い証拠を持っていません。経験則は、常に最新のaws linux AMIを**使用することです。あなたが能力を持っていれば、私は電子メール/スラック/あなたがそれに応じて更新できるように新しいものがリリースされたときに通知する何かを書くだろう –

関連する問題