2008-09-18

AWS CDN - Super Sweet

One of the very first things I did with AWS (Amazon Web Services) was to use S3 (Simple Storage Service) and EC2 (Elastic Compute Cloud) to build a CDN on top of it. A CDN is essentially a way of distributing static content to your users rapidly in a scalable fashion. I built mine by publishing data to S3, using UltraDNS to distribute users requests to an appropriate availability zone in EC2 (east coast, west coast) based on their geographic location, and serving the request out of S3 but from EC2. Many people choose not to go this route for reasons of simplicity and just serve content out of S3. Well, now Amazon is going to do all the hard work for you.

If you are on the early warning radar of Amazon Web Services, I'm sure that you received the following email this morning just like I did:

...we are excited to share some early details with you about a new offering we have under development here at AWS -- a content delivery service.

This new service will provide you a high performance method of distributing content to end users, giving your customers low latency and high data transfer rates when they access your objects. The initial release will help developers and businesses who need to deliver popular, publicly readable content over HTTP connections. Our goal is to create a content delivery service that:

  • Lets developers and businesses get started easily - there are no minimum fees and no commitments. You will only pay for what you actually use.
  • Is simple and easy to use - a single, simple API call is all that is needed to get started delivering your content.
  • Works seamlessly with Amazon S3 - this gives you durable storage for the original, definitive versions of your files while making the content delivery service easier to use.
  • Has a global presence - we use a global network of edge locations on three continents to deliver your content from the most appropriate location.
You'll start by storing the original version of your objects in Amazon S3, making sure they are publicly readable. Then, you'll make a simple API call to register your bucket with the new content delivery service. This API call will return a new domain name for you to include in your web pages or application. When clients request an object using this domain name, they will be automatically routed to the nearest edge location for high performance delivery of your content.

Why is this significant?

  • Lowers the barrier to entry for small businesses wanting to use a CDN
  • Reduces the need to do DNS based geo-distribution on your own
  • Allows you to take advantage of something you are already using (AWS S3)
  • Allows you to simply 'enable' the service for existing items stored in S3

Given the expense of CDN services from companies like Akamai, Limelight and Level3 as well as the term commitments (you typically negotiate a rate in a fashion similar to bandwidth), many smaller companies have often avoided using a CDN. This is despite the fact that using a CDN is one of the easiest ways to significantly improve perceived page load times for end users. By allowing users to pay for a CDN via the utility model that has become so popular with AWS, this opens the door for Joe Developer to simply start out using a CDN and not have to make those kinds of trade offs.

Very cool stuff. If anyone from Amazon happens to read this, please add me to your beta group :)

1 comment:

Mark Mader said...

Smartsheet is now delivering much of its static application content via CloudFront (Amazon’s CDN service). We had looked at other CDN offerings last year, but couldn’t justify it based on the price points and contract terms. Benchmarking with our U.S. and international customers has shown the performance of CloudFront easily on par with what we had been promised by the higher priced players last year. To view our AWS CDN deployment template click the Smartsheet screenshot in the CloudFront Amazon Web Services Blog post: http://preview.tinyurl.com/5zwqtt