Very 'interesting' they asking you this. Specially when it looks you are just starting.
I run a credit card company on AWS, our website runs on a single, small aws instance, but the POS/Financial servers are setup this way:
- 8 multi-az oracle rds instances, 4 of them are slaves. It means we have 16 servers where 8 are manually standing by and 8 are on rds multi-az system. The 4 slaves are set to be used to recover from a data tampering event, not aws outages.
- Some dozens of app servers on the same region of each database. We use a custom tcp/ip server I built in java almost a decade ago. We are thinking about migrating to apache Mina.
My personal tips:
- Why are you paying the heroku premium? Build you own aws servers, put nginx and set cheap instances behind it. Let capistrano be your heroku.
- Use some dynamic dns service, I would recommend dynect. Avoid amazon Route 53.
- Use multi-az, set up the same database in another region (continent)
- Get out of us-east
Build the very same setting into another region, create scripts to load the slave country's database if possible.
If your database is too fancy or large:
Shard or distribute.
(Edit) Almost forgot: ALWAYS have fresh as possible, offline backups of everything. Oracle is god when it comes to making this easy.