After my freshman year in college I went back home for the summer and had a strange job at a little two-man pre-press graphics shop in Vienna, Virginia called “Color Graphics Network” (not the inspiration for New Dream Network – parent company of DreamHost).
The guy who owned it was named Ricky Dee (awesome name), and I vaguely knew his son Howie Dee (awesome name) from high school. It was a pretty cushy job compared to my previous one.
What CGN did was take large (dozens of MB!) graphic files from publishers, and turn them into high-resolution negatives suitable for printing presses. This was in 1995, and the files would come on SyQuest drives via courier. By the end of the summer, some people were starting to send zip disks!
After a few weeks, I was sort of thinking everybody could probably distribute this content a little better, maybe via a series of tubes or something. But really, with the slowness of dial-up, the size of these files, and the publication deadlines they needed to meet, this was the only way to go at the time.
Not that I’ve kept in touch, but I imagine that these days there’s a lot less padded envelope use over at CGN. I’m sure Mr. Sneakernet has finally been usurped by Mr. Internet!
Yep, Mr. Internet has gotten a bit faster in the last 14 years. Way fast. More than fast enough for whatever kind of multi-GB files Ricky Dee (or maybe it’s Howie now!) must be dealing with today.
And yet, still not fast enough for everybody.
Hence the rise of the CDN (“Content Delivery Network”). Although you can pretty much get between any two points on the Internet in under .3 seconds, sometimes that’s a little too slow. After 14 years of the web, people are really sick of waiting. Even a second. Even a third of a second.
In fact, there are a bunch of studies that show things like “There’s a 10% drop in conversions for each 1 second increase in load time.” and “Google lost 20% of their ad clicks when their page results took .9 seconds to load as opposed to .4.”
Fortunately, a decade ago Akamai discovered (I think it was them!) that putting multiple copies of the same content all over the Internet could cut that .3 second access time down to .03 seconds… and that some people would pay for it!
The cool thing about CloudFront (besides, like DreamHost, it being in CamelCaps), is like all of the Amazon Web Services, it’s completely pay-as-you-go, and completely accessible via an API.
The downside of CloudFront is, just like with all APIs… you have to be a programmer to be able to use it!
We just added a new Amazon CloudFront area to our panel (under “Goodies”)!
Now all you have to do to take advantage of a world-wide pay-as-you-go content delivery network run by Amazon is click a few buttons!
Or, more specifically:
- Sign up with AWS.
- Go to our panel and let us know what domain (maybe something like “static.domain.com”) you’d like to use and what path we should upload the content to Amazon from!
And for this amazing convenience, what do we want from you?
I would say nothing, but the truth is just $3.95/month on top of whatever Amazon bills you! No matter how many CDNs you set up!
How does it work?
I was always a little confused, technically, about how CDNs worked. After all, there must be at least one centralized service that figures out where to send people, right?!
Well, while testing out CloudFront, I figured it out… that one centralized service is DNS!
The DNS servers for a CDN are dynamic and tricky… and it’s they who figure out which “edge” of the CDN is closest to you, based on your IP.
So for example, if I (in Los Angeles) do a ping on images.groo.com, my results are:
PING d2onuwnge3cit8.lax1.cloudfront.net (220.127.116.11) 56(84) bytes of data.
64 bytes from server-216-137-45-27.lax1.cloudfront.net (18.104.22.168): icmp_seq=1 ttl=56 time=1.29 ms
64 bytes from server-216-137-45-27.lax1.cloudfront.net (22.214.171.124): icmp_seq=2 ttl=56 time=1.21 ms
64 bytes from server-216-137-45-27.lax1.cloudfront.net (126.96.36.199): icmp_seq=3 ttl=56 time=1.31 ms
64 bytes from server-216-137-45-27.lax1.cloudfront.net (188.8.131.52): icmp_seq=4 ttl=56 time=1.18 ms
64 bytes from server-216-137-45-27.lax1.cloudfront.net (184.108.40.206): icmp_seq=5 ttl=56 time=1.32 ms
Now you give it a shot and check out what cloudfront.net server you get for “images.groo.com” .. and how the ping time it is! Maybe even post your results in the comments?
I’m not sure how old Ricky Dee is going to compete.