Blog

AWS PrivateLink für RDS

Bild von Yordan Todorov
Yordan Todorov
DevOps und Cloud-Engineer
27.07.2023
Lesezeit: 4 Minuten.
Zuletzt aktualisiert am: 04.03.2025

Inhaltsübersicht

In diesem Blog werden wir mögliche Wege erörtern, um eine Verbindung zu einer Amazon RDS-Datenbankinstanz, die sich in einem privaten Subnetz in der AWS-Cloud befindet, von einer externen VPC aus herzustellen, ohne den regulären AWS-Endpunkt zu verwenden.

Was ist der AWS PrivateLink?

AWS PrivateLink bietet eine sichere Methode für private Konnektivität zwischen Amazon VPCs, AWS-Services und lokalen Anwendungen im AWS-Netzwerk. Um die Kommunikation mit dem Service von Ihren privaten Subnetzen aus zu ermöglichen, benötigen Sie kein Internet-Gateway, kein NAT-Gerät, keine öffentliche IP-Adresse, keine AWS-Direktverbindung und keine AWS Site-to-Site-VPN-Verbindung. Dadurch können Kunden einfach und sicher auf AWS-Services zugreifen, indem sie das private Netzwerk von Amazon nutzen und die Konnektivität zu AWS-Services über Amazon VPC-Endpunkte herstellen. PrivateLink bietet das gleiche Maß an Sicherheit und Leistung wie virtuelle Netzwerk-Appliances oder benutzerdefinierte Algorithmen zur Überprüfung des Datenverkehrs.

AWS PrivateLink

Wenn wir einen Schnittstellen-VPC-Endpunkt für einen Service in unserer VPC erstellen, um PrivateLink zu nutzen, generieren wir ein Elastic Network Interface (ENI) mit einer privaten IP-Adresse im Subnetz, das als Eingangspunkt für den für den Service bestimmten Verkehr dient. Amazon PrivateLink-Service-Endpunkte werden in unseren VPCs als ENIs mit privaten IPs angezeigt.

Warum brauchen wir den AWS PrivateLink für RDS?

AWS PrivateLink für RDS

Der Amazon Relational Database Service (RDS) ist ein verwalteter SQL-Datenbankdienst, der von Amazon Web Services (AWS) bereitgestellt wird. Amazon RDS unterstützt eine Reihe von Datenbank-Engines zum Speichern und Organisieren von Daten. Wenn wir einen neuen RDS in unserer AWS-Verwaltungskonsole erstellen, erhalten wir einen Endpunkt, der für die Verbindung mit der Datenbankinstanz verwendet werden kann:

Wenn die Datenbankinstanz in einem privaten Teilnetz bereitgestellt wird, können wir auf den Endpunkt von der VPC aus zugreifen, in der der RDS erstellt wurde. Was passiert jedoch, wenn wir eine Verbindung zu einer Datenbank von einem anderen AWS-Netzwerk aus herstellen möchten? In diesem Fall gibt es mehrere Möglichkeiten.

  • VPC-Peering
  • VPN-Verbindung
  • AWS PrivateLink

VPC-Peering und VPN-Verbindungen sind gängige Lösungen; in den meisten Fällen lassen sie jedoch den gesamten Datenverkehr zu, und es kann zu Komplikationen bei der Konfiguration, überlappenden CIDR-Blöcken, Sicherheit usw. kommen.

Wenn wir nur Datenbankverbindungen zulassen wollen, ist AWS PrivateLink sehr praktisch und einfach zu konfigurieren.

Komponenten

In diesem Lernprogramm wird erklärt, wie man eine private AWS RDS-Datenbankinstanz in Konto A von einer externen AWS VPC in Konto B aus verbindet.

Beginnen wir mit den Komponenten, die wir zum Aufbau einer Lösung benötigen.

  • VPC im Konto A
VPC im A-Konto
  • VPC in Konto B
VPC in Konto B
  • RDS in Konto A - für dieses Tutorial werden wir Aurora MySQL Serverless verwenden und sicherstellen, dass es sich in privaten Subnetzen in VPC-A befindet
