I have a web server that occasionally stops working entirely. There is no spike in web requests, CPU usage, memory usage, disk usage, or network usage leading up to the crash. Just all of the usage graphs suddenly drop to 0, and the server becomes basically unreachable. I can still ping the server, and in fact I can get a connection on ports 80 and 22, but I never get any response other than a ping response.
Rebooting the server causes a full recovery. This kind of crash happens on about an 18-36 hour interval. This is a virtual machine running Ubuntu 11.04 (with stock PHP 5.3, Apache, JVM) on Amazon's EC2. I've created dozens of servers with the same result, so it's not a hardware issue. I've tried rebuilding my server image from scratch with Ubuntu 10.10, and it had no effect.
What can I try to diagnose this issue?
EDIT, further details: I have a cron job running as root once per minute that logs the output of the detailed Apache status (which URLs are being run, for how long, etc). The last log before the crash looks normal, and the cron job doesn't even run once the crash happens (according to /var/log/auth.log).
EDIT, for clarity: I can telnet to port 22, but not SSH to it. I can telnet to port 80, but there is no response at all to an HTTP GET.