Programming Amazon Web Services
O'Reilly Media, 2008
Rating: 4/5 (very good)
Amazon Web Services are a constantly expanding series of infrastructure services targeted to web developers who want to outsource parts of their application infrastructure. These services are meant to be reliable, scalable and cost-effective. Especially as far as reliability is concerned, however, Amazon Web Services - together with Google App Engine - have recently been regarded as a bit controversial, due to some downtime episodes. Nonetheless, services such as these provide a gate to the future of the Internet, where owners of small and medium web sites, who can't afford to build some high-quality services on their own, can easily outsource them.
Programming Amazon Web Services is the ideal primer to Amazon outsourcing services. It provides a general view of everything Amazon currently offers, including some services in the beta testing phase, as well as the necessary amount of in-depth coverage of each service.
A programmer who never outsourced any part of its infrastructure might not be much confident using APIs which abstract tasks such as database access and data storage (even though it would be a good practice to use some sort of API also for locally-provided services). To help in this situations, this book kicks off with an explanation on how to think an application, with an appreciated overview of REST-based APIs, remote requests and XML documents and their handling; at the same time, the author tells you how Amazon thinks you should build your application to effectively take advantage of what they provide.
After this introductory part, the whole book is dedicated to the exploration of each service: Simple Stoage Service (S3), Elastic Compute Cloud, Simple Queue Service, Flexible Payments Service and SimpleDB. Every section provides an explanation on what the service is and how it works, including not only its advantages but also the possible problems which may arise by using it. There's also some API references and, best of all, a lot of interesting code examples. Amazon Web Services can be used in any programming language so, even though the examples in this book are written in Ruby, it's easy to understand them and "port" them to your favourite language. Moreover, there are libraries around which allow a more abstracted usage of ABS: for instance, CPAN hosts several Amazon-related modules for the Perl language.
All in all, Programming Amazon Web Services this is a fine book for anyone who is seriously interested in using Amazon to outsource application infrastructure. Highly recommended.