Professional Software Consulting
Amazon Web Services

While there are several significant efforts to create a cloud computing ecosystem in which applications can be developed to enable businesses to thrive, Amazon is the only one that has a significant number of businesses actually making money from it. Googles offering is, in my opinion, changing too quickly at this point to make it a stable platform to develop a web application, and Microsoft's offering doesn't yet have a release date.

Prior to cloud computing, if a business wanted to create an internet application, it had two choices: use an online hosting service, or build a data center. By virtue of choosing an online hosting service, the company is, in essense, outsourcing both the creation of the data center as well as the responsibility of ensuring that the machines are always highly available. That's fine for large tech companies, but what about the thousands of small businesses who want to create something innovative but cannot afford the hosting costs required or do not have the expertise to run a data center?

Into this niche Amazon has stepped. Most people know Amazon through its store; to support its store, it has developed a tremendous infrastructure of machines, networks, data centers, and fast access. Think about it: when is the last time you have been shopping at Amazon and gotten a "Page not found" error from their site? Generally, searches are fast, despite the fact that they have millions of items available, including textual descriptions, photographs, ratings, feedback, demo soundtracks, and countless other aspects.

Amazon Web Services, or AWS, is Amazons attempt to offer the world access to a portion of the infrastructure they have developed for themselves.

AWS S3 is Amazon's answer to the issue of storing files in a secure manner without having to worry about coming up with backup procedures or how much hard drive space you have left. The pay rate is measured in number of GB stored per month, and is measured in pennies, not dollars. Entire websites have been built by storing all the pages on S3, and then having the initial HTML page redirect to one of the S3 files.



Amazon's EC2 offering replaces the machines that one normally has to buy to run web servers, databases, load balancers, and other data center components. An EC2 instance is more or less equivalent to a machine: when you start an instance, you are renting CPU and memory on Amazon's cloud. Once the instance has been started, you have complete root (administrator) access to the instance, and it is practically identical to administering a remote machine that you build yourself.

The advantage to this model is that you only pay for the hardware you use. If your company's latest marketing blitz gets picked up by the local TV stations, your one-instance website might be overwhelmed with traffic as people come to your website. Using EC2, you can scale up your application to handle the traffic simply by creating more instances. Then, when the traffic dies down in a few days, you turn off the instances. Because instance costs are charged by the hour, you only pay for the hardware resources you use, and once you don't need them, you release them back to the cloud.

Contrast this with the non-cloud model, where you would have to requisition new equipment, install the equipment, extend the network infrastructure, and deploy the code possibly months in advance of the marketing blitz, and after the buzz dies down, you have all this extra hardware sitting around un-used. The AWS EC2 model enables a company to save money over the long run and be able to respond in a more agile manner to the marketplace.

Amazon's SQS service provides a a service that is critical for a large, highly-available, high volume application. It enables the decoupling of logic between front-end and back-end processes, so that heavy load by front-end processes don't overwhelm the back-end processes and requests do not get lost.

What does this mean to the non-developer? Not much, admittedly. But suffice it to say, having a highly available queueing system is a very useful component for any enterprise application.

Since Amazon is trying to enable you to offload your entire application to them, their offering would not be complete without SimpleDB: a simplified database. While it doesn't offer the full functionality of MySQL, or even the SQL language itself, it does enable an application to store a large amount of complex data for an inexpensive price, without worrying about mirroring servers or performance tuning. Plus, its approach to dynamic data storage can be quite useful in certain situations.

There are quite a few other solutions Amazon is offering, including Flexible Payment Service, which allows you to use Amazon's existing payment system in your application, and Amazon Mechanical Turk, which enables a company to outsource small, repetitive tasks to a global workforce. Their website has many more details about what they have to offer.


     Contact Us     

Something wrong with this page or this site? Let the webmaster know by clicking HERE
This website designed, implemented, and maintained by Corey Dulecki
© 2009-2012, Corey's Consulting LLC