So richten Sie ein Website-Failover zum S3-Bucket in AWS ein

Failover ist ein Fachbegriff für die automatische Umschaltung vom Primärserver auf einen Standby-Server (Sekundärserver) bei Ausfall des Primärservers (Hauptserver). Ein Server, auf dem eine Website gehostet wird, kann für a ausfallen Reihe von Gründen von Betriebssystemabstürzen bis hin zu Konfigurationsproblemen. Ein Failover-(Sicherungs-)Server stellt sicher, dass Benutzer der Anwendung keine Ausfallzeit erleben, wenn solche Probleme auftreten.

Dieser Artikel zeigt, wie Sie mit einem S3-Bucket in AWS ein Failover zu einer statischen Website einrichten.

Zur Verdeutlichung wird in der folgenden Grafik dargestellt, was wir erreichen wollen. Abb. 1 Einfache Failover-Architektur

Inhaltsverzeichnis

Wie im obigen Diagramm gezeigt, möchten wir vom Hauptserver (der in diesem Fall nur eine EC2-Instanz ist) zum sekundären Server (S3-Bucket) wechseln, wenn die Zustandsprüfung fehlschlägt. Der Datenverkehr wird zum Hauptserver umgeleitet, wenn der primäre Server wieder fehlerfrei ist.

Notiz:

Richten Sie den Hauptserver (Primärserver) ein

Für die Zwecke dieses Artikels verwenden wir nginx zum Hosten unserer statischen Site auf der EC2-Instanz auf AWS. Der Hauptserver muss nicht unbedingt eine statische Site hosten oder dieselbe Anwendung wie die des Failover enthalten. Der primäre Server kann so groß wie ein Cluster von EC2-Instances hinter einem Load Balancer sein. Wir halten es einfach.

Schritte:

sudo apt-get update
  • Installieren Sie den nginx-Server auf der EC2-Ubuntu-Instanz
sudo apt-get install nginx -Y
  • Navigieren Sie zu www Verzeichnis und erstellen Sie ein Verzeichnis für die statische Website

Hinweis: devito.ga kann ein beliebiger Name sein. Ich wähle es nur wegen seiner Konsistenz mit meinem Domainnamen (www.devito.ga)

  • Erstellen Sie die folgenden Unterordner innerhalb der devito.ga Mappe
cd devito.ga
sudo mkdir public
sudo mkdir logs
  • Navigieren Sie in den öffentlichen Ordner und klonen Sie die statische Website aus dem Github-Repo
cd public sudo git clone 
  • Kopieren Sie den Inhalt des Klon-Repos (dh den Devito-Ordner) in den öffentlichen Stammordner
