A company hosts a high-traffic web application on a fleet of Amazon EC2 instances managed by an Auto Scaling group. The instances are registered with a target group of an Application Load Balancer (ALB). The target group's health check is configured to request the path `/health` on port 80. The script at `/health` performs a deep health check by querying an Amazon RDS PostgreSQL database to verify connection status.
During a marketing event, a massive traffic spike causes the RDS database CPU utilization to reach 100%, resulting in query queuing. Consequently, the ALB health checks on the EC2 instances begin timing out, and the ALB marks all instances as unhealthy. The Auto Scaling group immediately begins terminating the EC2 instances and launching new ones, which also fail health checks upon initialization, leading to a complete application outage.
Which action should a SysOps administrator take to resolve this issue and prevent future cascading failures?
- Change the target group health check path to a shallow endpoint, such as a static page or a simple script that only verifies the web server status without querying the database.Answer
- BConfigure the target group health check protocol to HTTPS and change the port to match the database port to directly monitor database connectivity.
- CUpdate the subnet's outbound Network Access Control List (NACL) rules to restrict outbound traffic solely to port 80 and the database port, removing access to the ephemeral port range to prioritize health checks.
- DConfigure an Amazon Route 53 active-passive failover routing policy to route client traffic to a secondary static error page when the primary ALB's health checks fail.