Migration: WordPress + MariaDB (MySQL) + PHP + EC2 + CoudFront

I previously wrote about how and why I was migrating away from Hosteurope to Amazon AWS. The basics steps sounded very simple:

  1. Backup databases and data directories on the old server
  2. Set up the new server including all software & services needed
  3. Restore all backups to the new server
  4. Change DNS setting to apply changes to all visitors

Sounds easy, right?

Everyone who’s done that kind of thing before, knows it’s never quite that easy. Doing the first step is quite straight forward. Not a big deal. For the second step I ended up using a combination of howtos to get everything set up properly:

  1. Official AWS EC2: Linux+Apache+MySQL/MariaDB+PHP
    Tutorial: Install a LAMP Web Server on Amazon Linux 2
  2. Official AWS EC2: WordPress
    Tutorial: Hosting a WordPress Blog with Amazon Linux
  3. Working CloudFront Config for WordPress:
    Setting up WordPress behind Amazon CloudFront
  4. General WordPress on t2.nano Instance:
    How I made a tiny t2.nano EC2 instance handle thousands of monthly visitors using CloudFront

My main goal was to run the smallest instance AWS has (currently t3.nano) which costs around $3.75 per month. It turned out, MariaDB (and for that also MySQL) does not start up properly at the nano instance with just 512MB of RAM. Therefore, I had to go at minimum with the t3.micro instance.

To ensure that load spikes are being handled properly and the server will not go offline during these peak times, a content distribution network (CDN) comes in handy. The great thing about AWS is that they’ve thought of all these scenarios and of course they’ve got a CDN solution ready to deploy. It’s called CloudFront. The tricky part here is, to have CloudFront kick in at the right time, because it caches content to deliver it from its own edge locations across the globe, but at the same time WordPress generates websites dynamically. So CloudFront needs to be able to work in that environment. Setting up CloudFront properly was the part that cost most time, but it works great now.

CloudFront Network Map

I have now deployed CloudFront with multiple sites all running on the same t3.micro instance. One by one I activated for CloudFront distribution and over the past couple of days the traffic handled by CloudFront is going up continuously.

CloudFront Cache Statistics

To run massive load tests I used Apache JMeter for the first time. It’s a monster when it comes to load testing and it took me about an hour to get it running the first time. You can literally configure everything on there.

As it is when you’re setting up new things, you’ll have many “new things” you’re working with. In my case, it was the first time I used MariaDB, which is a fork from MySQL. It was also the first time I worked with php-fpm, which “is an alternative PHP FastCGI implementation with some additional features useful for sites of any size, especially busier sites”.

So far I’m quite happy with the current set up. Let’s see how this performs over time. My sites are constantly under attack from bots who are trying to figure out passwords and gain access otherwise to those sites. Yet, every site and server can and will eventually go down under just enough Denial of Service attacks. At the current attack level we’re doing OK, but let’s see how long this lasts and what adjustments I’ll have to deploy.

Amazon Basics – Ein Erster Test

Als Mac Nutzer habe ich natürlich eine Magic Mouse und eine kabellose Tastatur. Beide bekommen ihren Strom durch handelsübliche AA Batterien, obwohl die neuste Version der Magic Mouse ja mittlerweile einen Akku fest verbaut hat. Ich aber habe noch die alte Version und muss so lange noch Batterien nutzen.

Nun habe ich mich endlich durch gerungen einmal wiederaufladbare Akkus zu besorgen, damit ich wenigstens einen kleinen Beitrag der Umwelt zuliebe leisten kann. Es hat jedes einzelne mal geschmerzt, wenn ich nach ca. 1 Monat die Wegwerfbatterien wirklich auch wegwerfen musste.

Nach so einigen Online-Preisvergleichen habe ich mich zum allerersten mal für ein Produkt von Amazon Basics entschieden.  Das ist eine interessante Eigenmarke von Amazon, die in der Tat viel Sinn macht. Sie definieren sich selbst so:

“AmazonBasics bietet hochwertige Produkte für den täglichen Bedarf zu kleinen Preisen an, direkt zu Ihnen nach Hause geliefert.”

Ich habe dann zum Test also mal folgendes bestellt:

  1. Akku-Ladegerät für €13,19
  2. Ein 8er Pack Akkus mit der größten Speicher-Kapazität von 2.400mAh für €18,39

