What does the ELB do to determine the health of an instance?

What specificaly is involved in an Elastic Load Balancer health check on an instance?

I know that it performas an HTTP(S) "ping"; does it just deem an instance "Unhealthy" if that HTTP request returns an error status $THRESHOLD number of times in a row?

Or does it take other factors into account, such as CPU usage?


There are only 2 factors taken into account:

http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/APIReference/API_HealthCheck.html

For TCP: Failure to connect within the configured timeout is considered unhealthy.

For HTTP: Any answer other than "200 OK" within the timeout period is considered unhealthy.

... and of course you need to specify the Timeout and UnhealthyThreshold which will determine how many failures before the instance is flagged Unhealthy.