Optimera Amazon S3 och CloudFront

CC Flickr @ladydragonflyherworld

Jag är en optimeringsnörd, det måste jag erkänna. Jag kan sitta i timmar och optimera små kodsnuttar eller webbsidor tills det att det inte går att göra så mycket mer. Därför brukar jag som bekant använda mig av molntjänster såsom Amazon S3 samt CloudFront för att lagra statisikt innehåll.

För att optimera webbsidor så använder jag bl.a. verktyget Google PageSpeed för att hitta  flaskhalsar och en uppenbar sak som PageSpeed klagade på var att Expire/Cache-headers samt komprimering. Standard så stödjer ej Amazon S3/CloudFront ej komprimering men med hjälp av s3cmd och några extra flaggor så går detta att lösa:

1. Komprimera dina stylesheets och javascript:

$ gzip -9 style.css

2. Ladda upp komprimerade filerna och sätt headers:

$ s3cmd put style.css.gz s3://cloudfront.domän.se/ --mime-type "text/css"  --add-header "Content-Encoding: gzip" --acl-public --add-header "Expires: Sun, 17 Jan 2038, 19:14:07 GMT" --add-header "Cache-Control: max-age=315360000"

Verktyget s3cmd hittas här: http://s3tools.org/s3cmd

Uppdatering: Typo fixad. Tack Emil Stenström.

 

 

2 reaktioner på ”Optimera Amazon S3 och CloudFront

  1. Om man använder sin egen webserver som s.k. origin server istället för S3 kan man enkelt leverera både en komprimerad och icke-komprimerad kopia av resursen utan någon vidare konfiguration. Detta förutsätter givetvis att man har gzip påslaget i webservern.

    Detta i kombination med gzip_static påslaget i nginx får både dig och din CPU att le.

    Vidare läsning:

    http://docs.amazonwebservices.com/AmazonCloudFront/latest/DeveloperGuide/index.html?ServingCompressedFiles.html

    http://wiki.nginx.org/HttpGzipStaticModule

  2. Hej Jonas!
    Hur gör du om du behöver uppdatera css:en? I ditt exempel kommer den ju cachas ”för evigt”?
    Vänliga hälsningar
    Mikael Falkvidd

Lämna ett svar

E-postadressen publiceras inte. Obligatoriska fält är märkta *