Diagnostic step 1
Do not terminate running instances. Capture current lifecycle-hook state and ASG activity history for diagnostics.
Generated Oct 15, 2026, 9:17:34 AM
Do not terminate running instances. Capture current lifecycle-hook state and ASG activity history for diagnostics.
From an affected new instance console, run curl -v to SSM and S3 endpoints (use instance's shell or user-data log) to confirm TCP connectivity vs TLS/HTTP auth failure. Collect /var/log/cloud-init-output.log and journalctl -u cloud-init.
Verify the Launch Template's IAM Instance Profile setting in the console or via aws cli (aws ec2 describe-launch-templates/describe-launch-template-versions) to confirm the intended role is attached.
Verify VPC route tables and NAT Gateway/egress path for the private subnet(s). Temporarily launch a debug EC2 in the same subnet with a public key and test egress to AWS endpoints (or add temporary public IP) to isolate NAT vs role issues.
If IAM role appears missing, attempt to reattach correct instance profile to the Launch Template or Launch Configuration and perform a single manual launch to validate before resuming ASG update. If IMDS access appears blocked, inspect AMI hardening scripts and cloud-init configuration; revert to a known-good AMI in a test ASG if necessary.