Which Amazon Web Services products are you using and what is your setup?<p>Do you scale your EC2 instances horizontally or do you find you can handle most bottlenecks by moving to a bigger instance?<p>Do you put your db in EBS, RDS, or just use EC2 storage? Why do you or do you not use RDS? How do you handle backups?<p>How do you share user uploaded files between web server instances?<p>Thanks!
I have used AWS on 2 projects now.<p>On the first project, we used 2 small instances as web servers, 1 small instance as a database master, and another as a slave. The slave machine handled backup of db and uploaded files by zipping everything up and throwing it onto s3. There was no EBS or RDS at this time. The main problem we had was sharing user uploaded files between instances. We used Gluster (<a href="http://www.gluster.org/" rel="nofollow">http://www.gluster.org/</a>) for this, but it was complicated and gave us problems. In general this setup worked fine and we could add webserver instances to handle traffic spikes. Even this limited setup took a bit of effort to maintain and I often wondered if we could have just handled the whole thing with one large or extra large instance. Does anyone know if there is some bottleneck that comes from vertically scaling like this?<p>Sadly, on the second project we haven't really needed to scale at all, so we just use one small instance for everything and have our mysql files and user uploaded files in an EBS volume. I haven't really figured out backup and restore from snapshots yet, so I just zip up the contents of the EBS and transfer it to S3. We are using cloudfront to serve static files and it seems to work fine.