Programming Amazon Web Services: S3, EC2, SQS, FPS, and SimpleDB
Author: James Murty
Amazon Web Services (AWS) is a suite of web services provided by the e-commerce giant, that offers third party developers a way to build on its technology platform. Soon after deploying this concept, Amazon has seen a dramatic rise in users and this O’Reilly book is here to provide details on all the major aspects and benefits of using AWS.
About the author
James Murty is a software developer with extensive experience creating web-based applications and architectures using Java. Most recently James has been excited to see the rise of web applications and services that provide compelling new tools and new ways of approaching old problems. While experimenting in this area he created JetS3t, an open source library and application suite that is the leading Java implementation available for Amazon’s S3 data storage service.
Inside the book
Amazon’s take on cloud computing provides a line of offerings, not just a backup service that a number of people are identifying as the only Amazon web service. A number of web sites are starting to deploy it as the “way to go” with hosting their web files, but that is just part ofAmazon’s cloud puzzle.
Spread across 550 pages, James Murty’s book provides some great insides on the following Amazon web services.
Amazon Simple Storage Service: S3 – providing users with a secure online storage space for any kind of data. I have been using this scalable system for quite some time and I must say that I have never been so satisfied with the “relaxed mind status” of my backups. Everything is uploaded in a secure manner, the system used is distributed all around the globe, and storage and bandwidth costs are very low.
Amazon Elastic Compute Cloud: EC2 – very useful service that makes it possible to run multiple virtual Linux servers, providing you with a large number of computers to use with your web applications. Cutting costs for those web apps with huge amount of users, EC2 (in the beta at the time of this book was in the writing) is the way to go in the Web 2.0 environment.
Amazon Simple Queue Service: SQS – service that delivers short messages between any Internet connected system, creating a reliable communication between your distributed web applications.
Flexible Payments Service: FPS – service for tranfsering money between users of Amazon Payment.
SimpleDB – a very nice addition to Amazon’s cloud computing scheme – if you have a simple database structure, you can ditch your own RDBMS and use this easier and more cost effective solution.
As you can see Amazon has some nifty services to offer and there is a lot of information on them online, but a book like this proves to be a great buy for those interested. The first thing is that in one place you will get a bunch of interesting data on every piece of Amazon’s cloud. The second benefit is that the author provides very good code examples that will surely spark some ideas of your own.
As expected of this kind of a book, it hosts a range of code snippets related to different usage of Amazon services. A vast majority of example code is written in Ruby, language preferred by the author because of its concise and easy to follow code, as well as because it is an interpreted code that allows you to (re)write and run code in an interactive session.
The first two chapters focus on general information the cloud infrastructure and ways of connecting to it, and the rest of the book focuses on the actual examples of using the services both by connecting through API interfaces, as well working with third party libraries.
The concept of “Programming Amazon Web Services” is easy to follow and for majority of the online services the author first focuses on the actual technology and therefore goes deeper with specific applications that harness the power of every specific service.
Amazon has done a great job with AWS and, as expected, O’Reilly is here to follow-up with a quality technical publication that moves the reader forward into working with and developing for this cloud computing platform.