A weblog post with info on two amazing services of Amazon: S3 (Amazon Simple Storage Service) and EC2 (Amazon Elastic Compute Cloud), virtualized computing power. Could Microsoft deliver comparable functionality using their Hypervisor technology code-named Viridian, the new virtualization technology from Microsoft?
A few weeks ago I attended a presentation by Werner Vogels, CTO of Amazon.com. He stated that Amazon is more than just an online bookshop, it is an IT company. He told about the possibility to utilize Amazon’s computing power at 10 dollarcents an hour. After some browsing on the Amazon site I found the two amazing services he was mentioning:
Amazon S3 is storage for the Internet. It is designed to make web-scale computing easier for developers.
Amazon S3 provides a simple web services interface that can be used to store and retrieve any amount of data, at any time, from anywhere on the web. It gives any developer access to the same highly scalable, reliable, fast, inexpensive data storage infrastructure that Amazon uses to run its own global network of web sites. The service aims to maximize benefits of scale and to pass those benefits on to developers.
Amazon S3 Functionality
Amazon S3 is intentionally built with a minimal feature set.
- Write, read, and delete objects containing from 1 byte to 5 gigabytes of data each. The number of objects you can store is unlimited.
- Each object is stored and retrieved via a unique, developer-assigned key.
- Authentication mechanisms are provided to ensure that data is kept secure from unauthorized access. Objects can be made private or public, and rights can be granted to specific users.
- Uses standards-based REST and SOAP interfaces designed to work with any Internet-development toolkit.
- Built to be flexible so that protocol or functional layers can easily be added. Default download protocol is HTTP. A BitTorrent(TM)protocol interface is provided to lower costs for high-scale distribution. Additional interfaces will be added in the future.
- Pay only for what you use. There is no minimum fee, and no start-up cost.
- $0.15 per GB-Month of storage used.
- $0.20 per GB of data transferred.
Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers.
Just as Amazon Simple Storage Service (Amazon S3) enables storage in the cloud, Amazon EC2 enables "compute" in the cloud. Amazon EC2's simple web service interface allows you to obtain and configure capacity with minimal friction. It provides you with complete control of your computing resources and lets you run on Amazon's proven computing environment. Amazon EC2 reduces the time required to obtain and boot new server instances to minutes, allowing you to quickly scale capacity, both up and down, as your computing requirements change. Amazon EC2 changes the economics of computing by allowing you to pay only for capacity that you actually use.
Amazon EC2 Functionality
Amazon EC2 presents a true virtual computing environment, allowing you to use web service interfaces to requisition machines for use, load them with your custom application environment, manage your network's access permissions, and run your image using as many or few systems as you desire.
To use Amazon EC2, you simply:
- Create an Amazon Machine Image (AMI) containing your applications, libraries, data and associated configuration settings. Or use our pre-configured, templated images to get up and running immediately.
- Upload the AMI into Amazon S3. Amazon EC2 provides tools that make storing the AMI simple. Amazon S3 provides a safe, reliable and fast repository to store your images.
- Use Amazon EC2 web service to configure security and network access.
- Use Amazon EC2 web service to start, terminate, and monitor as many instances of your AMI as needed.
- Pay for the instance hours and bandwidth that you actually consume.
Amazon EC2 enables you to increase or decrease capacity within minutes, not hours or days. You can commission one, hundreds or even thousands of server instances simultaneously. Of course, because this is all controlled with web service APIs, your application can automatically scale itself up and down depending on its needs.
- Completely Controlled
You have complete control of your instances. You have root access to each one, and you can interact with them as you would any machine. Each instance predictably provides the equivalent of a system with a 1.7Ghz Xeon CPU, 1.75GB of RAM, 160GB of local disk, and 250Mb/s of network bandwidth.
- Designed for use with Amazon S3
Amazon EC2 works in conjunction with Amazon Simple Storage Service (Amazon S3) to provide a combined solution for computing and storage across a wide range of applications.
Amazon EC2 offers a highly reliable environment where replacement instances can be rapidly and reliably commissioned. The service runs within Amazon's proven network infrastructure and datacenters.
Amazon EC2 provides web service interfaces to control network security. You define groups of instances and their desired accessibility.
Amazon EC2 passes on to you the financial benefits of Amazon's scale. You pay a very low rate for the compute capacity you actually consume. Compare this with the significant up-front expenditures traditionally required to purchase and maintain hardware, either in-house or hosted. This frees you from many of the complexities of capacity planning, transforms what are commonly large fixed costs into much smaller variable costs, and removes the need to over-buy "safety net" capacity to handle periodic traffic spikes.
- Pay only for what you use.
- $0.10 per instance-hour consumed (or part of an hour consumed).
- $0.20 per GB of data transferred outside of Amazon (i.e., Internet traffic).
- $0.15 per GB-Month of Amazon S3 storage used for your images (charged by Amazon S3).
Data transferred within the Amazon EC2 environment, or between Amazon EC2 and Amazon S3, is free of charge (i.e., $0.00 per GB).
Amazon S3 usage is billed separately from Amazon EC2; charges for each service will be billed at the end of the month.
It is my feeling that solutions like S3 and EC2 will be the future of software development and deployment. Especially startup companies can benefit from these kind of solutions: at $72/month you have a server up and running, and you can scale up the number of servers when needed. Especially very useful if you need huge computing power during small amounts of time, like for example a three days online action.
After some reading I found out that the EC2 virtualization technology is Xen. Currently only Linux images can be hosted on EC2.
Viridian, Microsoft’s new virtualization technology
Although I have been using Microsoft’s virtualization technology for a few years with Virtual Server and Virtual PC, I was never very impressed by its performance when you compare it to VMWare. I mostly use it to run SharePoint in a virtual machine, and as you can see in this weblog post by Todd Baginski VMWare is the better option with respect to performance.
Wouldn’t it be great if we could have EC2 like functionality using Microsoft Windows Server 2003 images? VMWare has such capabilites using the VMWare ESX Server. Microsoft is currently working on similar technology with their Hypervisor technology based product code-named Viridian, which architecture seems to be similar to the architecture of Xen, a technology Microsoft Research contributed to.
And now someone please build a similar hosted virtual server model to EC2 where we can build our applications using the Microsoft .Net platform technology at comparable prices to Amazon!
For more info on Viridian: http://www.google.com/search?num=100&hl=en&q=Viridian+virtualization