Wie kann eine EC2-Instanz sowohl innerhalb als auch außerhalb des Rechenzentrums adressiert werden?

7

Ich versuche, eine gute Möglichkeit zu finden, meine EC2-Datenbankinstanz sowohl innerhalb als auch außerhalb des Rechenzentrums zu adressieren. Andere EC2-Instanzen müssen in der Lage sein, darauf zuzugreifen, und andere Clients wie pgAdmin müssen möglicherweise auch von außen eine Verbindung herstellen.

Nach meinem Verständnis ist die Verwendung der internen und externen DNS-Namen langfristig nachhaltig, da jeder Neustart zu einer Änderung führt.

Ich denke darüber nach, der Instanz eine elastische IP zuzuordnen und ihr einen A-Datensatz (z. B. db1.mydomain.com) zu geben, den ich dann sowohl innerhalb als auch außerhalb des Rechenzentrums verwenden werde. Weitere Instanzen in derselben Rolle erhalten dieselbe Behandlung und einen DNS-Eintrag von db2.mydomain.com usw.

Gibt es einen saubereren und stabileren Weg, um dieses Ergebnis zu erzielen? Gehen Sie das falsch an? Vorschläge?

Alexandr Kurilin
quelle

Antworten:

13

So wird der Instanz eine elastische IP zugeordnet .

Beachten Sie, dass Ihre elastische IP-Adresse beim Stoppen der Instanz getrennt wird, wenn Sie VPC nicht verwenden, und dass Sie sie beim Neustart der Instanz manuell neu zuordnen müssen.

Michael Hampton
quelle
Würden Sie den neuen DNS-Eintrag nach der Zuordnung der elastischen IP-Adresse sowohl intern als auch extern verwenden, um dies noch einmal zu überprüfen? Würden Sie mir auch empfehlen, VPC für eine einfache 3-4-Instanz-Architektur einzurichten? Ich habe VPC noch nie benutzt und mich gefragt, ob dies auf meiner Skala eine empfohlene Vorgehensweise ist.
Alexandr Kurilin
1
Ich würde die interne IP-Adresse intern und die externe IP-Adresse extern verwenden. Ihre Skalierung spielt für VPC keine Rolle, erleichtert es Ihren Instanzen jedoch, mit Ihren internen IP-Adressen miteinander zu kommunizieren.
Michael Hampton
1
@AlexandrKurilin - Ich stimme Michaels Vorschlag etwas nicht zu: Sie könnten / sollten den neuen DNS-Eintrag aufgrund einer wenig bekannten, aber dennoch recht hilfreichen Funktion der AWS-DNS-Infrastruktur sowohl intern als auch extern verwenden, siehe Öffentliche IP-Adressen und externe DNS-Hostnamen : Wir lösen einen externen DNS-Hostnamen in die öffentliche IP-Adresse der Instanz außerhalb des Netzwerks der Instanz und in die private IP-Adresse der Instanz innerhalb des Netzwerks der Instanz auf.
Steffen Opel
1
@SteffenOpel Dies gilt nicht, wenn er seinen eigenen Hostnamen in seiner eigenen Domain verwendet.
Michael Hampton
1
@MichaelHampton - Ah richtig, ich habe übersehen, dass Alexandr tatsächlich plant, seinen eigenen A-Datensatz zu verwenden (anstatt beispielsweise einen CNAME für den AWS-Datensatz); In diesem Fall ist Ihr Vorschlag offensichtlich genau richtig in Bezug auf das wünschenswerte Routing und die Kostenvorteile, die sich aus der Verwendung der internen IP-Adresse ergeben, wenn möglich. Entschuldigen Sie die schlampige Bewertung der vorliegenden Frage.
Steffen Opel
5

Hier sind die Standard-Best-Practice-Schritte für den flexibelsten, effizientesten und kostengünstigsten Ansatz:

  1. Erstellen Sie eine elastische IP-Adresse und ordnen Sie sie der Instanz zu.

  2. Erstellen Sie einen DNS-Eintrag, bei dem es sich um einen CNAME handelt, der auf den externen DNS-Namen für die elastische IP-Adresse verweist.

  3. Wenn Sie die Instanz stoppen / starten (oder den Namen auf eine neue Instanz verweisen möchten), verknüpfen Sie einfach die elastische IP-Adresse mit der gewünschten Instanz. Keine DNS-Updates erforderlich.

Verwenden Sie den neuen DNS-Namen sowohl innerhalb als auch außerhalb von EC2.

Wenn der DNS-Name außerhalb von EC2 verwendet wird, wird er in die öffentliche IP-Adresse der Instanz (dh die elastische IP-Adresse) aufgelöst.

Wenn der DNS-Name innerhalb von EC2 (in derselben Region wie die Instanz) verwendet wird, wird er in die dann aktuelle private IP-Adresse der Instanz aufgelöst, der die elastische IP-Adresse zugeordnet ist.

Dadurch wird Ihr interner Netzwerkverkehr zwischen den EC2-Instanzen, die auf den Server zugreifen, schneller und billiger. Außerdem können Sie Sicherheitsgruppen verwenden, um den Zugriff auf bestimmte Ports von anderen EC2-Instanzen aus zu ermöglichen.

Ich gehe in diesem Artikel auf weitere Details ein: http://alestic.com/2009/06/ec2-elastic-ip-internal

Wenn Sie VPC verwenden, müssen Sie die elastische IP-Adresse nach dem Stoppen / Starten nicht erneut zuordnen, da sonst alles gleich funktioniert.

Eric Hammond
quelle