Amazon EC2: Industry Standard Software and Virtualization
Amazon's cloud computing platform is heavily based on industry standard software and virtualization technology.
Virtualization allows a physical piece of hardware to be utilized by multiple operating systems. This allows resources (e.g. bandwidth, memory, CPU) to be allocated exclusively to individual operating system instances.
As a user of Amazon's EC2 cloud computing platform, you are assigned an operating system in the same way as on all hosting providers that preceded cloud computing platforms.
The primary difference is that such an instance is highly customizable, in addition to having its resources tallied on a per unit basis, as well as being equipped to scale to larger loads on a case by case basis.
Key characteristics of Amazon EC2
- Choice of industry standard server operating system (e.g. Windows, Linux, Solaris)
- Deployment building block consists of an Amazon Machine Image(AMI). An AMI is a standard server operating system image with pre-selected applications. AMI's can be found at: http://developer.amazonwebservices.com/ connect/kbcategory.jspa?categoryID=171
- Application development open to any server-side development tool, compatible with industry standard server operating system.
Google App Engine: Google Infrastrcture & SDK
Google's cloud computing platform is heavily based on Google's own server infrastructure.
As a user of Google's App Engine, your web applications are built on the same principles as Google applications.
Key Characteristics of Google App Engine
- Built on Google infrastructure (i.e. No commercially available server operating system).
- Choice of either Python or Java run-time for running web applications. Other pre-selected applications are available via services (e.g. Mail, Memcache).
- Application development tightly pegged to Google's Software Development Kit (SDK). (http://code.google.com/appengine/downloads.html#Download_the_Google_App_Engine_SDK)
- Tightly integrated with Google's web services APIs (e.g. For authenticating users and sending email).
- Free quotas for applications limited to: 500MB of persistent storage and CPU & bandwidth for approximately 5 million page views a month.
Microsoft Azure: Azure & Visual Studio
Microsoft's cloud computing platform is tightly integrated with Microsoft's product line.
As a user of Microsoft Azure's cloud computing platform, you can expect your web applications to have streamlined integration with Microsoft's product line.
Key Characteristics of Microsoft Azure
- Operates on Microsoft's virtualized 64-bit Windows Server 2008 operating system.
- Support for .NET applications, as well as other third party applications available for the same OS running on a standard server (i.e. unmanaged code apps).
- Support for .NET services: .NET Access Control Service & .NET Service Bus. Originally known as BizTalk services, focused on enterprise application scenarios. Application development tightly integrated with Microsoft's Visual Studio, in addition to having its own Software Development Kit (SDK) http://go.microsoft.com/fwlink/?LinkID=128752
- Free usage under CTP (Community Technology Preview), but limited to 2000 hours, 50 GB of persistent storage and 20GB/day bandwidth.
Selection Grid by Web Application Language
|Web application language
||Google App Engine
Resources (Bandwidth, CPU, I/O)
Cloud computing providers keep track of consumed resources on a more granular basis than traditional service providers. The following list illustrates a series of consumption units:
- Server Per Hour
- Bandwidth Per Gigabyte
- Storage Per Gigabyte
- CPU/Memory Per unit
- Emails Per recipient
This approach gives an application owner (i.e. you) greater leverage and cost effectiveness. The next section on 'Costs' illustrates case scenarios with side by side comparisons for the various cloud computing platforms.
Other Cloud Computing Providers
In addition to Amazon's EC2 , Google's App Engine and Microsoft's Azure cloud computing platforms, other providers in this space have also emerged.
Some of these providers include:
Many of these providers rely on industry standard virtualization and operating system technology, making them close competitors to Amazon's EC2 cloud computing platform.
Comparing these other providers to Google's App Engine or Microsoft's Azure cloud computing platforms can be more difficult. This in light of the greater proprietary nature of both Google's and Microsoft's platforms.
Still, with the brand recognition and breadth of companies like Amazon, Google and Microsoft, these other cloud computing providers can often fall short of being deemed 'platforms'.
This can be due to a lack of end-to-end integration (e.g. application development, tools and application deployment), lack of scalable data tier technology options, to service level agreements (e.g. uptime and indemnity) that can only be offered by large corporations the size of Amazon, Google and Microsoft.
Nevertheless, some of these other cloud computing providers have carved out niche markets in the cloud computing market. Some do so by adopting more aggressive pricing structures, catering to the specific needs of certain communities (e.g. Ruby/Rails, or Linux), or providing better customer service than their larger rivals.
Cloud computing platform costs are fairly competitive. However, some metrics used by providers are sufficiently different from others to make holistic cost comparisons difficult.
For example, stored data can have added costs related to the number of Input/Output operations or transactions. Other aspects, like CPU consumption, can also vary in the form they are tallied by provider. The following table illustrates comparable resources and their associated costs in each cloud computing platform.
||Amazon EC2 (Small instance)
||Google App Engine
|Outgoing bandwidth (Gigabyte)
||$0.10 (Over 150 TB) ~$0.17(First 10 TB)
|Incoming bandwidth (Gigabyte)
|CPU time (hours)
||$0.085 (Unix/Linux)~ 0.12 (Windows)
|Stored data (Gigabytes per month)
||$0.10 (+ $0.10 per 1 million I/O requests)
||$0.15 ( +$0.01 for 10K transactions)
|Recipients emailed (Recipients)
For an accurate cost estimate pertaining to each cloud computing platform, I recommend you use the following calculators offered by each provider:
Cost Case Scenarios: Mailing List or Report Processing
To give added cost context to the use of cloud computing platforms in web applications, let's take the case of common one-time events in web applications.
Mailing list or end of month report processing can consume substantial resources from a web application's main environment, in addition to being short-lived tasks.
Instead of leasing a stand-alone server for such tasks or hampering the performance level of a web application's main environment, a cloud computing platform can be a cost effective solution.
Assuming the data for a mailing list or report batch is already stored on a cloud computing platform: A conservative estimate of 1 day (24 hours) for processing and 5GB of outgoing bandwidth, would equal approximately $3.00 in cost from each of the previous cloud computing providers.
As you can surely attest, at this price point it's only such cloud computing providers that are able to offer dedicated resources at such competitive rates, especially compared to leasing your own hardware or using one of the many commercial hosting providers.
Spot Pricing on Amazon EC2
Providing what can potentially be the most competitive rates among cloud computing platforms, Amazon EC2 offers what it calls 'spot instances'.
A spot instance allows you to make a bid for unused Amazon EC2 capacity and run applications for as long as your bid exceeds the current spot price.
For web application tasks that are not time sensitive (e.g. long-running scientific calculations or historical reports) this approach can substantially reduce a web application's running costs.
Since spot prices change based on supply and demand, this allows you to obtain the most competitive rates at any given time, without exceeding your maximum bid.
Figure - Amazon EC2 spot pricing behavior
More information on Amazon EC2 Spot instances can be found at: http://aws.amazon.com/ec2/spot-instances/