0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

これでECSデプロイも安心!知らないとハマるmin_healthy_percentとmax_percentの落とし穴

Posted at

min_healthy_percent / max_healthy_percent とは?

これらは、ECS のサービスをデプロイする際のローリングアップデート戦略に関わる設定項目です。
タスクのアップデート時に、何台のタスクを同時に停止・起動するかの制御を行います。


min_healthy_percent(最小正常タスク割合)

  • 意味:デプロイ中に正常で稼働していなければならないタスクの最小割合を指定します。
  • min_healthy_percent: 50 なら、サービスの希望数が10の場合、最低でも5つのタスクは常に稼働している必要があります。

◼️ max_healthy_percent(最大タスク数割合)

  • 意味:デプロイ中に希望タスク数(desired count)を超えて起動しても良い最大割合を指定します。
  • max_healthy_percent: 200 なら、希望数が10の場合、最大20個までタスクを一時的に起動可能です。

使い方

{
  "deploymentConfiguration": {
    "maximumPercent": 200,
    "minimumHealthyPercent": 100
  }
}
        self.service = ecs.FargateService(
            self,
            "FargateService",
            cluster=cluster,
            task_definition=task_definition,
            desired_count=ecs_config.get("ecs_desired_count", 2),
            min_healthy_percent=100,
            max_healthy_percent=200,
            assign_public_ip=False,
            vpc_subnets=ec2.SubnetSelection(
                subnet_type=ec2.SubnetType.PRIVATE_WITH_EGRESS
            ),
            security_groups=[ecs_service_sg],
        )

image.png

上記設定で、desired count = 10 の場合:

  • 最小で5つは必ず稼働(停止できるのは最大5つまで)
  • 最大で20個まで一時的に起動可能(新タスクは最大10個まで同時に起動可能)

メリット・デメリット

項目 メリット デメリット
min_healthy_percent - 可用性を維持しながらデプロイできる
- サービスのダウンタイムを抑えられる
- 値が高すぎると、新タスクの起動スペースが足りずデプロイが遅延する可能性あり
max_healthy_percent - 新タスクを並列に起動して高速に切り替えできる
- デプロイ時間の短縮につながる
- 値が高すぎるとリソース(CPU/メモリ)を過剰に消費し、クラスタ全体に負荷がかかる可能性あり

運用時のベストプラクティス

  • 通常は:

    {
      "minimumHealthyPercent": 100,
      "maximumPercent": 200
    }
    

    この設定で、可用性を完全に保ちつつ高速にデプロイ可能。

  • タスク数が少ないサービスや、リソースに余裕がない場合は:

    {
      "minimumHealthyPercent": 50,
      "maximumPercent": 100
    }
    

    など、リソースと相談しながら慎重に設定。


まとめ

パラメータ 説明 よく使われる値
min_healthy_percent デプロイ中に常に稼働すべきタスクの最小割合 100(高可用性維持)
max_healthy_percent 一時的に起動可能な最大タスク割合(desired count に対する) 200(高速デプロイ)

これらを適切に設定することで、ECS のデプロイを安全かつ効率的に行えます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?