Amazon.com's cloud computing offering, Amazon Web Services (AWS), is the flagship of a fleet of new companies offering Infrastructure as a Service in the cloud computing age, and it is doubtless the model on which a great deal of new service offerings will be based.
In this article, we explore the ups and downs of Amazon Elastic Compute Cloud (EC2) and how to get started.
Is EC2 for you?
Any business that has dynamic scalability needs based on online delivery, sales or applications is a good candidate. Startups that want to develop infrastructure with the absolute minimum of costs or IT organizations with short-term projects are also good candidates. It is less ideal for businesses with low latency requirements, large files or strict security concerns.
In short, if your business does heavy-duty transactional processing or massive relational database computing, it's not for you. But if you are developing an online service, opening an e-retail outlet or delivering content, you should check it out.
For instance, a retailer anticipating a surge in traffic or, more realistically, a steady decline, can store an image of their clustered storefront server, and bring additional servers online, responding instantly to spikes and dips in traffic. Over the holiday season, Target Corp., a broad set of shoulders in the online retailing world, did exactly that. EC2 and AWS have been credited with helping Target weather the holiday surge much better than some of its competitors whose websites buckled on Cyber Monday and other busy sales days.
AWS spares businesses the capital outlay of traditional hosting or of building a data center which requires even more up-front capital costs. The upshot is that Amazon, which began by selling books with unparalleled expediency, now does the same with servers.
EC2 has many other uses; it's a playground for developers, who can instantly and with total discretion set up test environments and let their imagination run wild, without the slightest impact on critical infrastructure. For a creative team, an EC2 "instances" budget could lighten administrative headaches considerably.
First, EC2 is 100% pay for play. Users are charged for as much or as little of Amazon's services as they use in a monthly billing period. Second, it is fast. Services include virtual server instances, a term familiar to anyone using virtualization technology. It also offers online storage "buckets" --: simple databases in "domains" -- and new services are cropping up quickly. Comparatively speaking, it is not cheap. If all you need is a website or an online store, hosting a server with EC2 is cost-competitive with hosting a server elsewhere, you will pay many times what a Web host will charge, depending on size.
Running a small or medium-sized website, for example, with a decent amount of traffic (an online community with a message board and retail store, for example) at InMotion Hosting Inc., costs $39.95 a month with 1,000 GB data transfer per month and 80 GB of storage. That's equivalent to Amazon's small server instance, which costs $43.20 per month not including storage or bandwidth. And that's top-tier, fully supported Web hosting- a bargain-basement host like GoDaddy.com offers similar storage and bandwidth for $6 a month or less.
But Amazon isn't selling hosting; it's selling servers and computing time that you use any way you like.
Once a user signs up, he is in charge -- up to a point. Amazon gives you the reins to your new servers and storage space with no rules and no guarantees other than uptime. Your server and your storage are yours for good or ill.
Amazon does not protect your site from hackers beyond edge security for its entire network, it does not protect against theft or data loss, it does not help you develop or maintain your servers, it does not support Microsoft or Red Hat Enterprise Linux (RHEL) issues. It assumes no liability whatsoever for what you or others do to and with your servers.
It does, however, reserve the right to take down your servers if it believes they are engaged in a "deal killer": sending spam, objectionable or illegal material, attacking other networks, etc.
So a moment of carelessness and a compromised server could mean you go dark with little warning or explanation; it's a good idea to follow best practices for data and network security. At the end of the day, they aren't your servers.
AWS consists of two main branches, EC2 and Simple Storage Service (S3) and a growing stable of infrastructure services, such as SimpleDB (a stripped-down relational database service) and CloudFront (content delivery).
Two ways to pay
EC2 includes Elastic Block Store, which stores data you put on your server instance and allows you to run a virtual server instance exactly as you would from a hosting center or a colocation center, except instead of a set rate per month, you pay anywhere from 10 cents to 20 cents per minute. Costs are based on processor and memory availability and operating system. S3 lets you store files up to 5 GB in size in a "bucket" at rates from 15 to 11 cents an hour and a base rate of 10 cents per GB of traffic per month, and so forth.
And just this month, Amazon began offering Reserved Instances: a onetime payment valid for one to three years that allows you to run server instances at steeply discounted rates. For a one-year reservation for a small instance, normally) 10 cents per minute (see rates), a nonrefundable fee of $325 decreases your usage fees from 10 cents per minute to 3 cents per minute: a significant reduction aimed at increasing the attraction of Amazon's competitive operating costs.
Current prices are available here. These servers run "Standard Instances" that range from 1 EC2 Compute Unit (a virtual CPU core equivalent to a modern 2 GHz CPU) and 1.7 GB RAM and 160 GB storage to 8 EC2 Compute Unit, 15 GB RAM, and 1,700 GB storage and High-CPU Instances, which have proportionately higher CPU time/RAM ratios. Instance types are Linux or Windows server operating systems in stock configurations, including RHEL, Windows Server 2003, Oracle Unbreakable Linux, OpenSolaris, openSUSE, Ubuntu, Fedora, Gentoo and Debian.
Built-in software includes Oracle 11g, Microsoft SQL Server Standard 2005, MySQL Enterprise, Microsoft SQL Server Express for databases, Hadoop, OpenMCI and Condor for batching and Apache HTTP and IIS/ASP.Net as Web servers.
But once your server is up and running, nothing is to stop you, of course, from loading your own software.
Up and running
By design, getting started is as easy as buying a book. You can sign up for an account at http://aws.amazon.com. Log in and set up your account by generating a pair of keys for your account an Amazon Access ID and a X.509 certificate and document them in a safe place. These keys are the core of your ability to communicate with AWS.
Read Amazon's "Getting Started Guide" for the nuts and bolts.
Once you have your keys, you can download the application programming interface for your operating system, Windows or Linux, and spend a few minutes setting them up. If you're not fond of the command line, in January, Amazon released a front end that includes a Firefox plug-in
Next, launch an instance with a unique IP address and configure it to allow administration via Remote Desktop for Windows or Secure Shell for Linux. Customize your instance with software, data, configuration and bundle it into your own personal Amazon Machine Image, and save it to Amazon's S3.
Various flavors of public Amazon Machine Images (AWS) are also widely available if you don't like Amazon's. Some are free; some are from the cottage industry springing up like weeds around AWS. For large enterprises, there is a range of services aimed at delivering AWS to the world, such as RightScale, which offers an AWS front end that also integrates with FlexiScale and GoGrid.
So for a few dollars and a few hours, you can hop into EC2 and the cloud, and whether you need 50 servers and 100 GB of traffic or just a quiet corner to call you own, EC2 is there -- for the right price.
About the author:
Carl Brooks is a freelance writer who covers IT, the Internet and politics. Brooks has spent more than 10 years working in the field as a consultant and administrator for small and medium-sized businesses, helping them develop systems and services on Microsoft and Cisco platforms. Brooks graduated from the University of Massachusetts-Boston with BAs in English and History.