説明
ECS のレプリカサービスで desired_count = 0 を指定すると、希望するタスク数が 0 になります。継続してリクエストを処理するサービスでは停止につながりますが、計画停止やゼロへのスケールでは意図した値の場合もあります。希望する数と実際の実行数は異なるため、実行状態も確認する必要があります。
DAEMON スケジューリングでは、desired_count でタスク数を管理しません。
想定される影響
- 必要なタスクが動いていないと、サービスはリクエストを処理できません。
- 容量不足やデプロイ失敗を見逃すと、希望数が正でも障害が続く場合があります。
対処方法
継続稼働するレプリカサービスには、要件に応じて 1 以上の desired_count を設定してください。実行中・待機中の数、容量、デプロイ状態、ヘルスチェックを確認してください。計画停止やオートスケーリングの 0 設定は運用意図に合わせて管理し、可用性アラームを設定してください。
例
希望するタスク数を比較する抜粋です。実際のクラスターとタスク定義を参照し、必要なタスク定義やネットワークなどの省略部分を別途設定してください。
変更前
hcl
resource "aws_ecs_service" "example" {
name = "example"
cluster = aws_ecs_cluster.example.id
desired_count = 0
}
変更後
hcl
resource "aws_ecs_service" "example" {
name = "km_ecs_service"
cluster = aws_ecs_cluster.km_ecs_cluster.id
task_definition = aws_ecs_task_definition.km_ecs_task.arn
desired_count = 1
launch_type = "FARGATE"
}
変更後はタスクを 1 個要求します。実際に正常稼働するか確認してください。希望数を 1 にするだけでは高可用性は保証されません。