Bisher bin ich mit beiden äußerst zufrieden. Sie wurden mir Anfang Oktober in zwei separaten Päckchen geliefert. Zwei Akkus sind seitdem in meiner Mouse und haben heute noch verbleibende 88%. Wie auf dem Screenshot oben zu sehen ist, gehen die alten Batterien in meinem Keyboard bald zur Neige. Die werden dann also auch mit wiederaufladbaren Akkus von Amazon Basics ersetzt.

Insbesondere die Akkus mit höherer Ladekapazität von über 2.000 mAh sind von anderen namenhaften Herstellern (Varta, GP, etc) um einiges teurer. Vielleicht gibt es hier und da mal ein paar günstigere Angebote, aber in dieser konstanten Nachfrage-Nische von Verbrauchsprodukten will Amazon anscheinend mit deren kostengünstigen Amazon Basics Produkten punkten.

Ich bin ja mal gespannt, wie die sich so über ein Jahr lang schlagen. Denn meiner Meinung nach sollten die Akkus mindestens so lange halten, um sich zu rechnen.

Hier noch ein paar Impressionen von meinen Amazon Basics Akkus:

 

Rechtsschutz mit Bauherrenrechtsschutz

Wie sich das als guter Deutscher gehört, hat man so einiges an Versicherungen. Nachdem ich bereits meine erste private Haftpflichtversicherung abgeschlossen hatte (man weiß ja nie was Kinder so kaputt machen können), dann auch die Autoversicherung (hier gibts übrigens günstige), und Krankenversicherung sowieso; habe ich nun auch eine Rechtsschutzversicherung abgeschlossen.

Da sich ja unsere Hausbau-Geschichte ewig hinzieht und es gemischte Signale von verschiedenen Behörden gibt, dachte ich mir: “Man weiß ja nie. Es ist besser vorbereitet zu sein.”

Um ggf. gegen bestimmte Entscheidungen und / oder unterschiedliche Auffassungen von Bau-relevanten Behörden wirksam vorgehen zu können, war es essenziell, dass der Rechtsschutz einen Bauherrenrechtsschutz beinhaltet. Wie ich nämlich feststellen musste, ist ein Rechtsschutz in Baufragen bei fast allen Rechtsschutzversicherungen ausgeschlossen. Genauso wie manch andere ggf. teuere Angelegenheiten wie beispielsweise Unterhalt, Ehe, usw. Außerdem beinhaltet der Bauherrenrechtsschutz auch ggf. auftretende Ungereimtheiten nicht nur mit Behörden sondern auch mit dem Bauträger. *Klopf-auf-Holz*, aber sowas kann ja auch von Vorteil sein.

ARAG oder ÖRAG

Im Prinzip gibt es nur zwei Versicherer die Rechtsschutzversicherungen mit Bauherrenrechtsschutz anbieten. Diese sind die ÖRAG sowie die ARAG.

1. Option: ÖRAG

Die ÖRAG als Mitglied im Verbund der Sparkassen-Finanzgruppe gibt allerdings nur Bauherrenrechtsschutzversicherungen an Kunden heraus, die auch beispielsweise ein Finanzierungsprodukt bei den Sparkassen haben. Wer dies nicht hat, der bekommt auch keinen Bauherrenrechtsschutz. Das genaue Produkt bei der ÖRAG heißt: “Bauherren-Rechtschutz”

2. Option: ARAG

Die ARAG wiederum ist der größte deutsche Versicherungskonzern, der in Familienbesitz ist. Ich mag ja prinzipiell Familienunternehmen. Für wen also die ÖRAG nicht in Frage kommt, der kann getrost zu der ARAG greifen. Deren Produkt heißt in dem Fall: “ARAG Privatrechtsschutz PREMIUM” mit extra “Rechtsschutz im privaten Immobilienbereich”. Hinweis: Nur in der Premium-Variante ist auch der Bauherrenrechtsschutz inbegriffen.

FAZIT

Die Preise für beide sind in etwa gleich und beide Firmen sind generell sehr gut beim Rechtsschutz aufgestellt.  Die ÖRAG ist wohl ein klein wenig günstiger, dafür kommt die allerdings nicht für jeden in Frage. Bei der ARAG gibt es eine Kombi-Selbstbeteiligungs-Option bei der man z.B. €300 Selbstbeteiligung hat, welche sich aber auf €150 verringert wenn man einen von der ARAG empfohlenen Anwalt verwendet. Da ich sowieso keinen Anwalt kenne und auf deren Empfehlung angewiesen bin, war dies meine Option. Die Kosten liegen bei ca. €224 pro Jahr und pro Fall würden halt noch je €150 fällig werden.

