We recently launched our free Web CallerID app using Amazon.com Web Services Elastic Compute Cloud (EC2). EC2 is a fully virtualized self-service hosting environment as compared to traditional dedicated hosting or managed hosting from companies like Rackspace, ServerBeach, or SoftLayer. We took advantage of Elastic Block Store (EBS) for persistent database storage and Elastic IP for persistent IPs. Here are some thoughts based on what we learned:
- Setting up EC2 hosting takes more time than traditional hosting as you have to budget for creating/repackaging the Amazon Machine Images (AMI) and creating scripts to reconfigure items in the event of an instance change (e.g. remounting EBS volumes and reassigning Elastic IPs)
- More or less being forced to make an AMI is a great exercise in packaging up your server for deployment, which actually saves time in the long run as you won’t have to rebuild a machine when a hard drive fails, like with traditional hosting, or when you are adding more of the same type server, like with traditional hosting
- Amazon EC2 is actually cheaper than traditional hosting if you purchase Reserved Instances, but more expensive if you pay the On Demand rate
- We haven’t had any maintence issues with the EBS volumes, as compared to our RAID hard drives on one of our other multi-server apps that requires a hard drive to be replaced once per month, incurring additional systems administration work on our part
I highly recommend Amazon EC2 for hosting.