EBS / EFS-Plattenspeicher für die Notfallwiederherstellung einrichten

451
ziggy

Ich denke darüber nach, wie ich ein paar Umgebungen in AWS optimal einrichten kann. Ich möchte zwei Server einrichten:

  • Anwendungsserver (Ausführen von Webanwendungen und REST-Diensten)
  • Tools-Server (mit mehreren ETL-Jobs)

Das Endergebnis sollte zwei Anwendungsserver und zwei Toolserver sein (dh ein Appserver / Toolserver in jeder Verfügbarkeitszone).

  • Alle Umgebungen sprechen mit derselben Datenbank
  • Jede Umgebung verfügt über einen eigenen EBS-Speicher
  • Ein einzelner externer gemeinsam genutzter Speicher (EFS), auf den von jeder der vier Umgebungen aus zugegriffen werden kann.

Ich bin etwas verwirrt bezüglich der Einrichtung des Speichers. Ziel ist es sicherzustellen, dass bei Verlust einer EC2-Instanz keine Daten verloren gehen. Um dies zu erreichen, möchte ich es so einrichten, dass Code auf dem lokalen Speicher (EBS) bereitgestellt wird und dynamischer Inhalt auf dem externen freigegebenen Speicher (EFS) gespeichert wird.

Alle Anwendungen befinden sich in einem Ordner mit der folgenden Struktur

├─ application ├─ bin ├─ lib ├─ config ├─ logs ├─ data ├─ processed ├─ failed  

In einer EC2-Instanz würde ich gerne Config, Logs und Datenordner behalten. Die anderen Ordner (bin und lib) enthalten nur Binärcode, der von GIT neu erstellt werden kann. Um dies zu erreichen, denke ich an die folgende Speicherung

EBS auf Appserver 1 und Appserver 2

├─ applications ├─ finance ├─ appname1 ├─ bin ├─ lib ├─ config --> /storage/finance/config ├─ logs --> /storage/finance/logs ├─ data --> /storage/finance/date 

Die letzten drei sind symbolische Links zu Ordnern im externen Speicher.

EFS (Shared Storage)

├─ storage ├─ finance ├─ appname1 ├─ config ├─ logs ├─ data 

Die obige Struktur kann ein Albtraum der Wartung sein, aber ich kann nicht an andere Alternativen denken. Mit dem obigen Ansatz wird Code auf jedem Anwendungsserver bereitgestellt, die Daten werden jedoch von zwei Anwendungsservern gemeinsam genutzt. Wenn ein Anwendungsserver in einer AV-Zone ausfällt, ist der andere weiterhin funktionsfähig.

Andere Optionen, die ich in Betracht gezogen habe, umfassen alles auf EBS-Speicher zu haben und auf Backups / Images zu setzen. Dies funktioniert nicht, da die Konfigurationsdateien dynamisch sind und das Image möglicherweise nicht immer die neuesten Daten enthält.

Beim Lesen von EFS-Speicher sieht es so aus, als könnte das Schreiben langsam sein, was mich etwas beunruhigt. Fragen:

  • Gibt es Alternativen zu den oben genannten?
  • Gibt es andere Nachteile bei dem obigen Ansatz?
  • Gibt es eine Möglichkeit, dass ich alles (Code + Daten) auf lokalem EBS-Speicher haben kann und trotzdem im Notfall (auf den zweiten) wiederherstellen kann.

Danke im Voraus

0
Haben Sie eine Amazon-Dokumentation zur Hochverfügbarkeit durchgesehen? Wenn ja, verweisen Sie bitte auf welche, und beschränken Sie Ihre Frage auf eine bestimmte Frage. Es gibt keine Möglichkeit, auf alle möglichen Szenarien einzugehen, die in Ihrer spezifischen Umgebung existieren könnten, und Amazon hat Ihnen bereits die Plattform zur Bereitstellung hochverfügbarer Dienste bereitgestellt. Haben Sie beispielsweise in Betracht gezogen, dass EBS-Speicher für das AZ bereits hoch verfügbar ist? Ich bin mir nicht sicher, wie man diese Frage so beantworten kann, wie sie ist. Appleoddity vor 7 Jahren 0
Was ist Ihr RPO für die Daten auf den EBS-Platten? Grundsätzlich ist es wichtig, wie viele Daten Sie verlieren möchten - z. B. keine, 1 Stunde, 24 Stunden usw. Dies wird die Lösung wahrscheinlich antreiben. Tim vor 7 Jahren 0

1 Antwort auf die Frage

0
Ina Kahn

Beim Durchsehen der AWS-Seiten für EFS wird erwähnt, dass "jedes Amazon EFS-Dateisystemobjekt (dh Verzeichnis, Datei und Verknüpfung) redundant in mehreren Availability Zones gespeichert wird." Ähnliche Formulierung auf der EBS-Seite. Es gibt also etwas Redundanz. Hier ist ein Amazon PDF mit hoher Verfügbarkeit.

Bei EC2 verringert die Verwendung mehrerer Verfügbarkeitszonen das Risiko. Ich würde jede Instanz in eine separate Verfügbarkeitszone setzen. Das PDF empfiehlt die Verwendung von Schnappschüssen von EBS mit einer Standby-EC2-Instanz für HA. Snapshots stehen in Regionen zur Verfügung, so dass sie für die Notfallwiederherstellung leicht zugänglich sind. Auf diese Weise würden Sie Ihre Frage beantworten, wie Sie alles in AWS EBS einfügen können. Es ist ziemlich einfach, EBS-Volumes zwischen den Regionen zu kopieren, um Redundanz hinzuzufügen und alles synchron zu halten. Sie könnten damit über eine Produktionsumgebung, eine Standby-Umgebung und eine Ersatzumgebung verfügen, die im Fehlerfall schnell hochgefahren werden kann, sodass Sie fast immer zwei Umgebungen zur Verfügung haben.

Sehen Sie sich das PDF und den Link sowie die Amazon-Dokumente zur Hochverfügbarkeit an und erfahren Sie, was für Ihre geschäftlichen Anforderungen und Ihre Mitarbeiter am besten geeignet ist.