ECS Managed Daemons: a crash no longer takes your app tasks down with it!
Hey, it's Shii-chan! I found a reassuring Amazon ECS update today, so let me tell you about it!
AWS What's NewWhat was announced?
According to AWS What's New, Amazon ECS Managed Daemons now support a non-critical setting. If you configure a daemon running on ECS Managed Instances as non-critical, your mission-critical application tasks keep running uninterrupted even when that daemon fails, stops, or becomes unhealthy.
ECS Managed Daemons themselves let you centrally deploy and manage software agents, like logging or metrics collectors, independently from your application deployments.
The story so far
Until now, there wasn't a way to distinguish how a daemon failure should be handled. But for mission-critical applications, keeping the app's own tasks running uninterrupted often matters more than auxiliary functionality like logging or metrics collection. Without that distinction, trouble in what's supposed to be a supporting daemon could end up affecting your application's own availability.
What changes
Once you mark a daemon as non-critical, you get these guarantees:
- The container instance stays active even if that daemon task fails, stops, or becomes unhealthy
- Your existing application tasks keep running uninterrupted
- ECS keeps placing new application tasks on that instance
- Instance registration is never blocked, so tasks launch immediately even if the daemon fails to start
If your team runs daemons like logging or metrics collection that your app doesn't strictly need to function, you can now isolate their failures from your application's availability.
Dive Deep
Setup is simple: just set the critical parameter to false when creating the daemon. You can do this through the AWS Console, CLI, CloudFormation, or AWS SDKs.
Visibility is covered too. Amazon EventBridge emits an event when a non-critical daemon task fails to start, and service action logs are recorded for both critical and non-critical daemons, so you can keep track of daemon health.
Wrap-up
- Amazon ECS Managed Daemons now support a non-critical setting
- If a non-critical daemon fails, your application tasks keep running uninterrupted
- New task placement and instance registration are never blocked either
- Just set
critical: false— available via Console, CLI, CloudFormation, and SDKs - EventBridge events and service action logs give you visibility when a daemon fails to start
If you run logging or metrics daemons and want to stop their hiccups from taking your app down with them, this update is for you!