I can't tell from your question if you're asking for a simple "performance" or "redundancy" answer or if you're asking for a deeper explanation about application architecture. So, I'll try to answer both.
The short answer is redundancy. With virtual servers, problems on the host machine due to neighboring virtual servers can be frequent. This can slow down the application server and lead to performance problems. With two load-balanced application servers, this isn't as much of an issue.
For the database, I'd suggest reading up on replication. In addition to the master/slave databases, we also have hourly, daily, and weekly snapshots stored offsite because a slave database isn't enough protection from some types of data loss.
Application architecture is a whole beast unto itself, and my real recommendation would be to find and hire a professional to handle this kind of stuff for you.
I was just curious. I would hope RoR would be able to handle more than 60 requests per minute. Nowadays I don't bother with manual replicated servers, cloud servers handle a lot of those problems, but I understand everyone has their reasons.
The short answer is redundancy. With virtual servers, problems on the host machine due to neighboring virtual servers can be frequent. This can slow down the application server and lead to performance problems. With two load-balanced application servers, this isn't as much of an issue.
For the database, I'd suggest reading up on replication. In addition to the master/slave databases, we also have hourly, daily, and weekly snapshots stored offsite because a slave database isn't enough protection from some types of data loss.
Application architecture is a whole beast unto itself, and my real recommendation would be to find and hire a professional to handle this kind of stuff for you.