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.
[For an in-depth exploration of AWS, please read "Diving deep into Amazon Web Services."]
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.