What is the MOST operationally efficient solution?
Set up each EC2 instance so that it writes its healthy/unhealthy status into a shared Amazon S3 bucket for the ALB to read.
Configure the health check on the ALB and ensure that the Health Check Path setting is correct.
Set up Amazon ElastiCache to track the EC2 instances as they scale in and out.
Configure an Amazon API Gateway health check to ensure custom checks on all of the EC2 instances.
Explanations:
Writing health status into a shared S3 bucket adds unnecessary complexity and is not efficient for ALB.
The ALB health check can be configured directly for EC2 instances with a custom health check path, which is operationally efficient.
Using ElastiCache to track EC2 instance health is not necessary for a health check and adds unnecessary complexity.
API Gateway is not needed for EC2 instance health checks and introduces extra steps for monitoring.