Ich möchte Amazon Elastic Load Balancing (ELB) verwenden, um Ausfallzeiten bei einem Serverausfall zu reduzieren. Grundsätzlich möchte ich die relevanten DNS-Einträge nicht ändern und auf die DNS-Weitergabe auf der ganzen Welt warten. Ich möchte lediglich den Datenverkehr auf einen anderen Computer umleiten, der meine App bedient.
Fast alle meine Server sind jedoch keine EC2-Instanzen, sondern VPS- oder dedizierte Server eines Unternehmens, das nichts mit Amazon zu tun hat.
Ist es möglich, eine Kombination von Amazon-Diensten (insbesondere ELB) zu verwenden, mit der ich einen Domainnamen auf einen elastischen Load Balancer verweisen und Anforderungen an 1-2 Server außerhalb des Amazon-Netzwerks weiterleiten kann?
Wenn sich die IP des Balancers ändert, funktioniert dies offensichtlich nicht (kann dann keinen Root-Domain-Namen darauf verweisen). Könnten Sie dem Balancer jedoch eine elastische IP zuweisen und dann Ihren Domainnamen darauf verweisen + ihn so konfigurieren, dass Anforderungen an Non-Amazon-PrivateServer1 und Non-Amazon-PrivateServer2 weitergeleitet werden?
quelle
Antworten:
ELB sendet nur Datenverkehr an EC2-Instanzen.
Sie könnten ein paar Nginx EC2-Instanzen hinter einem ELB-Proxy-Verkehr zu Ihren realen Servern haben, oder Sie könnten einfach den einfachen Weg gehen und Ihre DNS-TTL auf etwa 10 Minuten reduzieren, damit Änderungen schneller wiedergegeben werden.
quelle
Zum 31. August 2017 unterstützen die Application Load Balancer zusätzlich zu den Instanz-IDs IP-Adressen als Ziele :
quelle
Warum nicht Route53 mit Gesundheitsprüfungen verwenden?
Zuerst erstellen Sie eine IP-basierte Integritätsprüfung für jeden Ihrer Server. Diese Überprüfungen können einfach sein und nur den HTTP 200-Status für eine bestimmte Anforderung überwachen. oder Sie können erweiterte Überprüfungen erstellen, die nach einer bestimmten Zeichenfolge im Anforderungsergebnis suchen.
Wenn dies noch nicht geschehen ist, erstellen Sie als Nächstes eine gehostete Zone für die Domäne, die Sie in Route53 verwenden. und versorgen Sie den Registrar Ihrer Domain mit den Route53 zugewiesenen DNS-Servern.
Sobald dies erledigt ist, erstellen Sie für jeden Server, für den Sie Anforderungen ausgleichen möchten, einen Datensatz (innerhalb der gerade erstellten gehosteten Zone), indem Sie beispielsweise "Gewichtet", eine kurze TTL (60 oder niedriger) eingeben und "Mit Integritätsprüfung verknüpfen" auswählen : YES 'und wählen Sie die oben erstellte Integritätsprüfung aus, die dem spezifischen Server / der IP entspricht, für die Sie den Datensatz erstellen. Wiederholen Sie dies erneut für jeden Server / jede IP.
Am Ende stehen mehrere Datensatzgruppen mit jeweils 1 IP-Adresse zur Verfügung, die alle derselben Domäne in Route53 zugeordnet sind. Auf DNS-Anforderungen gibt Route53 nun einen von ihnen zurück, basierend auf dem ihnen zugewiesenen Gewicht UND basierend auf dem aktuellen Status jeder Integritätsprüfung. Wenn eine Integritätsprüfung fehlschlägt, wird diese bestimmte IP weggelassen.
Sie können dies auch mit anderen Route53-Datensatztypen tun. Zum Beispiel haben Sie mit 'Failover' 1 oder mehrere primäre IPs und 1 oder mehrere sekundäre IPs. Route53 gibt immer eine der primären IPs zurück, es sei denn, die Integritätsprüfungen für diese schlagen fehl, und wechselt dann zu einer der sekundären.
In Route53 gibt es komplexere Datensatztypen, die auch mit Integritätsprüfungen kombiniert werden können: Latenz, Geolocation, Multivalue. Alles sehr gut erklärt in den AWS-Dokumenten.
quelle