Had been checking out Amazon's CDN solution - CloudFront for one of our solutions. Amazingly easy to setup and run. Check out the product page at http://aws.amazon.com/cloudfront/.Very simple to get up and running:
1) Create a S3 bucket for static stuff
2) Create a CDN distribution via the windows cloudfront admin tool
3) Changed the client UI code to refer to a different server for the data etc Now that UI stuff is deployed on CDN, the business server is on EC2 at some other place.
I am using this with Flex code so quite a few benefits apart from static images, js, html. The combined flex modules are about 1.5 MB (largest being 400 KB) so all of this is now being served out of the cdn. The initial screen loading (flex framework + first module) takes 24 seconds to show the first screen. With cdn it is down to 10 seconds. With a little bit more tuning (using RSL) this should come down further. RSL way of compiling typically takes out about 150-200 KB out of the main app module.
One thing to highlight here. RIA (Flex, GWT or any client only frameworks) will benefit the most with CDN as the entire UI is built and painted at the browser. Typically this is all static sources/compiled stuff and hence can leverage CDN much better. RIAs make stateless servers a reality.
How does Cloudfront compare with Akamai? I am doing this from Bangalore, the nearest cloudfront edge server is in HK. Akamai's footprint is a lot more dense, I think they have a couple edge servers of them right here in Bangalore and definitely in India. Akamai delivers the same first screen in about 7 seconds. So there is some 30% more speed than Cloudfront. To Amazon's credit they have just started, so a fair comparison can be done maybe a year down the road or in a geographic location like US where Amazon's footprint is better.
But pricing - Cloudfront beats it hands down with its pay as you go usage model and no fixed monthly or setup costs. Overall very satisfied with the performance so far and planning to go live very soon on this.
One thing to watch out for - all static sources once uploaded to the CDN will NOT expire less than 24 hours. A bummer during testing phase. One workaround is renaming changed resources with every deployment, maybe with a version number. We are following that for the swf file names, images and other resources are ok to live with a 24 hour life.