Blog nicht „erreichbar“

Wie ich heute feststellen musste, war mein Blog nicht mehr so richtig erreichbar. Ist das nicht herrlich, wenn man einen Blog aufgebaut hat und dann feststellt, dass dieser gar nicht mehr richtig läuft?

Der Fehler war aber für mich nicht ganz so offensichtlich: Der Browser brachte kein http-404 (Page not found) oder http-50x (server error). Der Browser versuchte einfach den Inhalt zu bekommen, den es offensichtlich gab. Das dauerte dann aber zu lange, womit man dann Timeout-Meldungen sah.

In Azure fiel auf, dass – obwohl ich meinen Blog nicht mehr aufrufen konnte – der Server doch irgendwie beschäftigt ist

azure vm monitoring

Eine Verbindung via SSH konnte ich aufbauen und fand dort eigentlich auch alles so vor, wie es sein sollte. Erst als ich das Logfile des Apache-Webservers analysierte, sah ich dass ich von ein paar Clients (IPs) her konstant bis zu 30x pro Sekunde aufgerufen wurde. Die xmlrpc.php-Datei war dabei stets aufgerufen.

191.96.249.52 - - [--/--/--:xx:xx:xx] "POST /xmlrpc.php HTTP/1.0" 200 370

Als ich diese testhalber dann mal umbenannte, war es wieder möglich, den Blog zu öffnen – im Apache-Log sah ich dann auch, dass die Bots nur noch http-404 empfingen. Das aber konnte nun ja nicht die Lösung sein. Schliesslich beschäftigten die meinen Server immer noch entsprechend spürbar (Ladezeit des Blogs war unterdurchschnittlich).

Also habe ich nun auf Azure bei der Security-Group eine Regel angelegt, welche das ganze Subnetz dieser IP sperrt.

azure_security_rule

Diese Massnahme zeigte auch sofort Wirkung: Ab dem Moment, als die Regel eingerichtet war, waren die Antwortzeiten meines Blogs wieder flink und auch die Auslastung meines Servers sank wieder auf ein normales Niveau.

Aber wirklich gelöst ist das Problem eigentlich trotzdem noch nicht. Denn es wird nur eine Frage der Zeit sein, bis Bots von anderen IP-Adressen her anfangen, meinen WebServer aufzurufen. Ein Update wird folgen, sobald ich dafür ne Lösung hab… Inputs via Kommentare sind willkommen!

WordPress auf Azure mit MSDN

Das was Sie hier vor sich sehen, ist ein auf Microsofts Cloud Plattform Azure gehosteter WordPress Blog. Und das will ich doch gleich mal zum Einstiegsthema machen. Warum habe ich mich für die Cloud entschieden? Und warum für Azure im Speziellen? Wie sieht mein Cloud-Setup nun aus, und welche Hürden hatte ich zu überwinden?

Die Fragen

Warum also meine Website in der Cloud hosten? Nun, das lässt sich relativ einfach erklären: Ich würde nicht auf die Idee kommen, für meine Bedürfnisse eigene Infrastruktur aufzubauen. Das dafür nötige Knowhow ist schon etwas angestaubt, vor allem aber will ich solche Investitionen nicht tätigen; mir also Hardware kaufen, welche ich dann alle paar Jahre wieder erneuern muss. Insofern ist es doch viel einfacher, eine Website bei jemandem zu hosten, der darauf spezialisiert ist.

azure_regions

Nun beantwortet das die Frage nicht abschliessend: Ich könnt ja auch einfach zu einer Hosting-Firma gehen, welche klassisches Website-Hosting macht. Warum also Microsoft Azure? In meinem Fall wiederum sehr einfach: weil ich es für Übungszwecke auf Azure umsetzen wollte und weil ich dort via meinem MSDN-Abonnement ein monatliches Guthaben verwenden kann. Es gibt aber auch andere Gründe, welche die Cloud attraktiv machen: Skalierung ist so ein Thema. Wenn die Nachfrage für meine Website hier sehr gross wird, kann ich relativ einfach die Leistung erhöhen; wenn der Platz ausgehen sollte kann ich auch hier einfach mehr Speicher aktivieren.

Meine Umgebung

Ich möchte mit Ihnen meine Erfahrungen teilen, wie mein Setup für diesen Blog hier zustande kam. Dazu will ich zuerst kurz ausholen, wie meine Ausgangslage aussieht. Ich habe mir vor Jahren schon ein Office365 Small Business Abonnement gelöst. Dies hat wiederum seine Gründe im Knowhow-Aufbau, aber auch Nutzen-seitig arbeite ich gerne mit SharePoint.