RDS in A-Konto
  • Network Load Balancer (NLB) in Konto A mit der RDS-Instanz als Zielgruppe
  • VPC-Endpunktdienst, der auf den NLB in Konto A verweist
  • VPC-Endpunkt in Konto B (VPC-B), der auf den VPC-Endpunktdienst in Konto A verweist.

Konfiguration

VPC SCHEMA

VPC

Hier haben wir eine Standardkonfiguration mit privaten Subnetzen und NAT-Gateways verwendet. Internet-Gateways (IGW) und öffentliche Subnetze sind nicht erforderlich, haben aber keinen Einfluss auf die Funktionalität, so dass Sie sie je nach Anwendungsfall einrichten können.

RDS

RDS muss sich in privaten Subnetzen befinden, und der öffentliche Zugang sollte deaktiviert sein. Wir haben keine Verbindung über die von AWS erstellten Standard-Endpunkte hergestellt. Ein wichtiger Teil ist, die CIDR von VPC-B in der RDS-Sicherheitsgruppe in Konto A zuzulassen:

NLB

Wir müssen eine Zielgruppe mit der privaten IP-Adresse der Datenbankinstanz erstellen und dann den Netzwerk-Loadbalancer damit konfigurieren.

  • Zielgruppeneinstellungen

Typ: IP-Adresse

Name: RDS-A

VPC: VPC-A

Protokoll: TCP

Anschluss: 3306

Wenn ein tatsächliches Ziel hinzugefügt wird, muss die private IP-Adresse der RDS-Instanz verwendet werden. Dies kann mit dem Befehl nslookup auf dem defaulVPC in A accountt durchgeführt werden:

Unsere Zielgruppe sieht wie folgt aus:

Zielgruppe
  • NLB-Konfiguration

Typ: Netzwerk-Lastausgleicher

Name: RDS-A-NLB

VPC: VPC-A

Schema: Intern

Zuordnungen: Wählen Sie alle Zonen aus und weisen Sie die privaten Unterpunkte zu.

Listener-Protokoll: TCP

Listener-Port: 3306

Standardaktion des Hörers: Weiterleiten an RDS-A (stellen Sie sicher, dass Sie

Ihre Zielgruppe)

Die NLB sieht wie folgt aus:

NBL

Es ist zu beachten, dass Port 3306 spezifisch für MySQL ist. Wenn Sie einen anderen Datenbanktyp verwenden, stellen Sie bitte sicher, dass der angegebene Port eingestellt ist.

VPC-Endpunkt-Dienst

Hier müssen wir nur einen VPC-Endpunktdienst in Konto A erstellen und ihn auf unseren Netzwerk-Loadbalancer (RDS-A-NLB) verweisen. Es wird empfohlen, die Option "Akzeptanz erforderlich" anzukreuzen.

Wenn ein Dienst erstellt wird, sollte er ausgewählt und zum Abschnitt Auftraggeber zulassen navigiert werden. Dort müssen Sie den ARN des Benutzers auf dem anderen Konto (Konto B) zulassen:

ARN des Benutzers

Bitte stellen Sie sicher, dass die richtige Konto-ID und die richtigen Benutzer eingestellt sind.

Im obigen Screenshot ist auch der Name des Endpunktdienstes zu sehen. Dieser wird später für die Erstellung des VPC-Endpunkts benötigt.

VPC-Endpunkt

Dies ist der Endpunkt, den wir in Konto B erstellen müssen (von dem aus wir auf die Datenbank zugreifen werden). Bitte stellen Sie sicher, dass Sie sich in der gleichen AWS-Region befinden. Wir müssen auch die richtige VPC (VPC-B) und die Subnetze angeben.

VPC (VPC-B)

Wenn der Endpunkt erstellt ist, kehren Sie zum VPC-Endpunktdienst in Konto A zurück und akzeptieren die Verbindung:

VPC A

Unser VPC-Endpunkt sollte danach verfügbar sein.

VPC

Wir können dann einfach den DNS-Namen des VPC-Endpunkts kopieren und ihn für Datenbankverbindungen verwenden.

