Caching, Zipping, and (Amazon CloudFront) CDN For A Rails App
Friday, June 18th, 2010This is Article #4 of a 4-part series. For a good primer, check out the first two articles listed below. For the reasoning and analysis behind the “Recommended” option in this article, check out Part 3, How to Combine GZip + CDN for Fastest Page Loads. Otherwise, jump right in!
- The Importance of Page Load Speed
- Improve Page Load Speed (by 80%) by Improving Component Load Speed
- How to Combine GZip + CDN for Fastest Page Loads
- Caching, Zipping, and (Amazon CloudFront) CDN For A Rails App
- Prerequisites
- Cached stylesheets and javascripts
- Creating an Amazon AWS Account
- Setup S3 Buckets
- Setup CloudFront Distributions
- Create CNAME records (optional)
- Install Rails S3 Synch Plugin
- Installing AWS-S3 Gem
- Configure S3 Synch Plugin
- Add S3 Synch to Deployment
- Option A: Compressible Assets from App Server, Images from CloudFront (recommended)
- Configure Rails Asset Host
- Create A-name Record
- Configure Apache
- Option B: Serve Everything from CloudFront (easier, but not recommended)
- Configure Rails Asset Host
- Pre-compile Cached Stylesheet and Javascript File
- Conclusion
- Prerequisites
In this article, we’re going to speed up our Rails application by up to 75%, simply by optimizing our Rails asset host. We’re going to serve our components (stylesheets, javascripts, images, etc.) from a combination of our app’s server and Amazon CloudFront (Option A, recommended), or entirely from CloudFront (Option B – easier).
The best option for you may depend on your specific needs, but I’ll cover both processes below. For a an in-depth analysis of why Option A is recommended over Option B, see the last article in this series, How to Combine GZip + CDN for Fastest Page Loads.
