| Contents |
Amazon Elastic Compute Cloud (Amazon EC2) - Limited Beta
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 allows you to set up and configure everything about your instances from your operating system up to your applications. An Amazon Machine Image (AMI) is simply a packaged-up environment that includes all the necessary bits to set up and boot your instance. Your AMIs are your unit of deployment. You might have just one AMI or you might compose your system out of several building block AMIs (e.g., webservers, appservers, and databases). Amazon EC2 provides a number of command line tools to make creating an AMI easy. Once you create a custom AMI, you will need to upload it to Amazon S3. Amazon EC2 uses Amazon S3 to provide reliable, scalable storage of your AMIs so that we can boot them when you ask us to do so.
Or, if you want, you don't have to set up your own AMI from scratch. You can choose from a number of globally available AMIs that provide useful instances. For example, if you just want a simple Linux server, you can choose one of the standard Linux distribution AMIs.
Executing your AMI
Once you have set up your account and uploaded your AMIs, you are ready to boot your instance. You can start your AMI on any number of instances by calling the RunInstances API. You simply need to state how many instances you wish to start. If you wish to run more than 20 instances, please contact us at aws@amazon.com.
If Amazon EC2 is able to fulfill your request, RunInstances will return success, and we will start setting up your instances. You can check on the status of your instances using the DescribeInstances API call. You can also programmatically terminate any number of your instances using the TerminateInstances API call.
If you prefer, you can also perform all these actions from the command line using our command line tools which have been implemented with this web service API.
Paying for What You Use
You will be charged at the end of each month for your instance-hours consumed, and for each GB transferred outside of Amazon's datacenters. You will not be charged for communication with other Amazon EC2 instances or to other Amazon Web Services offerings (such as Amazon S3).
As an example, assume you launch 100 instances at some certain point in time. The instances will begin booting immediately, but they won't necessarily all start at the same moment. Each instance will store its actual boot time. Thereafter, each instance will charge for its hours (at $.10/hour) of execution at the beginning of each hour relative to the exact moment it booted. Each instance will run until one of the following occurs: you terminate the instance with the TerminateInstances API call (or an equivalent tool), the instance shuts itself down (e.g. Unix "shutdown" command), or the host terminates due to software or hardware failure.

