Wie verwalten Sie Ihre Instanzen in EC2 und behandeln (z. B.) Failover, wenn Sie ihre eigenen Cluster verwalten (z. B. Amazon Autoscale, Rightscale, Scalr nicht verwenden oder nicht dafür bezahlen)? Ich frage mich, ob die meisten Leute, wie ich vermute, am Ende nur ihre eigenen Skripte gegen die EC2-API schreiben.
Das ist zweifellos unser Ansatz: Entwickeln Sie unseren eigenen Python Boto-basierten Monitoring- / Neustart-Daemon, der außerhalb des Standorts ausgeführt wird, und warten Sie auf UDP-Keep-Alives von unseren Instanzen. Bei einem Fehler erstellen wir eine Momentaufnahme der Volumes, registrieren Images, starten neue Instanzen, löschen alte Volumes und so weiter.
Ab und zu denke ich, dass es beim Hacken unserer Skripte einige Open-Source-Tools geben muss, die sich bereits mit diesen Problemen befassen und die nicht den Einschränkungen von (etwa) Scalr unterliegen, aber ich komme immer von Google zurück mit leeren Händen. (Dinge wie Scalr sind in den unterstützten Sätzen / Versionen / Konfigurationen von Software ziemlich begrenzt und haben spezielle und umständliche Möglichkeiten, diese Setups zu manipulieren.)
Auch das Linux-HA / Pacemaker-Ökosystem (Heartbeat, ldirectord usw.) scheint für EC2 nicht wirklich geeignet zu sein . (Aber dann fand ich das - obwohl ich nicht sicher bin, ob dies wirklich eine qualitativ hochwertige Lösung ist).
RightScale bietet einige großartige Artikel zur Automatisierung des Failovers in EC2. Während die meisten von ihnen Ihnen zeigen, wie Sie mit RightScale selbst vorgehen, sind die Prinzipien allgemein und wahrscheinlich hilfreich für alle, die darüber nachdenken, wie Sie eine Failover-Architektur auf EC2 einrichten.
quelle
Die von Ihnen beschriebenen Probleme (HA, Überwachung von benutzerdefinierten Servern, Dienste für das Abhören von Leitungen) werden im Allgemeinen von einem PaaS-Anbieter behandelt. Rightscale und Scalr wurden bereits in einer früheren Antwort erwähnt und es gibt zusätzliche gute Optionen (siehe hier für einige PaaS-Optionen:
/programming/9542784/looking-for-paas-providers-recommendations )
Sie sollten überlegen, welcher der Anbieter am besten zu Ihren Anforderungen passt.
Hinweis: Ich arbeite für cloudify, einen Open-Source-PaaS-Anbieter.
quelle
Ich habe kürzlich in unserem Engineering-Blog einen Beitrag darüber verfasst, wie ELB in Verbindung mit Auto Scaling verwendet werden kann, um für jede Art von App ein automatisches Failover zu erzielen. Es wird erläutert, wie mithilfe von ELB-Integritätsprüfungen der Status Ihrer App gepingt und Aktionen zur automatischen Skalierung ausgelöst werden können.
quelle
Sie installieren Heartbeat auf beiden Servern. Sie hängen eine elastische IP an den aktiven Server an. Sie konfigurieren ein Skript für das Failover, indem Sie eine API-Anforderung zum Abrufen der elastischen IP initiieren. Sobald der Standby-Server die elastische IP erhalten hat. dauert ca. 30-60 Sekunden) es kann der Master / Aktiv sein.
Ich habe hier nicht die Einzelheiten zu liefern.
quelle
Amazon bietet bereits Elastic Load Balancing an ... Warum das Rad neu erfinden?
quelle