HealthCheck
An object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile). This configuration maps to the HEALTHCHECK
parameter of docker run.
The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image.
You can view the health status of both individual containers and a task with the DescribeTasks API operation or when viewing the task details in the console.
The health check is designed to make sure that your containers survive agent restarts, upgrades, or temporary unavailability.
The following describes the possible healthStatus
values for a container:
HEALTHY
-The container health check has passed successfully.UNHEALTHY
-The container health check has failed.UNKNOWN
-The container health check is being evaluated, there's no container health check defined, or Amazon ECS doesn't have the health status of the container.
The following describes the possible healthStatus
values based on the container health checker status of essential containers in the task with the following priority order (high to low):
UNHEALTHY
-One or more essential containers have failed their health check.UNKNOWN
-Any essential container running within the task is in anUNKNOWN
state and no other essential containers have anUNHEALTHY
state.HEALTHY
-All essential containers within the task have passed their health checks.
Consider the following task health example with 2 containers.
If Container1 is
UNHEALTHY
and Container2 isUNKNOWN
, the task health isUNHEALTHY
.If Container1 is
UNHEALTHY
and Container2 isHEALTHY
, the task health isUNHEALTHY
.If Container1 is
HEALTHY
and Container2 isUNKNOWN
, the task health isUNKNOWN
.If Container1 is
HEALTHY
and Container2 isHEALTHY
, the task health isHEALTHY
.
Consider the following task health example with 3 containers.
If Container1 is
UNHEALTHY
and Container2 isUNKNOWN
, and Container3 isUNKNOWN
, the task health isUNHEALTHY
.If Container1 is
UNHEALTHY
and Container2 isUNKNOWN
, and Container3 isHEALTHY
, the task health isUNHEALTHY
.If Container1 is
UNHEALTHY
and Container2 isHEALTHY
, and Container3 isHEALTHY
, the task health isUNHEALTHY
.If Container1 is
HEALTHY
and Container2 isUNKNOWN
, and Container3 isHEALTHY
, the task health isUNKNOWN
.If Container1 is
HEALTHY
and Container2 isUNKNOWN
, and Container3 isUNKNOWN
, the task health isUNKNOWN
.If Container1 is
HEALTHY
and Container2 isHEALTHY
, and Container3 isHEALTHY
, the task health isHEALTHY
.
If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it.
The following are notes about container health check support:
When the Amazon ECS agent cannot connect to the Amazon ECS service, the service reports the container as
UNHEALTHY
.The health check statuses are the "last heard from" response from the Amazon ECS agent. There are no assumptions made about the status of the container health checks.
Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see Updating the Amazon ECS container agent.
Container health checks are supported for Fargate tasks if you're using platform version
1.1.0
or greater. For more information, see Fargate platform versions.Container health checks aren't supported for tasks that are part of a service that's configured to use a Classic Load Balancer.