In diesem Artikel möchte ich euch zeigen wie man ganz einfach Amazon S3 (Simple Storage Service) mit eure WordPress Seite verknüpft. Zunächst einmal sollten wir klären wozu wir die S3 Verknüpfung überhaupt benötigen.
Geschwindigkeit
Wenn wir einen Artikel schreiben und dazu Bilder hochladen, werden diese später natürlich von unserem Server geladen. Das ist unter Umständen langsam und drückt den Pagespeed beträchtlich nach unten. Da die meisten Blogs auch sonst grafisch ein wenig aufgehübscht sind, werden diese Grafiken ebenfalls von unserem Server genommen. Lagern wir diesen „Flaschenhals“ aus, müssen wir uns nicht mehr so viel Sorgen um die Geschwindigkeit machen.
Sicherheit
Daten, die nicht auf unserem Server liegen, können bei einem Server-Crash auch nicht verloren gehen. Diesen Umstand mussten wir an unserem eigenen Blog leider schmerzlich feststellen. Daher macht es auch für „low-traffic“ Blogs durchaus Sinn Ressourcen wie Bilder oder Zip-Dateien extern zu lagern. Da Amazon die Daten für euch auch noch zusätzlich sichert (Stichwort Cloud), seit dir dort auf der sicheren Seite.
Wie geht das nun?
Natürlich benötigt ihr erst einmal einen Amazon Webservice Account. Ihr benötigt eure Kreditkarten Daten um einen Account zu erstellen, es fallen aber zunächst keine Kosten an.
Die einfachste Implementierung von Amazon S3 ist wohl mit dem W3 Total Cache Plugin zu bewerkstelligen.
Wenn ihr das Plugin installiert habt, klickt Ihr auf der linken Seite einen neuen Tab mit den Namen „Performance“ und anschließend auf den Menüpunkt „CDN“. Dort könnt ihr nun die verschiedenen Optionen anhacken, je nach dem was ihr genau auslagern möchtet. Ich habe in diesem Fall nur „Host attachements“ ausgewählt, welches alle Dateien Umfasst, die ihr via WordPress hochgeladen habt.
Unter „Configuration“ gebt ihr nun euren AWS-Key und Secret ein, diese findet ihr bei Amazon unter dem Menüpunkt “ Sicherheitsnachweise„.
Bei „Bucket“ könnt ihr im Grunde alles angeben (Zahlen, Buchstaben, Unterstrich, Bindestrich), aber er muss im S3 System Unique sein. Außerdem sollte man sich an dieser Stelle schon Gedanken dadrüber machen, ob man für die Auslieferung der statischen Ressourcen eine eigene Subdomain (CNAME) nutzen möchte. Wenn Ihr also eine Subdomain ala „static.domain.de“ benutzen wollte, tragt das hier ein. Anschließen klickt ihr einfach auf „create bucket“ und der Bucket wird erzeugt.
Wenn ihr einen CNAME bei eurem Domainprovider angelegt habt, tragt diesen nun hier ein. Bei mir hat es erst richtig funktioniert, als der CNAME genauso benannt war, wie das Bucket bei S3. Wie man einen CNAME einträgt, unterscheidet sich von Anbieter zu Anbieter natürlich. Meistens wird er unter den DNS-Einstellungen eingetragen.
Nachdem wir alle Daten eingetragen haben, noch schnell den „Test S3 Upload“ Button anklicken und hoffen, dass alles gut geht. Wenn das der Fall sein sollte, die Einstellungen speichern. Mit den „Advanced“ – Optionen habe ich mich bisher noch nicht beschäftigt, diese scheinen aber größtenteils selbsterklärend zu sein.
Testen
Das W3 Total Cache Plugin ist standardmäßig im „Preview“ Modus. Das bedeutet alles was man eingestellt hat, ist im Frontend noch nicht zu sehen. Um zu testen ob die Verbindung mit Amazon S3 nun auch erfolgreich war, erstellt man am besten ein Test-Artikel mit einem Bild und veröffentlich ihn (im Live Betrieb einfach das Veröffentlichungs-Datum auf 2000 stellen, damit es nicht im Frontend auftaucht).
Öffnet den Test-Artikel in einem neuen Tab und hängt an die URL ?w3tc_preview=1 an. Nun seht ihr die Auswirkungen des Plugins. Sollte das Bild auftauchen, kopiert euch die URL und überprüft, ob es von Amazon kommt. Wenn ihr zufrieden seid, klickt im W3 Plugin auf „deploy“ und die Einstellungen werden auf eure Seite angewandt.
Wie bekomme ich meine alten Inhalte zu Amazon?
Unter dem Menüpunkt „CDN“ könnt ihr neben den Optionen welche Inhalte bei Amazon S3 gehostet werden sollen, die Inhalte direkt hochladen. So einfach!
Kosten
Die Benutzung von Amazon S3 kostet eine monatliche Gebühr, die jedoch von der Menge eurer Daten und Traffic abhängt. Bei Amazon gibt es eine Preisliste und einen „Kosten-Calculator“ mit denen Ihr die Gebühren ungefähr berechnen könnt.
Du musst WordPress noch installieren? Dann haben wir hier die einfachste Anleitung für Dich.
6 Kommentare
Michael schrieb am 18. November, 2012 @ 15:13
Ich persönlich bevorzuge für das externe Hosting von Medien lieber Cloudfront von amazon. Mit den Medien lokal und „origin pull“ ist das eine sehr einfache und kostengünstige Lösung. Und gegen das „Verlieren“ von Medien wg. eines Crashes soll ein gutes Backup-Konzept helfen 😉
Daniel schrieb am 7. Januar, 2013 @ 16:24
Ich denke auch dass ich mit meinen Backups alles wichtige gesichert habe, aber die Geschwindigkeit kann man dadurch natürlich toll verbessern!
AlexE schrieb am 21. Januar, 2013 @ 17:11
Danke für die Ausführung. Ich war schon verzweifelt, wie man die Hinweise von dem W3 Total Cache Plugin im WP wegbekommt: Amazon S3 war also die Lösung meiner Problme. Super!
Geraldine schrieb am 28. Februar, 2013 @ 17:32
Ein interessanter Ansatz. Ich kannte den Service bislang noch gar nicht. Aktuell reicht für mich aber der Cache, zumal die ‚Bildersituation‘ in Anbetracht von Abmahnungswellen unklarer Bildrechte gerade etwas brisant erscheint.
Chris schrieb am 18. März, 2013 @ 8:15
Prima Artikel, danke.
Ich stehe vor folgendem Problem:
Einbindung eines Objektes (mp3) von Amazon S3 in WordPress. Leser sollen das mp3 via player auf der Website hören können. Wenn jemand den Link zum Objekt aus dem Quellcode kopiert soll er ihn aber nicht nutzen können.
Weisst du, wie ich die Permissions hierfür setzen muss?
Dank vorab.
crissxcross | siio SmartHome Blog schrieb am 24. März, 2014 @ 22:53
Tolle Anleitung!
Bislang haben mich die „unkonstanten“ Kosten etwas von Amazon S3 abgehalten. Ich habe mich damals für maxcdn.com etnschieden. Durch einen BlackFriday 50% Off Gutschein zahl ich im Jahr ca 40 Euro. Ich verwende es ebenfalls mit W3 Total Cache was ich im übrigen für das beste WordPress Caching Plugin halte.