When starting up a new online service, companies can find many advantages when utilizing some of Amazon’s AWS platforms. As an experienced developer, I have used several of these services and can recommend them to other people starting online services or dynamic websites.
Amazon Web Services (AWS) began in 2002, leveraging the infrastructure already in place by one of the internet’s largest e-tailers. AWS provides a range of web services which can form what is now becoming popularly known as a “cloud”.
Currently on offer by AWS are approximately 20 web services to be used in the cloud. The most popular to date are the Elastic Cloud Compute and Simple Storage Service, respectively known as EC2 an S3.
Perhaps the service which existing website owners can take advantage of the quickest, is Amazon’s Simple Storage Service (S3). S3 is an online file storage system with built-in high redundancy and infinite scalability. Amazon uses clusters of servers across the globe to guarantee up to 99.999999999% retention and 99.99% up-time to any data you upload to S3.
Any existing files (up to 5GB in size per file) from a website can be easily migrated to S3, allowing it to be used as a Content Delivery Network (CDN). Amazon’s AWS infrastructure resides on super fast internet backbones, which means content will generally be served much faster than if it were served from cheap shared hosting accounts. For the relatively cheap price per GB of storage and data transfer, many website owners currently using web hosting with limited storage and bandwidth may see instant cost reductions by migrating to S3 for content delivery.
For large websites and online services which serve massive amounts of data, the cost performance of Amazon’s S3 can be very high and in some cases a necessary tool when other services cannot store such large amounts of data.
For a company considering starting up an online file sharing or content-heavy service such as a photo or video sharing site, Amazon S3 offers many benefits and a performance which would otherwise require a large initial cost outlay.
Amazon’s Elastic Cloud Compute (EC2) is for server hosting what S3 is for file storage – infinitely scalable and cost effective.
With EC2, you can setup your own cluster of virtual servers running in Amazon’s cloud of servers. You may choose to run a single, low-power virtual server or a cluster of thousands of high performance virtual servers, and any variation in between. Each server you run is called an “instance” and you may choose to use an instance for as little as one billable hour.
Being able to choose how long you use an instance, along with how powerful it is, allows start-up companies to test a new powerful web application without the need to provision costly hardware initially. This alleviates a lot of the risk often encountered with web start-ups who must calculate how much capacity they will need once the site becomes popular. Under-estimating capacity can mean a disruption of service, over-estimating will make the service less profitable.
The EC2 platform is totally programmable, too, which means companies can build intelligent systems which will scale as capacity limits per instance are encountered. When the server load is high, for example, more instances can be turned on and share the load of the system. When the load decreases, unneeded instances can be powered down, keeping costs and efficiency steady.
Currently, there are various Windows and Linux Amazon Machine Instances (AMIs) available for users to use as a starting point when customizing their virtual servers. User-contributed AMIs are also available, with purpose-built server configurations available.
Pairing EC2 & S3
For new startups and existing web services looking to migrate, a combination of EC2 server hosting and S3 as a Content Delivery Network can be an ideal solution. For those able to use both services, there is an added benefit in that inter-network traffic between your EC2 and S3 accounts will usually be free of any bandwidth costs.