When Amazon’s Elastic Cloud was in its infancy, the only management tools available were a set of Java-based command-line applications. The set was comprehensive: You had complete control over and access to Amazon Machine Images (AMIs). Moreover, you could create and manipulate the ancillary components of the cloud: key-pairs, elastic IP addresses, and so on. As capable as the tools were, however, they were out of pace with the very Web-based world that they served.
Graphical alternatives have since appeared. Elastic Fox (available from Amazon’s Web Services developer site), a free plug-in for the Firefox browser, is a popular tool for creating and supervising AMIs. It provides virtually all the capabilities of the command-line tools, but in an easy-to-navigate browser interface.
Commercial GUI-based cloud-management systems are available as well. Examples are RightScale and Elastra, which add features that enhance the creation and deployment of AMIs beyond what is available with the freeware tools.
Into this arena, Amazon has trotted out the AWS (Amazon Web Services) Management Console. Currently in beta, the AWS Management Console is a browser-based dashboard for Elastic Cloud that — unlike Elastic Fox — is not restricted to Firefox. The Console currently supports Firefox 2.0 or later, Internet Explorer 7.0 or later (though I have run it in 6.0), and Safari 3.0 or later. Like Elastic Fox, however, the AWS Console is free; all you need is an AWS account with access to Elastic Computing Cloud (EC2) and Simple Storage Service (S3) services to get started.
In the clouds
The AWS Console is arranged in IDE fashion, with a navigation pane on the left and workspace panes on the right. The navigation pane holds links pointing to the services provided by the console. The workspace panes comprise the dashboard itself, where you actually interact with the cloud and track the status of in- progress operations.
The AWS Console is primarily a control panel for launching and monitoring AMIs. Before you start an AMI, however, you’ll need to create an RSA key-pair. For Linux images, a key-pair is needed so that SSH can provide you with a secure log-in to the running instance. For Windows images, the Elastic Cloud infrastructure uses the key-pair to generate an image’s administrator’s password. (The key-pair consists of a public and a private key. AWS encrypts the password with the public key. You have to have the private key to decrypt that password; otherwise you’ll be unable to log in to your Windows instance.)
Fortunately, the console automates the creation of RSA key-pairs. In addition, if you’ve already created key-pairs using the command-line tools and set your environment variables according to the AWS documentation, the AWS Console will import those preexisting key-pairs.
Once you have selected a key-pair, click Launch Instances from the Getting Started section, and a pop-up appears, from which you can choose among three categories of AMIs: prebuilt AMIs from Amazon, AMIs that you have bundled, or the vast collection of Amazon community-built AMIs. (At the time I tested the AWS console, there were more than 1,300 AMIs in the community grab bag.) Next, you set the number of instances you want launched and pick a security group. A security group defines which ports the Amazon firewall will open to allow access to your instances. The default security group — always available — will open ports for HTTP and SSH.
Click again, and your instances are launched, as easy as that. The Instances pane opens, displaying a table showing each instance’s status (starting, running, and so on).
The AWS Console also manages Amazon EBS (Elastic Block Storage) volumes. EBS is a relatively recent addition to the AWS family of services. Implemented in S3, an EBS volume is a persistent virtual disk drive that can be attached to a running AMI instance. EBS volume sizes can range from 1GB to 1TB, and the AWS console navigation pane’s Volumes selection leads you to a page where volumes can be created, attached to instances, detached from instances, or deleted.
You conjure a volume by selecting the Create Volume button on the toolbar. Choose its size, availability zone, and whether you want a snapshot associated with it. A snapshot is an instant-in-time copy of the volume. It can serve as a backup copy of the volume, or you can use it as a mechanism for duplicating EBS volumes so that multiple, separate AMI instances can access (at least, initially) identical virtual drives.
Once an EBS volume is created, its status switches to Available. From the AWS Console, you select a running instance to attach the volume to, and the Console will indicate which drive letter (Windows) or disk device (Linux) the attached volume will map to. You must log in to the running instance to mount and format the volume, which is probably the most complicated step in the whole process. From that point on, the EBS volume behaves just as any attached disk drive would. There’s not much to describe, because it’s just that simple.
Amazon plans to extend the console beyond management of AMIs and EBS volumes. Future versions of the console should provide controls for other cloud-based services: the ability to create, delete, read, and write S3 buckets and objects; queries into simpleDB; management of Simple Queue Service (SQS) queues; and other facilities.
I found the AWS Console as facile as Elastic Fox. Both are equally capable, and selecting one over the other is largely a matter of personal taste (and choice of browser). Selecting the Console over the command-line tools is a no-brainer, and this illuminates the significance of the AWS Console: It supersimplifies entry into EC2 computing.
Further, it provides 90 percent of what you need for deploying cloud machines. Once you have an AMI instance configured and running, much of your interaction is with facilities on the instance itself. All you need is a console that maintains an inventory of your AMIs, and that makes it easy to deploy them. You can take it from there.