Introduction EC2 status checks monitor the health of your instances. System status checks monitor AWS infrastructure, while instance status checks monitor your instance's software and network configuration. When either fails, the instance may be unreachable or degraded.

Symptoms - EC2 Console shows "2/2 checks failed" or "1/2 checks failed" - SSH connection refused or times out - Instance unreachable via ping (if ICMP allowed) - System log shows kernel panic or boot errors - CloudWatch StatusCheckFailed metric > 0

Common Causes - Instance status check failed: kernel panic, corrupted filesystem, exhausted memory - System status check failed: AWS hardware failure, network connectivity loss - ENA driver incompatibility after kernel update - Root volume full, preventing system boot - Incorrect fstab entries causing boot hang

Step-by-Step Fix 1. **Determine which check failed**: ```bash aws ec2 describe-instance-status --instance-id i-1234567890abcdef0 ``` SystemStatus: impaired = AWS-side issue. InstanceStatus: impaired = your problem.

  1. 1.View system log for boot errors:
  2. 2.```bash
  3. 3.aws ec2 get-console-output --instance-id i-1234567890abcdef0
  4. 4.`
  5. 5.Look for: "Kernel panic", "Out of memory", "Unable to mount root fs".
  6. 6.For system status check failures, try automated recovery:
  7. 7.```bash
  8. 8.aws ec2 recover-instances --instance-ids i-1234567890abcdef0
  9. 9.`
  10. 10.This migrates the instance to healthy hardware (same as Stop/Start).
  11. 11.For instance issues, check disk via Recovery Mode:
  12. 12.- Stop the instance, detach the root volume:
  13. 13.```bash
  14. 14.aws ec2 detach-volume --volume-id vol-0abc123def456
  15. 15.aws ec2 attach-volume --volume-id vol-0abc123def456 --instance-id i-recovery --device /dev/xvdf
  16. 16.`
  17. 17.- Mount and inspect on recovery instance:
  18. 18.```bash
  19. 19.sudo mount /dev/xvdf1 /mnt
  20. 20.df -h /mnt
  21. 21.cat /mnt/var/log/messages | tail -50
  22. 22.`

Prevention - Enable EC2 Auto Recovery via CloudWatch alarm actions - Monitor StatusCheckFailed with CloudWatch alarms - Keep ENA drivers updated before kernel upgrades - Leave at least 20% free space on root volumes - Use UUIDs in fstab instead of device names