Mein Teamkollege und ich haben gerade ELB in einer VPC mit 2 privaten Subnetzen in verschiedenen Verfügbarkeitszonen implementiert. Der Grund für das Timeout ist, dass für jedes Subnetz, das Sie dem Load Balancer hinzufügen, eine externe IP-Adresse abgerufen wird. (Versuchen Sie 'dig elb-dns-name-here' und Sie werden mehrere IP-Adressen sehen). Wenn eine dieser IP-Adressen einem privaten Subnetz zugeordnet ist, tritt eine Zeitüberschreitung auf. Die IP, die Ihrem öffentlichen Subnetz zugeordnet ist, funktioniert. Da DNS Ihnen möglicherweise eine der IP-Adressen gibt, funktioniert dies manchmal, manchmal tritt eine Zeitüberschreitung auf.
Nach einigem Hin und Her mit Amazon stellten wir fest, dass die ELB nur in "öffentlichen" Subnetzen platziert werden sollte, dh in Subnetzen, die eine Route zum Internet Gateway haben. Wir wollten unsere Webserver in unseren privaten Subnetzen behalten, aber der ELB erlauben, mit ihnen zu sprechen. Um dies zu lösen, mussten wir sicherstellen, dass wir für jede Verfügbarkeitszone, in der wir private Subnetze hatten, ein entsprechendes öffentliches Subnetz hatten. Anschließend haben wir der ELB die öffentlichen Subnetze für jede Verfügbarkeitszone hinzugefügt.
Zuerst schien dies nicht zu funktionieren, aber nachdem wir alles ausprobiert hatten, haben wir die ELB neu erstellt und alles hat so funktioniert, wie es sollte. Ich denke, das ist ein Fehler, oder die ELB war aufgrund so vieler Änderungen nur in einem merkwürdigen Zustand.
Hier ist mehr oder weniger das, was wir getan haben:
- WebServer-1 wird in PrivateSubnet-1 in der Verfügbarkeitszone us-east-1b mit der Sicherheitsgruppe Webserver ausgeführt.
- WebServer-2 wird in PrivateSubnet-2 in der Verfügbarkeitszone us-east-1c mit der Sicherheitsgruppe Webserver ausgeführt.
- Erstellt ein öffentliches Subnetz in der Zone us-east-1b, nennen wir es PublicSubnet-1. Wir haben sichergestellt, dass wir die Routing-Tabelle, die die Route zum Internet-Gateway (ig-xxxxx) enthält, diesem neuen Subnetz zugeordnet haben. (Wenn Sie mit dem Assistenten eine öffentliche / private VPC erstellt haben, ist diese Route bereits vorhanden.)
- Erstellt ein öffentliches Subnetz in der Zone us-east-1c, nennen wir es PublicSubnet-2. Wir haben sichergestellt, dass wir die Routing-Tabelle, die die Route zum Internet-Gateway (ig-xxxxx) enthält, diesem neuen Subnetz zugeordnet haben. (Wenn Sie mit dem Assistenten eine öffentliche / private VPC erstellt haben, ist diese Route bereits vorhanden.)
- Erstellt eine neue ELB und fügt ihr PublicSubnet-1 und PublicSubnet-2 hinzu (nicht das PrivateSubnet-X). Wählen Sie außerdem die Instanzen aus, die in der ELB ausgeführt werden sollen, in diesem Fall WebServer-1 und WebServer-2. Stellen Sie sicher, dass Sie eine Sicherheitsgruppe zuweisen, die eingehende Ports 80 und 443 zulässt. Rufen Sie diese Gruppe elb-group auf.
- Lassen Sie in der Webservergruppe den Datenverkehr von Port 80 und 443 von der Elb-Gruppe zu.
Ich hoffe das hilft!