You could also run multiple EC2 instances and load balance between them. Also that should put your uptime above 99.99% if it isn't already there. From what I understand a single EC2 instance is around 99.95 or 99.5%+ of uptime, load balance them and it rockets up to 99.99% or better, often hitting the 99.999%+ range. Either way that could help also...
...and another idea is to leave an EC2 hot swappable. Also possibly keep an RDS repository hot swappable too, just in case the production copy gets corrupted or some such issue.
...and another idea, keep an EC2 instance booted with mySQL, as a last ditch emergency copy if something is up with the RDS copy.
...and last idea, run a hot swappable or load balanced - or hot swappable AND load balanced cloud hosted service in a secondary cloud such as Rackspace or other RoR friendly cloud host.
Hope that helps. :)
An AMI, as you note, is a machine image. It's a total snapshot of a system stored as an image that can be launched as an instance. We'll get back to AMIs in a second.
Lets look at EBS. Your other two items are sub-items of this. EBS is a virtual block device. You can think of it as a hard drive, although it's really a bunch of software magic to link into another kind of storage device but make it look like a hard drive to an instance.
EBS is just the name for the whole service. Inside of EBS you have what are called volumes. These are the "unit" amazon is selling you. You create a volume and they allocate you X number of gigabytes and you use it like a hard drive that you can plug into any of your running computers (instances). Volumes can either be created blank or from a snapshot copy of previous volume, which brings us to the next topic.
Snapshots are ... well ... snapshots of volumes: an exact capture of what a volume looked like at a particular moment in time, including all its data. You could have a volume, attach it to your instance, fill it up with stuff, then snapshot it, but keep using it. The volume contents would keep changing as you used it as a file system but the snapshot would be frozen in time. You could create a new volume using this snapshot as a base. The new volume would look exactly like your first disk did when you took the snapshot. You could start using the new volume in place of the old one to roll-back your data, or maybe attach the same data set to a second machine. You can keep taking snapshots of volumes at any point in time. It's like a freeze-frame instance backup that can then easy be made into a new live disk (volume) whenever you need it.
So volumes can be based on new blank space or on a snapshot. Got that? Volumes can be attached and detached from any instances, but only connected to one instance at a time, just like the physical disk that they are a virtual abstraction of.
Now back to AMIs. These are tricky because there are two types. One creates an ephemeral instances where the root files system looks like a drive to the computer but actually sits in memory somewhere and vaporizes the minute it stops being used. The other kind is called an EBS backed instance. This means that when your instances loads up, it loads its root file system onto a new EBS volume, basically layering the EC2 virtual machine technology on top of their EBS technology. A regular EBS volume is something that sits next to EC2 and can be attached, but an EBS backed instance also IS a volume itself.
A regular AMI is just a big chunk of data that gets loaded up as a machine. An EBS backed AMI will get loaded up onto an EBS volume, so you can shut it down and it will start back up from where you left off just like a real disk would.
Now put it all together. If an instance is EBS backed, you can also snapshot it. Basically this does exactly what a regular snapshot would ... a freeze frame of the root disk of your computer at a moment in time. In practice, it does two things different. One is it shuts down your instance so that you get a copy of the disk as it would look to an OFF computer, not an ON one. This makes it easier to boot up :) So when you snapshot an instance, it shuts it down, takes the disk picture, then starts up again. Secondly, it saves that images as an AMI instead of as a regular disk snapshot. Basically it's a bootable snapshot of a volume.
Best Answer
Start with an ebs root based instance to begin with.
I've converted most of mine to these.
I did try to convert some existing ones to ebs only,but after 3 or 4 hours, I found out I could just re-install all the needed binary packages, and copy across our folks code,data,etc
From https://console.aws.amazon.com/ec2/home?region=us-east-1#s=LaunchInstanceWizard
(the launch instance button),
click the "Viewing" drop-down that defaults to all images and pick EBS images. Many Fedora,Ubuntu, Amazon-Linux, to pick from. Note: on all these it shows "Root Device: EBS"...
Boot it with your other choices, certs, region, architecture,etc.
login to it,customize it, fix it up as you see fit.
stop it. NOT TERMINATE
start it again, and everything on root is as you left it.
There are some startup scripts amazon or somebody supplies that re-init /mnt each time, but I just have separate EBS backups of our base software.
This setup is ideal for us, where we do not have huge load spikes,but instead have occasional tasks that take 2 x our regular hosts, and so I've got half a dozen instances that are "STOPPED" and not getting any CPU charges (but they do take up minuscule S3 storage charges).
So this leaves you with permanent root stuff,not transient,and you stop,start,as you need.
Any of the EBS instances, you can "boot more like this", if you need 20 in a hurry.
Note2: If you attach big EBS volumes, to an EBS based AMI and pick Boot more like this it makes copies of those attached volumes. and that can take a while to have it boot, as well as unexpected storage charges with all these funky snapshots laying about.
You can probably do this thru the cli tools also,but I found the console easy enough.