office-365-devices

Meine Domäne (adrianbucher.ch) habe ich bei Office365 hinterlegt, so dass ich auch Mailkonten via Exchange Online verwalten kann. Ich habe auch nicht wenig Zeit darin investiert zu versuchen, meinen Blog mittels Office365′ public facing Website bereit zu stellen. Aber selbst für mich, der mit SharePoint schon über 9 Jahre arbeitet, stellte sich das nicht als Kinderspiel heraus. Alles was irgendwie Spass macht, ist dort nicht verfügbar. Und als dann Microsoft selbst mir gar von diesem „Hobby“ noch abriet, war der Entscheid definitiv gefallen: Weg von dem Konstrukt, hin zu ner Azure-hosted Website.

Der Versuch

Wie eingangs erwähnt, verfüge ich via MSDN-Abo über ein gewisses Guthaben, das mir monatlich zur Verfügung steht. Dies ist für Test- und Machbarkeits-Umgebungen gedacht – also nicht wirklich für produktive Umgebungen. Da es auf Azure bereits viele vorgefertigte Templates gibt, kann man dort sehr schnell starten. Historisch bedingt kannte ich bereits WordPress, womit die Wahl auf eben solche Templates relativ schnell gesetzt war.

azure_wordpress

Es gibt mehrere Templates für WordPress; für mich war der einfache WordPress Template wie geschaffen. So klickt man sich relativ schnell durch die nötigen Eingaben durch und lässt dann Azure alles einrichten: WebSite, Datenbank und die nötigen Konfigurationen.

Nun meldete sich Azure aber während dem Einrichten immer mit der Meldung, dass meinem Abo keine Kreditkarte hinterlegt sei, ohne dieser die Einrichtung nicht abgeschlossen werden könne. Nun, klar kann ich meine Kreditkarte hinterlegen, aber leider fand ich diese Option nirgends. Erst nach viel Recherchen fand ich heraus, dass die Ursache eine komplett andere sein soll: Als MSDN-Abonnent stellt Microsoft keine mySQL-Datenbanken bereit. Legitim, wie ich finde, auch wenn mich die Fehlermeldung lange in andere Richtungen suchen lies.

Die finale Version

Ich fand dann heraus, dass es andere Templates gab, welche ebenfalls einen WordPress Blog bereitstellen, aber eben MSDN-Kompatibel. Ich entscheid mich für den Bitnami Template, der nicht einen Azure Webservice mit einer MySql Datenbank bereit stellt, sondern einen Unix Server, der schon alles drin hat. Das klang für mich anfangs etwas am Ziel vorbei, wollte ich doch gerade mit diesem Setup ein typisches Azure-Szenario aufbauen. Aber je länger je mehr ist das doch genauso „Azure“ – Weil…

Microsoft-Loves-Linux

Damit gelang die Einrichtung innerhalb weniger Minuten. Und dann lief dieser Blog eigentlich auch schon… und das sogar sehr performant. Obwohl ich (subjektiv) ja nicht aus dem Vollen geschöpft habe. Ab dem Moment war dieser Blog mittels einer IP aufrufbar. Danach noch kurz das DNS-Setup auf Office365 ergänzen (A-Record mit @ auf IP und CNAME www auf meine Domain), womit ich mich dem Blog selbst (Theme, Settings,…) zuwenden konnte… und eben diesem Post hier.

Conclusion

Ohne MSDN-Abo wäre das Einrichten bestimmt noch schneller gegangen. Aber – gerade für mich – war das doch eine interessante und lehrreiche Geschichte, welche mich zu einem Azure-Setup brachte, welches ich so anfangs nicht plante. Aber mir schlussendlich wieder Neues zeigte.

 

Wie geht es nun weiter: Da ich geschäftlich viel mit Office365 zu tun hab, aber auch Azure immer mal wieder antreffe, sind das die beiden Hauptthemen dieses Blogs. Darin sind auch Themen wie Datensicherheit, Migration oder Hybride Szenarien enthalten. Office365 hört aber auch nicht mit SharePoint Online und Exchange Online auf: So will ich auch Yammer, PowerBI oder Sway mal genauer vorstellen, um so stets ein rundes Bild um Microsofts Cloud-Offering aufzuzeigen.