Ich bin relativ neu bei Amazon Web Services und versuche mir ein Bild davon zu machen, wie Elastic Load Balancing im Kontext meines WordPress-Setups funktioniert. Darüber hinaus möchte ich einige Ratschläge zur vorgeschlagenen Infrastruktur.
Meine ursprünglich vorgeschlagene Infrastruktur lautet wie folgt:
- 1x EC2 m1.small - Ubuntu 12.04.3 LTS 64bit (mit 1 EBS-Volume)
- 1x EC2 t1.micro - Ubuntu 12.04.3 LTD 64bit (mit oder ohne EBS-Volume?)
- 1x Micro RDS-Instanz - MySQL 5.6.13
EC2 Auf meinem aktuellen EC2 (t1.micro) wird ein LAMP-Stack ausgeführt und für die Ausführung von WordPress konfiguriert.
Ich möchte dies mit einer m1.small-Instanz ausgleichen, die einen Klon der t1.micro-Instanz ausführt.
Die aktuellen Unbekannten für mich sind wie folgt:
- Wie verwaltet ein Setup mit Lastenausgleich Änderungen, die am WordPress-CMS über Instanzen hinweg vorgenommen wurden? Muss ich die AMIs jedes Mal aktualisieren, wenn eine Änderung in WordPress vorgenommen wird?
- Meine Website ist eine E-Commerce-Website. Gibt es Auswirkungen auf ein Setup mit Lastenausgleich? Gibt es eine Möglichkeit, dass Befehle auf einer Instanz und nicht auf einer anderen existieren?
Es mag eine ziemlich dumme Frage sein, aber ich gehe davon aus, dass einige Probleme nicht relevant sind, da die Infrastruktur auf eine Datenbank verweist.
Gibt es eine bessere Möglichkeit, die Infrastruktur für den Lastausgleich einzurichten? Das heißt, ich sollte in Betracht ziehen, Amazon S3 zum Speichern aller meiner Dateien zu verwenden und Cloudfront als CDN zu verwenden, um einen effizienten Betrieb sicherzustellen und Probleme bei der Replikation von EBS-Dateien zu beheben.
Jede Hilfe sehr geschätzt.
Lloyd
quelle
Antworten:
Staatenlose Web-Apps sind schwierig.
Wie Sie wissen, hängt WordPress ziemlich stark davon ab, dass Dinge auf die Festplatte geschrieben werden. Hier ist die vorgeschlagene Infrastruktur
Nun der schwierige Teil.
Vergessen wir für eine Sekunde die Aktualisierungen der Codebasis und schauen wir uns an, wie man das Ganze zustandslos macht. Sie sollten Folgendes tun, um dieses Objekt horizontal skalierbar zu machen:
Dies kümmert sich um das Setup
So stellen Sie neue Änderungen bereit
Sie werden Ihre Mikroinstanz für alle zukünftigen Änderungen an der WordPress-Installation verwenden. Dazu gehören Dinge wie das Aktualisieren von WordPress, das Aktualisieren Ihrer Themendateien und so ziemlich alles, was auf der Festplatte gespeichert ist.
Sie müssen zwei Skripte erstellen:
Die erste wird verwendet, um die Änderungen in der Autoscaling-Gruppe bereitzustellen. Es sollte Folgendes tun:
Das zweite Skript wird auf den Instanzen der automatisch skalierenden Gruppe ausgeführt und vom ersten Skript ausgelöst sowie ausgeführt, wenn die Instanz zum ersten Mal initialisiert wird. Es sollte Folgendes tun:
Jedes Mal, wenn Sie Änderungen an der Systemdatei vornehmen, sollten Sie das oben beschriebene Bereitstellungsskript ausführen. Dadurch werden die Änderungen an alle Produktionsinstanzen weitergegeben.
Erstellen Sie nun eine Basis-AMI für die Produktionsinstanzen. Es sollte der Mikroinstanz sehr, sehr ähnlich sein, WordPress sollte jedoch nicht installiert werden. Sie verwenden Benutzerdaten, die beim Start an die ec2-Instanzen übergeben werden, um das zweite Skript oben auszuführen und die neueste Version der Codebasis von der Mikroinstanz herunterzuladen.
Eine letzte Sache ... Wenn Sie irgendeine Form von E-Commerce ausführen, benötigen Sie ein SSL-Zertifikat, das auf dem Load Balancer installiert ist. Schauen Sie sich den Leitfaden hier an: http://www.nczonline.net/blog/2012/08/15/setting-up-ssl-on-an-amazon-elastic-load-balancer/
quelle