😈
ECS 最小ヘルス率、最大ヘルス率について
はじめに
ECSサービススケジューラはデプロイ戦略を決める際、最小ヘルス率、最大ヘルス率を使用します。
この最小ヘルス率、最大ヘルス率はデプロイタイプ(ローリングデプロイ、ブルーグリーンデプロイ)、起動タイプ(EC2、Fargate)によって意味合いが異なります。
最小ヘルス率
デプロイタイプがローリングデプロイ、起動タイプがEC2である場合
- デプロイ時にステータスが
RUNNINGであるタスクのMin Size(最小数)を、Desired Capacityのパーセント値で表したものです(起動タイプがEC2の場合、DRAININGステータスのタスクも最小ヘルス率に考慮されます)。- 例えば、Desired Capacityが4で、デプロイ時に2個のタスクを
RUNNINGステータスに保ちたい場合、最小ヘルス率を50%(4 * 0.5 = 2)に設定します。
この場合、スケジューラは2個の新規タスクを開始する前に2個の既存タスクを停止することができます。
- 例えば、Desired Capacityが4で、デプロイ時に2個のタスクを
- デフォルト値は100%です。
デプロイタイプがBlue/Greenデプロイ 、起動タイプがEC2である場合
- デフォルト値(100%)が使用されます。
起動タイプがFargateの場合
- デプロイ戦略を決める際、
最小ヘルス率は使用されません。
最大ヘルス率
デプロイタイプがローリングデプロイ、起動タイプがEC2である場合
- デプロイ時にステータスが
RUNNINGまたはPENDINGであるタスクのMax Size(最大数)を、Desired Capacityのパーセント値で表したものです(起動タイプがEC2の場合、DRAININGステータスのタスクも最大ヘルス率に考慮されます)。 - この設定によりデプロイのバッチサイズを定義することができます。
- 例えば、Desired Capacityが4で、デプロイを1タスクづつ行いたい場合、最大ヘルス率を125%(4 * 1.25 - 4 = 1)に設定します。
この場合、スケジューラは1個の既存タスクを停止する前に1個の新規タスクを開始できます。
- 例えば、Desired Capacityが4で、デプロイを1タスクづつ行いたい場合、最大ヘルス率を125%(4 * 1.25 - 4 = 1)に設定します。
- デフォルト値は200%です。
デプロイタイプがBlue/Greenデプロイ 、起動タイプがEC2である場合
- デフォルト値(200%)が使用されます。
起動タイプがFargateの場合
- デプロイ戦略を決める際、
最大ヘルス率は使用されません。
参考
Discussion