Amazon Web Services is probably the next big thing and buzzword that you will continue to hear about and talk about if you’re in the web development industry and bulding wide scale web applications. Maybe the well best known secret about AWS was that several high profile facebook application such as iLike and Family Tree are actually using AWS to serve their users in facebook.
We’re not talking a couple of thousand of users hits per day, but the fact that the same amount of count would be in per hour. How on earth is that possible?
A possible answer, according to James, comes in the form of Amazon’s infrastructure web services and his new book Programming Amazon Web Services: S3, EC2, SQS, FPS, and SimpleDB. The book explains how you can use Amazon’s massive computing infrastructure to build your own applications. AWS lets businesses and individuals “rent” computing power, data storage, and bandwidth on this vast network, and, best of all, you only pay for what you use.
A couple of interesting points mentioned in his book
* Amazon Web Services (AWS) are cheap to use and have no up-front costs. This means that you can experiment with the services without making any major commitments, and you can test their performance and behaviour with simple prototypes before you build your final application.
* Explore the wealth of tools, libraries and code samples that are available for AWS, and participate in the developer forums. There is a large and active community of developers using the infrastructure services, and many of the available resources are open source.
* Be prepared to rethink how you design your web applications. Things work differently in the cloud, and you may have to adjust your expectations to build applications that are robust and massively scalable.
* Design your application to take advantage of the strengths of the AWS service oriented architecture by sharing the application’s workload between many small components rather than centralising it into a single point of failure.
* Expect your application components to fail, because sooner or later they will. Build application components that will quickly recover from transient errors, and that can be easily restarted or replaced if they fail completely.
* Consider creating tools or services that add value within the AWS ecosystem itself. Amazon provides only low-level services with the expectation that third-parties will build more sophisticated, powerful or user-friendly services on top. There is an emerging market for companies to provide products that make it quicker and easier to leverage AWS.
But the book today: Programming Amazon Web Services: S3, EC2, SQS, FPS, and SimpleDB