DNS-VPC-Datenbanken

Und das war's auch schon! Jetzt können wir unsere Datenbank in Konto A ganz einfach von Konto B aus über unseren neuen Endpunkt verbinden.

Schlussfolgerung

AWS PrivateLink ist eine hervorragende Möglichkeit, bestimmte Ressourcen privat und sicher zu verbinden, wenn man nicht den gesamten Netzwerkverkehr zulassen möchte. Es kann helfen, sichere, skalierbare und hochverfügbare Architekturen für Services auf AWS aufzubauen. Berücksichtigen Sie die Konnektivitätsanforderungen Ihrer Anwendung, bevor Sie eine Amazon VPC-Konnektivitätsarchitektur für interne und externe Kunden wählen.

2 Antworten

  1. Ihr Artikel lieferte wichtige Informationen und fundierte Kenntnisse zu einem Thema, das mich interessiert.
    Ich habe ein Problem, können Sie mir helfen?
    Ich habe die Schritte im Artikel befolgt, aber ich bekomme keine Verbindung zu RDS aws in VPC private A von EC2 in VPC private B.
    Ich erstelle VPC Endpunkt im gleichen Konto, ist das ein Problem?
    Ich freue mich auf Ihre Antwort

    1. Hallo Long Vo,

      Ich freue mich über Ihr Interesse und werde mein Bestes tun, um Ihnen zu helfen, aber ich benötige zunächst einige Informationen. Könnten Sie die folgenden Fragen beantworten?

      1. Haben Sie einen Network Load Balancer (NLB) mit den internen Datenbank-IPs als Ziele konfiguriert. Wenn ja, werden die Ziele in Ihrer AWS-Konsole als gesund angezeigt?
      2. Überschneiden sich die CIDRs der VPCs?
      3. Wenn Sie versuchen, PrivateLink im Zielkonto einzurichten, können Sie den Quell-VPC-Endpunktservice sehen? Falls nein, bedenken Sie bitte, dass sich beide VPCs in derselben AWS-Region befinden müssen.
      4. Haben Sie bei der Konfiguration des VPC-Endpunktdienstes den Zugriff zwischen den Konten zugelassen?

      Dies sind in der Regel die häufigsten Fehler, aber jede zusätzliche Information ist hilfreich. Sie können uns einige Screenshots mit Ihrer aktuellen Konfiguration oder Fehlermeldungen schicken, die Sie erhalten.

Eine Antwort hinterlassen

Newsletter für Tech-Experten

Signal, kein Rauschen –

direkt in Ihren Posteingang.

Schließen Sie sich mehr als 12.000 Ingenieuren und Führungskräften aus der Wirtschaft an, die Praxisberichte zu SRE, DevOps und Cloud-nativer Zuverlässigkeit erhalten.

Tech-Blogs mit tiefgehenden Einblicken und Fallstudien
Neue Technologien, sorgfältig ausgewählt

Ihre geschäftliche E-Mail-Adresse

Wir gehen respektvoll mit Ihrem Posteingang um. Lesen Sie unsere Datenschutzerklärung.

Mehr Beiträge

AI SRE Agent: Die ersten 20 Minuten eines Vorfalls automatisieren Es ist 3 Uhr morgens. Ein Alarm wird ausgelöst. Sie klappen Ihren Laptop auf, und die nächsten zwanzig Minuten verlaufen wie immer...
Lesen
Bei der Arbeit mit Terraform sollte das Standard-Meta-Argument zum Erstellen von Ressourcen fast immer „for_each“ lauten – insbesondere bei Infrastruktur, die voraussichtlich lange bestehen bleibt und sich weiterentwickelt...
Lesen
Kontakt aufnehmen
ITGix bietet Ihnen fachkundige Beratung und maßgeschneiderte DevOps-Services, um Ihr Unternehmenswachstum zu beschleunigen.
Newsletter für
Technik-Experten
Schließen Sie sich 12.000+ Geschäftsführern und Ingenieuren an, die Blogs, e-Books und Fallstudien Fallstudien über neue Technologie erhalten.