I’ve been planning to post some details about download speeds that I’ve seen from S3, and why you shouldn’t necessarily use S3 as a CDN, yet. Granted, Amazon recently announced that they will be providing a content delivery service in front of S3. This post has nothing to do with the CDN (CDS).
Scott posted the presentation he gave at the AWS Start-Up Tour. It’s worth a read, and is a good summary of our business case for building the EC2/S3 hosting platform that I led when I worked at Heavy.
His post includes this graphic of how we measured S3 delivery speeds throughout the day. Matt Spinks wrote the Munin plugin that generated this graph, and he tells me he’s planning to make that available for others to use. When it is, I’ll add the link here. It’s now available at Google Code.
As we measured it, S3 is fairly variable in their delivery speeds. Unfortunately, we didn’t measure latency for initial bits, which would be good to know as well.
My own impression is that it is not a good idea to host video directly from S3 if you run a medium to large web site. The forthcoming CDN service will probably help with this. If you’re a small to medium site, you might be happy with hosting video on S3. Hosting images and other static content (say, CSS and JS files) might also be a good idea if you don’t have a lot of your own server capacity.
For my own use, I’m planning on using S3 to host images and static content for some other sites I run, which use a shared hosting provider for serving PHP. On a low traffic site, I’d be happy to offload images to S3. And when the CDN service becomes available, the user experience should be even snappier.
One thing to note if you plan to use S3 for image hosting, look into providing the correct cache-control headers on your objects in S3. You need to do this when putting content onto S3. You can’t modify headers on existing content. More on this in a future post.