I have spent some time researching Content Delivery Networks (CDNs) and how they can integrate with Drupal. Note that I have not yet implemented a CDN solution, so my experiences and opinion may change…. I will try to do a second post or update when we’ve actually rolled something out live.
Here are some criteria I’d use in selecting a drupal module for CDN management:
- Do you need a CDN? This is the key question, as a CDN can speed up your site, but introduces a layer of managment and expense that might not be worth the hassle.
- Do you mind patching drupal core? This might be a maintenance issue going forward.
- How contained within the drupal interface do you need your interactions with a CDN to be? Are you comfortable using a third party tool sometimes?
- Do you have an existing CDN to work with, or are you selecting a CDN from scratch? Obviously, you have more flexibility in the second case.
- Do you mind coding? Some of these modules seem like they are 75% of the solution, but you might need to write some code to finish things up.
There are a number of modules that attempt to integrate a CDN into Drupal, or might help doing so. All of these had a release for Drupal6.
- CDN: this seems like a great fit. Active development, good sized issue queue, support for multiple CDNs. It also patches core. Here’s a list of CDNs used with this module.
- media_mover: this module seems like it might be useful if you were needing to move image and or video files to a CDN. That might require some coding, although I remember there being some S3 and FTP support.
- creeper: this module is all about Amazon API integration, including CloudFront. Plus, what a great name!
- storage_api: this is a general storage service with a CDN focus, but doesn’t appear to be well documented or supported as of this time.
- cloudfront: adds Amazon CloudFront support to the imagecache module
These all seem to be useful in their own ways. The current project I’m working on is already invested in the Amazon infrastructure, mainly because of Project Mercury, so cloudfront is our current choice.
Did I miss any key modules?