Amazon Web Services

I’ve decided that Amazon Web Services is the only (currently) sane way do develop a web site today, especially if one expects/hopes that the site might generate high traffic.

If you haven’t heard about it, check it out at aws.amazon.com. Essentially, Amazon.com is leveraging their $2 Billion investment in infrastructure by making it available to the world. It’s called cloud computing. For very reasonable rates (it isn’t free, but darn near), you can get data storage, a database, and servers. The data storage and database scale automatically, and you can add servers on demand.

So what does this mean? It really evens the playing field. Using AWS (and apparently Google and Microsoft are working on similar platforms), you can build a web application that can easily expand to handle as much traffic as you like, all without you having to invest tens or hundreds of thousands of dollars on a data center. No hardware to buy, no maintenance staff for it, no physical location required — all that stuff required to build a web application that requires a huge upfront investment. It will take a very long time before it would have been cheaper to do it yourself – if ever – than to pay Amazon.

And you don’t have to use all the Amazon features at once – you could use the database and storage and run the app on your own servers, for example. For the applications I build, storage, data base, and servers are the main components. AWS also has some other services such as message queuing.

But what about using an ISP or other web-hosting service? Well, for smallish apps, that is probably OK. But as soon as you start getting thousands or more hits per hour, that solution will start to have problems. This is where the three-part solution might help. If you think there ever is a possibility of getting lots of traffic (or moderate traffic that views lots of data like videos or music), then you could start with your own server or a hosting company, but use Amazon’s storage and data base solutions.

If you are hoping to build a high-traffic site, no matter what platform you use, I’ve discovered there is one secret to designing your application’s architecture. As you get high loads, the solutions available end up spreading the computation and storage issues over many individual servers. Each page you serve to the user will likely come from a single server, but the next page served is likely to come from a completely different server. What that means is that your applications have to be essentially stateless. Whatever state you need from page to page must be kept in cookies on the client computer (hopefully in a secure manner). As long as you remember this basic principle, you application can likely be ported to a cloud environment.

But whatever the details, cloud computing as a service changes everything. Startups no longer need a big upfront investment in server hardware and software. If you can invest some sweat equity in your project, you can easily get going with a few thousand dollars (development machines, usage of AWS, etc.), and not tens or hundreds of thousands of dollars.

About brucewampler

I've had a long and varied careen in the computer industry. I taught computer science at the University of New Mexico for nearly 15 years. I founded two successful computer software companies. I wrote the first spelling checker and first grammar checkers for personal computers. I've lived in Glenwood Springs for 10 years. My wife, Trina, grew up here, and I've been coming to Glenwood since 1977. My kids have attended the local public schools, and have had a great experience. My son, Van, will be attending the University of Colorado starting in the fall of 2007, and my daughter is a Sophomore at Glenwood Springs High School. I've been on the Roaring Fork School District Board of Education for almost 5 years. Working with our kids, teachers, schools, principals, administrators, and the Roaring Fork community has been one of the most rewarding experiences in my life.
This entry was posted in Programming, Web Development and tagged , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s