ECSサービスのデプロイ時の可用性設定を確認

必要なタスク数と、ローリングデプロイ中に維持する容量を確認してください。

説明

ECSのREPLICAサービスでは、DesiredCountとローリングデプロイの設定を合わせて確認します。DeploymentConfigurationを省略するとデフォルトが適用されるため、省略だけで実行タスク数が0になるわけではありません。

想定される影響

必要なタスクを維持できないと、リクエスト処理が中断するおそれがあります。意図的にサービスを停止する場合は、タスク数0が適切なこともあります。

対処方法

必要なDesiredCountを定め、ローリングデプロイのMinimumHealthyPercentとMaximumPercentを利用可能な容量に合わせてください。実際のタスクの正常性も確認してください。

例

タスク数1を目標に、ローリング更新の余裕を持たせる抜粋です。この設定だけで正常な実行や無停止が保証されるわけではありません。ClusterとTaskDefinitionは別途定義してください。

変更前

yaml
Resources:
  Service:
    Type: AWS::ECS::Service
    Properties:
      Cluster: !Ref Cluster
      TaskDefinition: !Ref TaskDefinition
      DesiredCount: 0

変更後

yaml
Resources:
  Service:
    Type: AWS::ECS::Service
    Properties:
      Cluster: !Ref Cluster
      TaskDefinition: !Ref TaskDefinition
      DesiredCount: 1
      DeploymentConfiguration:
        MinimumHealthyPercent: 100
        MaximumPercent: 200

参考資料