説明
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