概要
ECSにデプロイ時、
- ALBのヘルスチェックが通らない
- タスク自身のヘルスチェックが通らない
- コンテナ内部のエラーによってコンテナが止まってしまう
などの理由でECSがサービス内のタスクを無限に再起動し続けます。
放っておくとNATの通信料などがかかり痛手です。
これはECSサービスのDeploymentCircuitBreaker
設定をオンにすると防げます。
実装
CFn.yml
YourService:
Type: AWS::ECS::Service
Properties:
ServiceName: !Ref YourServiceName
Cluster: !Ref YourClusterArn
LaunchType: FARGATE
DeploymentConfiguration:
DeploymentCircuitBreaker: #ここを設定!
Enable: true
Rollback: true
MaximumPercent: 200
MinimumHealthyPercent: 75
DesiredCount: !Ref DesiredCount
NetworkConfiguration:
AwsvpcConfiguration:
AssignPublicIp: DISABLED
SecurityGroups:
- !Ref YourSecurityGroupId
Subnets:
- !Ref YourPrivateSubnet
TaskDefinition: !Ref YourTaskDefinition
コンソール
参考