Hooking Your Apps into Amazon Web Services

Connecting your application into the Amazon Web Services (AWS) isn't complicated, particularly if you've done Web service programming on other projects.

Before you begin, you'll need to obtain access credentials. If you already have an account with Amazon, you can easily extend it to include access to Amazon Web Services. You sign up for each service separately and, in the process, acquire access credentials. These credentials are used to create digital signatures required in requests made to any of the paid AWS components. Amazon services also accept X.509 certificates. Amazon can create a certificate for you when you subscribe to a service, or you can create your own and upload it to Amazon. Once you have your access credentials settled, you can begin working with the services themselves.

Amazon's online developer materials appear to slightly favor Java over other languages. But only slightly. While all the command-line tools for EC2 are written in Java, AWS tutorials exist for Ruby, PHP, and C#. In addition, several scratchpad applications written in HTML + JavaScript provide "live" interaction with individual Amazon Web services.

[For an in-depth exploration of AWS, please read "Diving deep into Amazon Web Services."]

For example, download the SQS JavaScript scratchpad from the SQS developer site, launch it in a browser, and you're presented with what amounts to a control console into the SQS APIs. Enter your AWS AccessKey ID and AWS Secret Access Key (the credentials I mentioned above) into the appropriate text boxes, and you can create queues, list queues, send messages, receive messages, and more or less dance through the entire SQS API. Not only are the scratchpads helpful for working out the protocols used in AWS transactions, but prowling the source is an ideal way to learn the APIs.

In addition, developers looking for a leg up in building AWS-aware applications should investigate the plentiful open source library offerings linked to from the AWS Developer Connection site. JetS3T is a popular Java interface to the S3 service. Another open source Java library, typica, provides programming interfaces to EC2, SQS, SimpleDB, and DevPay. So before embarking on a roll-your-own approach, you should spend some time looking into the open source libraries available to verify that a trailblazer hasn't already created what you need.

This is precisely what I did and so discovered an open source Python library called "boto," named after an Amazon River dolphin, that simplifies working with EC2, S3, SQS, SimpleDB, and Mechanical Turk. (You can download boto.)

Because it is written in Python, boto allows on-the-fly experimentation. There are a few tutorials on the boto site, some of which are in raw text, but boto is a moderately new project -- about a year old -- and the projects' authors have done a remarkable job in that time. For creating an SQS queue, writing and reading a message, then deleting the message and its queue -- the example I wanted to build -- boto made the job fall-off-a-log easy.

1 2 Page 1
Shop Tech Products at Amazon
Notice to our Readers
We're now using social media to take your comments and feedback. Learn more about this here.