Blog jetzt nicht mehr auf der AppEngine

      ca. 3 Minuten Lesezeit  

Wie neulich schon angedroht, habe ich diesem Blog ein neues Backend spendiert.

Die Google AppEngine kam für mich nicht mehr in Frage, da das neue Pricing nicht dem entsprach, was ich mir vorstellte. Was also als Alternative nehmen?

Wordpress? Das kommt mir nicht auf den Server.
Serendipity? Hmpf.
Movable Type? Weiche von mir Satan!

Außerdem musste das System ein Kriterium erfüllen: Es muss skalieren. Nicht weil ich es brauche, sondern weil ich es kann. Es sollte auch nicht viel kosten, wenn kein Traffic drauf ist. Also musste wieder eine Cloudlösung her. Da blieben also nur Google, Amazon oder Microsoft übrig.

Google AppEngine wollte ich grad loswerden, Microsoft ist mit Azure eher im Business-Bereich tätig. Bleibt nur Amazon übrig.

Eine EC2 mieten? Das ist mit einer Small-Instanz (Micro-Instanz ist zu lahm) und knapp 60-80 Euro im Monat nicht wirklich billig. Und wenn kein Traffic drauf ist, hab ich wieder das Problem wie mit jedem Root-Server: Ich bezahle, ohne dass die Leistung in Anspruch genommen wird. Aber der Heiner erzählte mir vor einigen Jahren mal seine Idee, einfach ein CMS in der S3/Cloudfront zu machen. Gute Idee!

Amazons CDN (Content Delivery Network) Cloudfront ist eine der skalierbarsten Lösungen der Welt. Ja, es gibt noch Akamai und andere CDNs, aber Amazon kam mir grad gelegen.

Wie legt man jetzt ein Blog auf die Cloudfront/S3? Wenn wir mal ehrlich sind, sind Blogs ja doch eine sehr statische Angelegenheit. Man schreibt einen Beitrag, dieser ändert sich nicht wirklich oft und ich lege ihn deshalb statisch ab. Genau wie den Rest der Seite (Impressum, Feed, Sitemap und so weiter). Dafür habe ich mir ein Backend in PHP mit CouchDB geschrieben, welches den Ramsch einfach komplett generiert. Auf einer 500 MhZ-Maschine dauern dabei 2000 Seiten ca. 5 Sekunden in der Generierung. Das ist OK.

Warum CouchDB? Mein Plan ist: Ich baue mir ein EC2-Image, welches beim Hochfahren einfach die Datenbank aus einem geschützten und verschlüsselten S3-Bucket lädt, in /var/lib/couchdb/ legt, ich einen Blogbeitrag schreibe und publishen kann und nach der Generierung die gesamte Datenbank wieder in die S3 lege. Dies hat den Vorteil, dass ich keinen Server brauche, um trotzdem von überall bloggen zu können und dabei keinerlei Kosten verursache, wenn ich mal wieder nur einmal im Monat einen Beitrag schreibe. So eine Instanz würde ca. 10 Cent je Stunde kosten. Das ist weit billiger als jeder Hoster und die gesamte Lösung skaliert nahezu unendlich.

Nun muss ich dazusagen, dass ich auch einfach keine dynamischen Inhalte auf dem Blog habe. Aber wenn man z.B. sein eigenes Kommentarsystem haben möchte, kann man dies natürlich auch machen und dafür habe ich auch eine einfache Lösung rumliegen. Aber bevor ich noch weiter rumschwadroniere, lass ich euch erstmal über Disqus kommentieren und bin gespannt, was ihr darüber denkt.