Außerdem kann ein Rechtsschutz auch gut sein, falls sich jemand durch einen meiner Blog Posts oder Kommentare in sozialen Medien beleidigt fühlt — obwohl das natürlich nie meine Absicht ist. Aber wie gesagt, man kann ja nie wissen.

Falls jemand einmal Rechtsschutztarife durch rechnen möchte, kann er oder sie dies hier gern auf dem Rechtsschutz-Vergleichsrechner von Tarifcheck24 tun. Das ist immer ein guter Startpunkt, um ein Gefühl für aktuell verfügbare Tarife zu bekommen.

Rezept: Reissuppe

Ich hatte letztens aus Spaß mein schnelles Reissuppenfrühstück in der Facebook Gruppe Bad Langensalza kocht und backt geteilt. Da nach dem Rezept gefragt wurde, nachfolgend mal meine kurze Anleitung.

Übersicht

  • Zubereitungszeit: ca. 5 Minuten
  • Schwierigkeitsgrad: leicht

Zutaten:

  • Reis (gekocht; kalt; in meinem Fall alter Reis vom Vortag)
  • Wasser
  • Brühe (Pulver)
  • Knoblauchzehe
  • Schrimps (~10; gefroren; z.B. Eismeerkrabben)
  • Getrocknete Chili

Zubereitung:

  1. Etwas Wasser (z.b. 200ml) zum kochen bringen
  2. Brühe und Knoblauch gehackt hinzu geben und auflösen lassen
  3. Reis hinzu geben und aufkochen lassen
  4. Schrimps zu geben und wieder aufkochen lassen
  5. Hitzezufuhr auf leichtes köcheln herunter nehmen
  6. Weitere 3 Minuten kochen lassen
  7. In eine Schüssel geben, Chili drüber streuen und servieren

Guten Appetit! 🙂

Hinweis: Für die Reissuppe in meinem Photo hatte ich zu viel Wasser genommen. Deshalb war sie recht wässrig. Hat dem Geschmack aber nicht geschadet.

Optionale Zutaten & Alternativen:

  • Frisch geschnittene Frühlingszwiebeln drüber streuen
  • Hackfleisch anstelle von Schrimps (oder zusätzlich)
  • Frischen Reis nehmen (dann aber so lange kochen bis weich)
  • Ein Salatblatt zerreißen und bei Punkt 5 hinzugeben
  • Geröstete Zwiebeln drüber streuen
  • Mit Nam Pla verfeinern
  • Jedwede Gemüseschnipsel
  • Frischer Koriander, Ingwer, ein gekochtes Ei, etc.
  • Weniger ist allerdings mehr: Nicht mit Zutaten überfüllen

Meine Kochprinzipien:

  • Pi mal Daumen: 差不多
  • Improvisation: Ich koche meist nicht nach Rezept.
  • Experimente: Mal was neues probieren.
  • Aufbrauchen: Neue Gerichte mit dem Kühlschrankinhalt kreieren.
  • Schnell: Wenn Hunger geboten ist, muss es schnell gehen.
  • Scharf: Ist immer gut und fördert die Verdauung.
  • Knoblauch: Ist gesund und quasi an jeder Speise.

Migration – Bye Bye Hosteurope – Hello Amazon AWS

I recently moved this blog from one old server to a new one. This is my first blog post on this new server. Let’s hope nothing explodes.

For many years I have been a more or less happy customer of Hosteurope. It is a hosting company headquartered in Germany (with hosting sites in other European countries). Many years ago I chose to sign up with Hosteurope for one of their so called “VPS” aka Virtual Private Server. That’s basically a virtual server running on one of their larger server clusters.

About a year ago I realized that my annual bill for that Hosteurope server was about €156 per year. That’s not a huge amount, but as I’ve been involved in cloud-hosting for many of our projects, I knew there are many other options that offer a way better price / value ratio.

Being lazy as humans are, I didn’t want to migrate my server away. In fact, it would have been enough for me if Hosteurope would have lowered my service charge to the price of the currently available equivalent VPS they are selling. Over the years, hardware has gotten cheaper and so has hosting gotten cheaper. In short: Newer VPS products of Hosteurope now cost less and provide more power.

