ich habe viele EC2-Instanzen, denen jeweils derzeit eine öffentliche IPv4-Adresse zugeordnet ist:
Beispiel | Öffentliche IP | DNS |
---|---|---|
juno |
7.8.9.10 |
ec2-1-2-3-4.compute-1.amazonaws.com |
ceres |
7.8.9.11 |
ec2-1-2-3-5.compute-1.amazonaws.com |
venus |
7.8.9.12 |
ec2-1-2-3-6.compute-1.amazonaws.com |
Ich habe mein DNS derzeit so konfiguriert, dass Subdomains auf jede Instanz wie folgt verweisen:
Subdomäne | CNAME |
---|---|
juno |
ec2-1-2-3-4.compute-1.amazonaws.com |
ceres |
ec2-1-2-3-5.compute-1.amazonaws.com |
venus |
ec2-1-2-3-6.compute-1.amazonaws.com |
So weit, so gut. Dieses Setup funktioniert. Es hat jedoch den Nachteil, dass pro Instanz eine öffentliche IPv4-Adresse erforderlich ist, und wie allgemein bekannt ist, werden IPv4-Adressen immer seltener und ihre Verwendung wird zunehmend teurer.
Wie lässt sich die Anzahl der von diesem Servercluster verbrauchten IPv4-Adressen am besten reduzieren?
Antwort1
Ein Reverse-Proxy wie ein ALB würde gut funktionieren. Er hat wahrscheinlich eine öffentliche IP pro AZ, kann aber Datenverkehr für viele Domänen akzeptieren und an die richtige Instanz senden. Sie könnten auch eine Nginx-Instanz verwenden, aber Dienste werden im Allgemeinen Servern vorgezogen.
Ich habe sechs persönliche Domänen, die in AWS gehostet werden, und keine IPv4-Adressen. Meine EC2-Instanzen haben IPv6-Adressen, der DNS für die Domänen verweist auf CloudFlare. CloudFlare kontaktiert den Server über IPv6 und macht die Website über IPv4 verfügbar. Ich hatte keine Probleme, es war nur ein wenig Experimentieren mit der Nginx-Konfiguration nötig, bis es funktionierte. Für meine persönlichen Websites verwende ich keinen Load Balancer, für kommerzielle Websites würde ich das wahrscheinlich tun.