CDN - Content Delivery Networks. How do they work and why would I want to use one?
Definition
Wikipedia says it well:
A content delivery network or content distribution network (CDN) is a system of computers containing copies of data, placed at various points in a network so as to maximize bandwidth for access to the data from clients throughout the network. A client accesses a copy of the data near to the client, as opposed to all clients accessing the same central server, so as to avoid bottleneck near that server.
Content types include web objects, downloadable objects (media files, software, documents), applications, real time media streams, and other components of internet delivery (DNS, routes, and database queries)
Benefits
- Uptime
- Download speed
- File mirroring
- Faster page download perception
Common CDNs
- Amazon CloudFront (in tandem with Amazon S3) is a CDN that I use and love.
- Cloud Files by Rackspace
- Longer list of free and paid CDNs at Wikipedia
Content Delivery Networks host copies of your content and serve it to your visitors from a server that's close to them. For example, if your images are served through a CDN, a visitor to your site transparently downloads the images from the CDN's server instead of yours.
The two biggest reasons for using a CDN are reducing traffic/bandwidth on your server, and increasing delivery speed. A CDN acts as a cache: it downloads your content from your server once, and then delivers it to all visitors from its own servers instead of yours. A CDN will also have a large number of servers located around the globe, so they will be able to serve content to most visitors from a closer location than you could, and thus get it there faster.
The two biggest CDNs I'm aware of are Akamai and Limelight.
Microsoft is also running Windows Azure CDN and they recently released their pricing structure for it as:
“The following three billing meters and rates will apply for the CDN:
•$0.15 per GB for data transfers from European and North American locations
•$0.20 per GB for data transfers from other locations
•$0.01 per 10,000 transactions”