I simply love attractive cost/value ratios.

So last year I reached out to Hosteurope and asked them wether they can offer me my old VPS for the new price (~€4 less per month or so). It’s not that much of a difference, but for the principle of it: I just like to be treated fairly. They did not agree to that and simply said: “You have to stick to your old product, or you may also terminate your contract.” Last year I missed that deadline — again, that wasn’t really a priority for me — and therefore, the contract renewed for another year. This year, though, I remembered and terminated on time.

AWS has almost unlimited capabilities

For over 10 years our businesses are now customers at Amazon Web Services. We’ve been with them from almost their first service. So I’ve been working with AWS for a long long time. We even had an incident where we literally spent $4000 USD in minutes — accidentally. That can happen if you “overdo” extreme automation 🙂

However, when using AWS properly, it can be very useful and cost-efficient. Especially, when we’re talking about hosting my small blog kozen.de as well as some other sites I run on this server.

AWS has some great services I was able to use for this move. That includes their S3 Simple Storage, EC2 Elastic Cloud, CloudFront Content Delivery Network, CloudWatch Monitoring Service and many others well.

AWS’s own Amazon Linux 2 is also a great Linux distribution I’ve grown to like and I’m quite confident it keeps getting maintained for the next 10 years. The old Debian that was running on my Hosteurope server wasn’t being maintained by Hosteurope – especially as they had some funky customizations and source settings in there, which for the past years seem to not have gotten the love they deserved. Hence, I ended up with an outdated system.

I’m confident this will be better now. And besides, instead of paying €156 I’m expecting to pay at most €60 per year. That’s a fluffy 60% savings and I haven’t even factored in discounts at Reserved Instance costs.

Let’s see how this goes. For now, I’d be happy if nothing crashes in the next few days after this migration 😂

 

P.S.: Monitoring capabilities are also quite neat. I can monitor the performance at all times. Have a look:

Earning Money by Blogging: +1,000% Ad Income

From time to time I get to hear some criticism about having ads on my blog here. I can understand the dislike of advertising and I myself do click ads away or try to close them where ever possible and most importantly if they’re annoying. Yet at the same time, I do also have ads on my blog.

Having ads on kozen.de is in part an experiment to see myself if I can somehow be able to finance the hosting costs for this blog through such ads. Sure, I’ll have to create content that is interesting to people to come here, have a read and get some value out of it. While I believe there is an audience out there that might find my content useful, I am also sure that there is a rather large audience that finds my content not useful at all. And that is entirely fine with me.

Today when I logged onto my Google AdSense account to check on this blog’s recent performance, I noticed this little notification at the top right and after opening it, it showed me that my ad income performance went up by 1,000% per cent. Granted, I have started from low levels. This blog had not been updated for several years before I took up blogging again.

I’m not even constantly blogging right now. As you might have noticed (or not noticed :)) there are some weeks when no blog post is being published. There are just some weeks when I don’t really have a topic to talk about or when I simply don’t feel like blogging. More often though, I am just not in the mood to blog. It is a great luxury to have that choice, though.

Perhaps some day, I will be able to simply cover server hosting fees just through advertising income on this blog. Hopefully, some of my content will be valuable enough to my readers to keep coming back from time to time and be timeless enough that it is not outdated in the second it was posted here.

There’s a long way to go and blogging helps to get through that process.

Deutscher Reisepass nur noch Platz 3

Viele Jahre lang war der deutsche Reisepass das Nonplusultra der Reisepässe in der Welt, wenn es um Visa-freie Einreise in die verschiedensten Länder der Welt ging.

Seit einigen Jahren nun war der Reisepass von Singapur gleich auf mit unserem deutschen Reisepass und vor kurzem wurde Deutschland überholt. Gestern hat nun aber Japan beide überholt, Deutschland wie auch Singapur. Demzufolge ist der deutsche Reisepass auf den 3. Platz abgerutscht und Singapur wurde auch vom 1. Platz verdrängt. Die Rangfolge ist also nun folgende:

  1. Japan: 190 Länder
  2. Singapur: 189 Länder
  3. Deutschland: 188 Länder
  4. Frankreich: 188 Länder
  5. Südkorea: 188 Länder

Die komplette Liste an Reisepässen kann hier eingesehen werden: Henley Passport Index (Englisch)

