Ist der Elastic Load Balancer von AWS eine einzige Fehlerquelle?

15

Ich möchte unsere Anwendung auf Amazon Web Services umstellen. Es ist geplant, alle EC2-Instanzen in zwei Verfügbarkeitszonen zu spiegeln. Aufgrund der Datenübertragungskosten werden wir in einer einzigen AWS-Region (Oregon) übernachten.

Die mehreren AZs beseitigen den Single Point of Failure für unsere Anwendungs- und Datenbankserver, aber was ist mit der ELB? Wenn ich eine einzige ELB habe, die den Datenverkehr auf zwei AZs verteilt, wird die ELB dann auch auf diese beiden AZs gehostet?

Was unternimmt Amazon, um zu verhindern, dass der ELB ein SPoF ist?

Chris.B
quelle

Antworten:

13

Ein ELB ist im Kern nur eine Sammlung von EC2-Instanzen. Wenn Sie eine ELB erstellen , geben Sie die Verfügbarkeitszonen an, in denen sich der Load Balancer befinden soll. In diesen Zonen werden dann Instanzen zum Erstellen des Load Balancers erstellt. Sie vermeiden hier einen einzelnen Fehlerpunkt, indem Sie beim Ausführen einer DNS-Suche mehrere IP-Adressen zurückgeben. Beispielsweise:

  • Die DNS-Suche nach website.example.com gibt CNAME website-elb-12345.eu-west-1.elb.amazonaws.com zurück
  • Die Suche gibt auch die Informationen für website-elb-12345.eu-west-1.elb.amazonaws.com zurück. Es wird angegeben, dass die Site die IP-Adresse 1.2.3.4 und die IP-Adresse 2.3.4.5 hat

Es ist Aufgabe des Clients, die IP-Adresse für die Herstellung einer Verbindung auszuwählen. Die IP-Adressen werden von der DNS-Suche nicht immer in derselben Reihenfolge zurückgegeben. Ein Client kann eine alternative IP-Adresse erneut versuchen, wenn er beim ersten Versuch keine Verbindung herstellen kann.

Die TTL in den DNS-Einträgen für eine ELB beträgt nur 60 Sekunden. Sollte eine ELB-Instanz sterben und ersetzt werden, wird die DNS überall ziemlich schnell aktualisiert.

Richard
quelle
Wenn ich die ELB für diese Region erstelle, wird sie dann automatisch auf EC2-Instanzen gehostet, die sich auf dieselben zwei Zonen verteilen, da ich meine Anwendungs-EC2-Instanzen über mehrere Zonen verteilen werde?
Chris.B
Wenn Sie die ELB über die API oder die Konsole erstellen, werden Sie aufgefordert, die Verfügbarkeitszonen auszuwählen, in denen die ELB arbeiten soll. Sie müssen nur die Verfügbarkeitszonen auswählen, in denen sich Ihre Instanzen befinden.
Richard
3

Es könnte tatsächlich ein SPoF sein, aber ich glaube, es wäre nur ein SPoF innerhalb derselben Region.

Aus diesem Grund schlägt AWS vor, die Integritätsprüfung nach Route 53 zu verwenden, um Verkehr zu erkennen und umzuleiten, der zu einer ungesunden ELB führen würde.

Mithilfe der Integritätsprüfungs- und DNS-Failover-Funktionen von Amazon Route 53 können Sie die Verfügbarkeit der Anwendungen verbessern, die hinter Elastic Load Balancers ausgeführt werden. Route 53 fällt von einem Load Balancer aus aus, wenn beim Load Balancer keine fehlerfreien EC2-Instanzen registriert sind oder wenn der Load Balancer selbst fehlerhaft ist .

Quelle: http://aws.amazon.com/elasticloadbalancing/

Alex
quelle
Gibt es eine Möglichkeit, mehr als eine ELB in einer einzelnen Region einzurichten? Haben Sie eine als primäre und eine als Standby? Oder kann Route 53 eine neue ELB-Instanz starten?
Chris.B
Ich glaube nicht, dass Route 53 eine ELB automatisch einrichten kann, Sie müssten in der Entwickleranleitung nachsehen.
Alex
1

Sie können Ihr einzelnes AZ SPoF umgehen, indem Sie eine Autoscaling-Gruppe erstellen. Wenn Ihr einzelnes ELB den X-Faktor nicht erfüllt, wird ein neues ELB erstellt, unabhängig davon, ob es sich um eine Last, eine Reaktionszeit usw. handelt. ELBs sind im Wesentlichen EC2-Instanzen, auf denen proprietärer AWS-Code ausgeführt wird.

Jon Deane
quelle
Ich dachte, dass die ELB automatisch skaliert wird, um Belastungssteigerungen usw. zu bewältigen
Chris.B