Rob Larsen

CloudFront vs. S3 vs. My Plain Old Apache Server

Yes, another CloudFront post. I'm a penny-pinching, performance minded AWS user, what do you expect?

Anyway, I'm a couple of weeks into my CloudFront experiment and while the traffic numbers are still too fresh to offer any insight on what the speed improvement might be doing for my European and Asian bounce rate (I cache everything, so it should really only affect initial page views,) I do have enough data to compare and contrast the absolute speed difference at play here.

Serving my site sprite from the three different locations I get the following results using pingdom's excellent monitoring service:

Server Average Response Time
Amazon CloudFront 134 ms
Drunkenfist.com 345 ms
Amazon S3 522 ms

As you can see CloudFront is a significant relative improvement over the other two servers (by two and three times.)

Without researching it extensively it seems like a pretty good absolute result as well. While the sprite is slightly larger than the Lookery JS file he used to test, CloudFront performs well within the standard that CacheFly and EdgeCast set when Dave Cancel tested a few different CDN options earlier this year. Granted, his research wasn't exhaustive so someone out there might be pushing closer to 100ms for smaller files, but for the price and ease of use, I'll gladly take 134ms.

Anyone know of any broader research into CDN response times? I'd love to see it if you do, so drop it into the comments.

Two Easy Ways to Get Set Up With Amazon's CloudFront

It made quite a splash recently so I'm sure some of you are curious about Amazon's new Content Delivery Network (CDN) service, CloudFront. I know the Amazon Web Services suite of tools can be a little intimidating for non-developers, so this article outline how pretty much any reasonably technical person can get themselves up and running on CloudFront and can start reaping the benefits of geographical optimized content delivery.
(more…)

Adventures in Tinkering- One Week's Worth of Site Enhancements

I mess around with this site a lot. This week, in particular, has been interesting. In the past week I:

  • Moved my interface images over to CloudFront, Amazon's new Content Delivery Network (CDN.) I'm especially hoping this will increase initial page view performance for my site in Europe and Asia, where I've always had some lag. I'll be monitoring my bounce rate to see if that's the case. The initial results are positive (an overall reduction of 1-2% in my bounce rate over the past week), but the numbers are still too small to really draw any conclusions.
  • Took advantage of Firefox's Link Prefetching to speed up all those next gallery links. I tested it out and between link prefetching and all the caching I do, browsing gallery pages in Firefox 2+ is screaming fast.
  • Added some copy and rewrote some of the text/labels right here on the blog. Spurred on by the blog chapter in Designing the Obvious, I decided to implement a couple of his recommendations. Within 20 minutes of having read the chapter, I'd changed the header for the comment section, added the little descriptive blurb below it and changed the label for my RSS icon from "FEED" to "Subscribe."

    Small changes all, but maybe they'll improve the experience for folks.

    Or maybe not.

    And if they don't? I'll try something else :)

This kind of ongoing enhancement is core to the way I approach web design/development. I often speak of sites as being living organisms and this is the kind of thing I do to keep mine growing/evolving in positive ways.

Fun times.

Amazon Content Delivery Network (CDN) Coming Soon. I say, "cool!"

As I'm sure you've seen elsewhere, Amazon recently announced plans to offer a Content Delivery Network (CDN) service. As regular readers know, I use Amazon S3 for image hosting, so I'm excited about this development. With the kind of site I run (many images as content and prone to the occasional traffic spike) using an open-ended and incredibly cheap service to host and serve my images is a no-brainer. I've been using it for a while now and the only problem I have with S3 is that it it's a little slow. Don't take my word for it, Dave Cancel did some tests and saw a difference of around 2-300ms between S3 and true CDNs.

I know some folks are thinking "200ms, who cares?" For some you, that might not matter. Thing is, I'm a performance nerd, so to me cutting down a couple hundred milliseconds is pretty damn appealing. My home page averages between 1-1.75 seconds to load so in my case shaving off those milliseconds would make a real difference. Even beyond statistics, the perceived performance improvement I would get for having just the site sprite to load faster would be a real boost.

This is on initial load, by the way. I set far-future expires headers on my images so after the initial load none of this latency matters as we're living in cache-city.

Of course, I have to earn that second page view so every bit counts :)

That is the one thing I'm curious about- will I still be able to set custom headers as easily as I can now? If so, and assuming the Amazon CDN is as fairly priced as the rest of the Amazon Web Services I'll be one happy camper when this service launches.

As soon as it does I'll take it for a spin and report back…

Setting Far Future Expires Headers For Images In Amazon S3

Summary:

Amazon S3 is a great option for (among other things) image hosting, YSlow is a great little tool for uncovering performance related issues with a site and using Bucket Explorer allows a person to easily upload files to the S3 service while setting custom headers. Using the tool to set far future expires headers facilitates caching which improves site performance.
(more…)