Es wäre natürlich schön wieder an der Speerspitze dieser Liste zu stehen. Macht es doch unsere Reisen in der Welt so viel angenehmer, wenn man keinerlei Visa benötigt. Am tollsten fände ich, wenn wir Deutsche kein Visum mehr für China benötigen würden. Allerdings muss ich sagen, dass 188 Länder bereits so viele Teile der Welt abdeckt, dass wir uns froh schätzen können einen so weit reichend nutzvollen Reisepass zu haben.

 

Update 2018-10-10 9:58am: Fixed passport list index.

Makey Makey Experiments

The Makey Makey Set

Inspired by our city’s library who wants to launch a Maker Space here, I’ve ordered a Makey Makey set. Of course, the cheap version on Aliexpress rather than the original $50 one.

Makey Makey is a cool small set of cables and a circuit board. It’s basically a USB keyboard & mouse that you can control with your finger tips by closing the electrical circuit.

It is great for building small electrical controllers with it. Hand-crafted little things simply to play around and understand how things work. Silly things like a piano controlled by touching bananas for example. Check out this video on Youtube that shows what can be done: Makey Makey Examples.

So I went ahead and created myself a small little game controller. All I used was the Makey Makey set, a piece of cardboard, a bit of aluminium foil and scotch tape. It took about half an hour to craft it. Check it out:

Here are some photos of the setup from the front, back and the Makey Makey board set itself:

Stay tuned to see what other silly things we can build with that.

Bloggen oder nicht? Wer hat Angst vor den Behörden?

Bad Langensalza, dem 22. September 2018: Vor vier Monaten, also im Mai diesen Jahres, haben wir unseren Bauvertrag für unser Haus unterschrieben. Filmreif sind mittlerweile unsere weitreichenden Korrespondenzen mit allen möglichen Bau-relevanten Behörden des öffentlichen “Rechts”. (Absichtlich vage gehalten hier.) Bis heute haben wir keine Baugenehmigung geschweige denn einen möglichen Termin für den ersten Spatenstich. Viele Gründe dafür sind einem Normalbürger nur sehr schwer aber oft auch gar nicht vermittelbar.

Ich teile ja sehr gern meine Erfahrungen und würde das nun auch gern in diesem Fall tun. Jetzt frage ich mich allerdings folgendes:

(1) Ist es ggf. unklug jetzt bereits über meine Behörden-Geschichten zu bloggen?

(2) Obwohl es so in einer demokratischen Gesellschaft nicht sein sollte; Hätten Veröffentlichungen über meine behördlichen Erfahrungen ggf. Nachteile in meinen aktuell immer noch(!) laufenden Anträgen?

(3) Ist die Tatsache, dass ich mir Frage #2 überhaupt stelle, bereits Armutszeugnis für mein Vertrauen in Behörden? (Welche ja objektiv aufgrund von Sachlage entscheiden sollten.)

(4) Wenn ich jetzt nicht drüber schreibe, wann wäre denn ein “sicherer” Zeitpunkt? Nach Bauschluss, Abnahme oder vielleicht gar niemals? Würde es dann ggf. zukünftige Vorhaben gefährden?

Das war im März und sieht noch heute so aus.

FRAGE: Wie man sieht, bin ich mir nicht sicher in der Sache. Was meint ihr denn so? Rein hypothetisch gesehen.

 

[ENGLISH] P.S.: This post was purposely published in German. Future posts will most like be published in English again.

Spam is getting more – Why?

While back I wrote about this anti-spam plugin I’m using on kozen.de. In recent weeks the number of spam comments that plugin is flagging every day has increased dramatically. Have a look:

Spam comments flagged by Antispam Bee

I find this quite interesting and am wondering why that number goes up? Is it because my blog gets more and more indexed by search engines and therefore more spambots are finding it? For sure, the number of visits per day on kozen.de has not increased significantly.

Perhaps there are a bunch of people who don’t like what I write and they’ve submitted this site to spam databases. Yes that kind a thing exists. Or is it perhaps that the WordPress version I have installed is by a 0.0.1 version below the latest WordPress version. Thus, spam bots are finding it as an attractive target to leave their spam comments?

By the way: Most spam comments are detected as “honeypots“. So just in case one of such comments gets through: Before clicking on a link, please double-check that link in your browser’s status bar (when hovering over the link with your mouse) to ensure it’s the right destination you want to go to.