0

Ich muss eine AWS-Architektur erstellen, um eine Anwendung zu unterstützen, die zu 100% aktiv sein muss. Um eine Fehlertoleranz zu erreichen, möchte ich eine automatische Skalierungsgruppe mit mindestens 2 Maschinen erstellen. Auf allen laufenden Servern der Auto-Scaling-Gruppe muss ich Daten von einem Drittanbieter-Server (mit Sockets) abrufen, der nur 1 IP in der erlaubten Liste akzeptiert. Alle öffentlichen Benutzer sollten in der Lage sein, eine Websocket-Verbindung zu einem der Server zu öffnen.AWS single public IP & websockets

Gibt es eine Möglichkeit, mit nur einer IP-Adresse eine Verbindung zum Server des Drittanbieters herzustellen? Ich denke, dass NAT eine Möglichkeit wäre, es zu tun, aber dann werden die Benutzer nicht mehr in der Lage sein, sich mit den Servern zu verbinden. Welche Best Practices bieten Websocket-Verbindungen über einen Load Balancer an?

Bitte lassen Sie mich wissen, wenn ich nicht genug Details über den Kontext gebe.

Danke, Gabriel

Antwort

1

Es gibt mehrere Tutorials gibt für WebSockets durch eine ELB verwenden, wenn Sie suchen. Es sieht so aus, als ob der TCP-Lastausgleich verwendet wird, das Verbindungszeitlimit auf dem ELB erhöht wird und SSL auf den Webservern beendet wird.

Solange Sie Websockets über eine ELB verwenden, sehe ich nicht, wie NAT mit den Websockets überhaupt stören würde. Daher sollte die Verwendung eines ELB und die Verwendung eines NAT zur Aktivierung der API-Aufrufe von Drittanbietern funktionieren.

Alternativ, wenn Sie keine NAT verwenden möchten, haben Sie darüber nachgedacht, einen einzelnen Server für die Proxy-Aufrufe dieser API-Aufrufe von Drittanbietern einzurichten? Wenn Sie nur diese API-Aufrufe über einen Proxy-Server senden können, müssen Sie sich keine Gedanken über die NAT-Konfiguration für Ihren anderen Netzwerkverkehr machen. Der Nachteil ist, dass der Proxy-Server zu einem einzigen Fehlerpunkt werden würde.