sudo cp -R devito/* .
  • Entfernen Sie den geklonten Projektordner (devito)
sudo rm -r devito/ *
sudo vi /etc/nginx/sites-available/devito.ga

Hinweis: devito.ga kann ein beliebiger Name sein

  • Fügen Sie diese Konfiguration in die Datei ein

Hinweis: Der Servername sollte durch Ihren Namen ersetzt werden
Außerdem sollten access_log, error_log und root mit dem Pfad in Ihrer EC2-Instance übereinstimmen

  • Nginx stellt nur Inhalte von Websites bereit, die “aktiviert” wurden, daher erstellen wir einen symbolischen Link
ln -s /etc/nginx/sites-available/devito.ga /etc/nginx/site-enabled/devito.ga
  • Ändern Sie die Standard-Site, auf die nginx verweist
sudo vi /etc/nginx/sites-available/default
  • Ändern Sie den Wert von root von:

Hinweis: devito.ga sollte durch den Namen des Ordners ersetzt werden, in dem sich Ihre Website befindet

/etc/init.d/nginx restart

Sekundärserver einrichten

Wir werden unseren S3-Bucket verwenden, um eine statische Website zu hosten, die als sekundärer Server dient. Wenn die EC2-Instance ausfällt und die Gesundheitsprüfung, die wir im nächsten Abschnitt erstellen werden, dies erkennt, wird der Datenverkehr an den sekundären Server weitergeleitet (dh die statische Website, die auf dem S3-Bucket gehostet wird).

Erstellen Sie einen S3-Bucket mit der URL Ihrer Website, z www.devito.ga

Auswählen Statisches Website-Hosting und dann prüfen Verwenden Sie diesen Bucket, um eine Website zu hosten

Laden Sie Ihre statische Website in den S3-Bucket hoch

  • Wählen Sie alle Dateien und Ordner aus und machen Sie sie öffentlich

Richten Sie Route 53 und Zustandsprüfungen ein

  • Navigieren Sie auf AWS zu Route 53 und klicken Sie auf die gehosteten Zonen
  • Klicken Sie auf Erstellen Gehostete Zone

Geben Sie Ihren Domainnamen ein, zB www.devito.ga

Kopieren Sie den erstellten NS-Eintrag der gehosteten Zone, der in Route 53 generiert wurde, und fügen Sie ihn in die Freenom-Nameserver oder woher Sie Ihren Domainnamen haben, wie im Diagramm unten gezeigt

Ein … kreieren Gesundheitskontrolle

  • Konfigurieren Sie die Zustandsprüfung anhand des im Bild unten gezeigten Beispiels
  • Die IP-Adresse sollte die Ihrer EC2-Instance sein und der Domänenname sollte derjenige sein, auf den wir unseren Route 53 NS-Eintrag verwiesen haben.

Nach dem Erstellen der Zustandsprüfungen sollte ihr Status grün sein, was bedeutet, dass sie fehlerfrei ist.

Erstelle ein Ein Rekord in der gehosteten Zone, die Sie oben erstellt haben.

  • Der Name sollte leer sein, da wir einen A-Eintrag erstellen
  • Fügen Sie die IP der EC2-Instance, die Ihre Website hostet, in die ein Wert Sektion
  • Unter dem Routing-Richtlinie auswählen Ausfallsicherung
  • Das Failover-Eintragstyp sollte sein Primär
  • Prüfen Ja unter dem Assoziieren Sie mit Health Check Optionen, und wählen Sie dann die zuvor erstellte Zustandsprüfung aus.
  • Ein anderes erstellen Ein Rekord und verweisen Sie auf die statische Website im S3-Bucket.
    • Das Feld Name sollte leer sein
    • Wählen Sie zu seinder Alias ​​aus Ja
    • Wählen Sie unter Alias-Ziel den Endpunkt der S3-Website aus (d. h. den Namen des S3-Buckets, der unsere statische Website hostet).
    • Wählen Sie das Routing-Richtlinie sein Ausfallsicherung
    • Wählen Sie das Failover-Eintragstyp zu Sekundär
    • Es ist nicht erforderlich, die Zustandsprüfung für dieses sekundäre Failover auszuwählen, da es uns nur dient, wenn der Hauptserver ausgefallen ist

Mit diesen Einstellungen ist unsere Website fehlertolerant konfiguriert. Wir werden immer einen Backup-Server haben, der den Datenverkehr verarbeitet, wenn der Hauptserver ausfällt.

Nachdem wir nun mit der Einrichtung fertig sind, sehen wir beim Besuch des Domainnamens (z. B. www.devito.ga) die Website, die vom Hauptserver bereitgestellt wird.

Wenn wir die EC2-Instance stoppen, sollte unsere Zustandsprüfung fehlerhaft werden und der Datenverkehr zum S3-Bucket umgeleitet werden Beenden Sie die EC2-Instanz

Integritätsprüfung schlägt fehl

Website, die aus dem S3-Bucket bereitgestellt wird

Fazit

Und das ist es. Wir haben unser einfaches Failover-Setup. Dieses Konzept kann auf eine komplexere Netzwerkarchitektur angewendet werden.

Stellen Sie sicher, dass Sie alle Ressourcen löschen, die Sie für diesen Tutorial-Zweck auf AWS erstellt haben, andernfalls werden Sie damit belastet, wenn Sie es laufen lassen.

Similar Posts

Leave a Reply

Your email address will not be published.