Quick Diagnosis Cards
One-page reference cards for rapid incident triage. Each card maps: Symptom → First Query → Platform Segment → Playbook.
Use these when you have 60 seconds to identify the failure category.
Card 1: Health Turns Red After Deployment
flowchart LR
A[Deploy Succeeded] --> B[Health Turns Red]
B --> C[Read Recent Errors]
C --> D[Startup and Readiness Lane]
| Symptom | First Query | What to Look For | Platform Segment | Playbook |
| Health changes to red immediately after a successful deployment | fields @timestamp, @message | filter @message like /error|failed|timeout/ | sort @timestamp desc | limit 50 | Startup exceptions, failed health checks, readiness timeout, dependency connection errors | Instance startup and load balancer readiness boundary | Health Turns Red After Deployment |
aws elasticbeanstalk describe-environment-health \
--environment-name "$ENV_NAME" \
--attribute-names "Status" "Color" "Causes" "InstancesHealth"
aws elasticbeanstalk describe-events \
--environment-name "$ENV_NAME" \
--max-records 50
Card 2: Deployment Failed (Command Timeout)
flowchart LR
A[Deployment Started] --> B[Command Timeout]
B --> C[Read Engine Errors]
C --> D[Deployment Lifecycle Lane]
| Symptom | First Query | What to Look For | Platform Segment | Playbook |
| Deployment stalls and fails with timeout or rollback events | fields @timestamp, @message | filter @message like /error|failed|timeout/ | sort @timestamp desc | limit 50 | Long-running hook commands, package install failures, Procfile startup timeout, repeated non-zero exit messages | Deployment engine, platform hooks, and application startup | Deployment Failed |
aws elasticbeanstalk describe-events \
--environment-name "$ENV_NAME" \
--max-records 100
aws elasticbeanstalk request-environment-info \
--environment-name "$ENV_NAME" \
--info-type "tail"
Card 3: Load Balancer 5xx Errors
flowchart LR
A[ALB 5xx Spike] --> B[Read Error Stream]
B --> C[Target Health or Timeout]
C --> D[Load Balancer Lane]
| Symptom | First Query | What to Look For | Platform Segment | Playbook |
| Users receive 502, 503, or 504 responses through the load balancer | fields @timestamp, @message | filter @message like /error|failed|timeout/ | sort @timestamp desc | limit 50 | Upstream timeout, target connection reset, unhealthy target messages, proxy or app 5xx bursts | Load balancer, target group, and proxy-to-app path | Load Balancer 5xx Errors |
aws elbv2 describe-target-health \
--target-group-arn "$TARGET_GROUP_ARN"
aws cloudwatch get-metric-statistics \
--namespace "AWS/ApplicationELB" \
--metric-name "HTTPCode_ELB_5XX_Count" \
--dimensions Name=LoadBalancer,Value="$LOAD_BALANCER_DIMENSION" \
--statistics Sum \
--period 60 \
--start-time "$START_TIME" \
--end-time "$END_TIME"
Card 4: High Latency Under Load
flowchart LR
A[Latency Increases] --> B[Traffic Ramp]
B --> C[Capacity or Dependency Delay]
C --> D[Performance Lane]
| Symptom | First Query | What to Look For | Platform Segment | Playbook |
| p95 and p99 latency rise sharply during traffic increases | fields @timestamp, @message | filter @message like /error|failed|timeout/ | sort @timestamp desc | limit 50 | Timeout bursts, queue wait messages, slow downstream calls, worker saturation, scale-out lag | Auto Scaling, instance capacity, and dependency response path | High Latency Under Load |
aws cloudwatch get-metric-statistics \
--namespace "AWS/ApplicationELB" \
--metric-name "TargetResponseTime" \
--dimensions Name=LoadBalancer,Value="$LOAD_BALANCER_DIMENSION" \
--statistics Average p95 p99 \
--period 60 \
--start-time "$START_TIME" \
--end-time "$END_TIME"
aws autoscaling describe-scaling-activities \
--auto-scaling-group-name "$ASG_NAME" \
--max-items 20
Card 5: Instance Health Degraded
flowchart LR
A[One Instance Degraded] --> B[Read Host Errors]
B --> C[Host Resource or Agent Issue]
C --> D[Instance Health Lane]
| Symptom | First Query | What to Look For | Platform Segment | Playbook |
| One or more instances show degraded or severe health while others may stay green | fields @timestamp, @message | filter @message like /error|failed|timeout/ | sort @timestamp desc | limit 50 | Per-instance crash loops, health agent timeouts, disk pressure, process restart patterns | EC2 host state, enhanced health agent, and local application process | Instance Health Degraded |
aws elasticbeanstalk describe-instances-health \
--environment-name "$ENV_NAME" \
--attribute-names "All"
aws elasticbeanstalk describe-environment-health \
--environment-name "$ENV_NAME" \
--attribute-names "Causes" "InstancesHealth"
Card 6: CPU/Memory Exhaustion
flowchart LR
A[CPU or Memory Saturated] --> B[Read Error Trend]
B --> C[Capacity or Leak Pattern]
C --> D[Resource Saturation Lane]
| Symptom | First Query | What to Look For | Platform Segment | Playbook |
| Instances remain near CPU or memory limits and health or latency worsens | fields @timestamp, @message | filter @message like /error|failed|timeout/ | sort @timestamp desc | limit 50 | OOM messages, GC pressure, swap activity symptoms, worker overcommit, sustained saturation | EC2 resource envelope and application worker model | CPU/Memory Exhaustion |
aws cloudwatch get-metric-statistics \
--namespace "AWS/EC2" \
--metric-name "CPUUtilization" \
--dimensions Name=AutoScalingGroupName,Value="$ASG_NAME" \
--statistics Average Maximum \
--period 60 \
--start-time "$START_TIME" \
--end-time "$END_TIME"
aws elasticbeanstalk describe-configuration-settings \
--application-name "$APP_NAME" \
--environment-name "$ENV_NAME"
Card 7: VPC Connectivity Issues
flowchart LR
A[Connection Timeout] --> B[Read Network Errors]
B --> C[Route NAT or SG Check]
C --> D[VPC Path Lane]
| Symptom | First Query | What to Look For | Platform Segment | Playbook |
| Instances cannot reach dependencies or inbound traffic cannot reach the application path | fields @timestamp, @message | filter @message like /error|failed|timeout/ | sort @timestamp desc | limit 50 | Connection timeout, DNS lookup failure, route mismatch, denied network path, missing NAT or endpoint | Subnets, route tables, NAT, security groups, and network ACLs | VPC Connectivity Issues |
aws ec2 describe-route-tables \
--filters Name=association.subnet-id,Values="$SUBNET_ID_1","$SUBNET_ID_2"
aws ec2 describe-security-groups \
--group-ids "$ALB_SECURITY_GROUP_ID" "$INSTANCE_SECURITY_GROUP_ID"
Card 8: HTTPS/SSL Termination Problems
flowchart LR
A[HTTPS Fails] --> B[Read TLS Errors]
B --> C[Certificate or Listener Mismatch]
C --> D[TLS Termination Lane]
| Symptom | First Query | What to Look For | Platform Segment | Playbook |
| Browser TLS warnings, HTTPS handshake failures, or missing redirect to HTTPS | fields @timestamp, @message | filter @message like /error|failed|timeout/ | sort @timestamp desc | limit 50 | Certificate validation problems, wrong domain served, missing 443 listener, broken redirect path, unhealthy HTTPS targets | ACM certificate, ALB listener, redirect rule, and target health protocol | HTTPS/SSL Termination Problems |
aws acm describe-certificate \
--certificate-arn "$CERTIFICATE_ARN"
aws elbv2 describe-listeners \
--load-balancer-arn "$LOAD_BALANCER_ARN"
See Also
Sources
- https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/troubleshooting.html
- https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.logging.html
- https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced.html
- https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.managing.elb.html
- https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.managing.vpc.html
- https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-elb.html