The goal is to have as much redundancy as possible so that we can quickly recover from instance failures or any other issues. Our current AWS setup for a Rails WebApp that we run is as follows:
- EC2 instance where we have an AMI of the initial setup. We also create new AMIs every time we make a change to the instance configuration.
- Codebase, instance user directories, and some config files live on a EBS volume (files are rsynced nightly or symlinked) which is mounted by the EC2 instance
- Full weekly backups of EBS volume to S3 bucket and nightly incremental backups
- WebApp uses the RDS hosted database set to 10 days of recoverability
Anyone have any suggestions for making this even more robust? (We almost got caught with our pants down and don't want it to happen again...)