ECS サービスに必要なタスク数の確認

運用目的に合わせ、希望するタスク数と実際の実行状態を確認してください。

説明

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 にするだけでは高可用性は保証されません。

参考資料