Jekyll auf Amazon CloudFront hosten
Von Carsten
Heute nachmittag hab ich mal ausprobiert, wie man den eigenen Jekyll-Blog auf einem Amazon S3-Bucket hosten und mit Amazon CloudFront weltweit verteilen kann. Mein erster Eindruck: fast so einfach wie Schuhe anziehen.
Einrichten des S3-Buckets
Als erstes hab ich mich auf der Amazon Management Console eingeloggt und ein neues Bucket angelegt. Jetzt muss ich noch mit s3cmd mein AWS-Zugang konfigurieren. Dazu rufe ich folgendes Kommando auf und folge den Hinweisen auf dem Bildschirm:
s3cmd --configure
Im Prinzip muss man da nur seine Zugangsdaten zum Amazon Webservice angeben.
Hochladen der statischen Inhalte
Ich habe lokal meine statische Seite mit Jekyll generiert. Danach habe ich im Verzeichnis _site
alle Dateien, die ich für die Seite brauche. Die kann ich jetzt auf mein vorher angelegtes Amazon S3-Bucket hochladen:
s3cmd sync --delete-removed _site/ s3://{bucketname}
Jetzt kann ich bereits meinen Blog auf dem S3-Bucket aufrufen: http://blog.kopis.de.s3-website-eu-west-1.amazonaws.com
Einrichten von Amazon CloudFront
Als erstes muss ich eine Distribution anlegen, wieder in der Amazon Management Console. Beim Einrichten wähle ich den Type download und mein S3-Bucket aus. Jetzt kann ich wieder meinen Blog aufrufen, diesmal auf dem CloudFront Content Delivery Network (CDN): http://d3ln3qjv5hffnc.cloudfront.net
Einstellen der CNAMEs
Damit ich meine Daten unter eine besseren Domain aufrufen kann, muss ich noch einige Einstellungen im Domain Name Server meiner Domain kopis.de vornehmen. Ich möchte einen CNAME einrichten und die Daten in der CloudFront anschliessend über blog2.kopis.de aufrufen.
Das Einrichten eines CNAME Records ist aber so abhängig vom Hoster der Domain, dass ich euch nicht damit langweilen möchte. Als letzter Schritt bleibt dann eigentlich nur noch der Aufruf des Blogs bzw. das Setzen von Links auf die statischen Inhalte in der CloudFront.
Ich hoste dann meinen Blog unter blog.kopis.de, während die meisten Inhalte aber von blog2.kopis.de kommen. Das ganze könnt ihr auch für einen dynamischen Blog machen, der z.B. nur statische Inhalte wie CSS, Javascript und Bilder aus der CloudFront lädt. Da mein Blog mit Jekyll nur noch aus statischen Inhalten besteht, kann ich alle Inhalte aus der CloudFront bedienen. Ich brauche dann gar keinen eigenen Webspace mehr und könnte mein Hostingpaket auf die reine Domain abspecken.