web-dev-qa-db-ja.com

Amazon ECSの最小正常パーセントと最大パーセントは何ですか

私はすでにDockerとEC2の経験があります。しかし、ECSは初めてです。誰かが私にこれらの2つのパラメーターが実際に何をするか、それらの違いと使用法を理解するのを手伝ってくれませんか?.

公式ドキュメント さんのコメント:

最小正常パーセントは、デプロイ中にRUNNING状態のままにしておく必要があるサービスタスクの数の下限を、必要なパーセンテージとして表しますタスク数(最も近い整数に切り上げ)。このパラメーターを使用すると、追加のクラスター容量を使用せずに展開できます。たとえば、サービスに4つのタスクが必要な数であり、最低でも50%の正常な割合がある場合、スケジューラは2つの既存のタスクを停止して、2つの新しいタスクを開始する前にクラスターの容量を解放することがあります。ロードバランサーを使用しないサービスのタスクは、RUNNING状態であれば正常と見なされます。ロードバランサーを使用するサービスのタスクは、それらがRUNNING状態であり、それがホストされているコンテナーインスタンスがロードバランサーによって正常であると報告されている場合、正常と見なされます。最小正常パーセントのデフォルト値は、コンソールでは50%、AWS CLI、AWS SDK、およびAPIでは100%です。

maximum percentパラメータは、展開中にRUNNINGまたはPENDING状態で許可されるサービスのタスク数の上限を、希望するタスク数(最も近い整数に切り捨て)。このパラメーターを使用すると、展開バッチサイズを定義できます。たとえば、サービスに4つのタスクが必要な数であり、最大パーセント値が200%である場合、スケジューラは4つの新しいタスクを開始してから4つの古いタスクを停止する場合があります(これを行うために必要なクラスターリソースが利用可能である場合)。最大パーセントのデフォルト値は200%です。

これらの2つのパラメーターについては、まだはっきりしていません。

  1. 最小正常パーセントで、サービスに4つのタスクが必要な数であり、最小正常パーセントが25%である場合、スケジューラーはいくつの既存/新規タスクを開始/停止しますか?
  2. 最大パーセントで、サービスに4つのタスクの希望数と最大パーセント値の50%がある場合、スケジューラーはいくつの既存/新規タスクを開始/停止しますか?
  3. サービスで実行中のタスクが1つだけの場合、これらのパラメーターを設定して既存のタスクを停止し、新しいタスクを実行する方法。
20
sith
  1. 必要なタスクが4で、最小ヘルスが25%の場合、ECSは展開中に1を除くすべてのタスクを停止してから、新しいタスクを開始できます。
  2. 構成が意味をなさないように、最大​​値は100以上にする必要があります。ただし、必要なタスクが4つあり、最大が150%の場合、ECSは他のタスクを停止する前に2つの新しいタスクを開始できます。
    • 再デプロイメント中に実行されるタスクが2つ以上ないことを確認する場合は、desiredを1に、最小を0%に、最大を100%に設定する必要があります。
    • 常に少なくとも1つのタスクが実行されていることを確認したい場合は、desiredを1に、最小を100%、最大を200%に設定する必要があります。

他の例。 4で希望する場合は、最小50%、最大150%。その後、ECSは展開中に何を行うかを決定できます。

  • クラスターにリソースが不足している場合は、2つのタスクを停止し、新しいバージョンで2つの新しいタスクを開始して、新しいタスクが正常になるまで待つことができます。次に、残りの2つのタスクを停止し、2つの新しいタスクを開始します。
  • クラスターにさらにリソースがある場合、ECSは既存のタスクを停止する前に2つの新しいタスクを開始することを決定できます。

または、この方法でそれを見ることができます。再展開中、ECSは、MinimumPercent/100 * desiredとMaximumPercent/100 * desiredタスクの間で実行する必要があります。この場合は2〜6のタスクです。

28
Tobias Tobiasen