This September I deployed two Rails applications with different stacks, and I wanted to share the details.
- Ubuntu Hardy (8.04) Amazon EC2 image (customized an existing AMI)
- Asset storage on Amazon S3 via the attachment_fu plugin
- nginx web server (static assets and load balancing)
- PostgreSQL 8.3 on separate instance
- cluster of mongrel application servers
- Sphinx 0.9.8 search engine
- server monitoring with monit
- server backups via s3sync
The staging server for the development initially ran a CentOS Linux image, before I realized how painful it was to have separate production and staging environments.
The Amazon EC2 “Small Instance” has 1.8GB RAM as of this writing. Our application puts a very small load on the server, even with many mongrels running. This application was developed with Subversion version control, the repository was hosted internally.