Amazon has released a feature to EC2 that will allow you to setup a CloudWatch alarm to monitor your EC2 instance and auto recover it if there is a hardware issue. One of the best features is that it will retain the same instance ID, IP address, and instance metadata!
Read about it here.
While it costs around $3.50/server to use enhanced CloudWatch monitoring, I see this as a well-worth feature to ensure your services are always running and reduce your overhead to maintaining a highly available system.
I look forward to setting this up in the near future. Let me know if you’ve tried it out or have any experience.