Verwaltung und Verbindung zu Amazon Aurora DSQL-Clustern mithilfe AWS PrivateLink - Amazon Aurora DSQL

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwaltung und Verbindung zu Amazon Aurora DSQL-Clustern mithilfe AWS PrivateLink

Mit AWS PrivateLink for Amazon Aurora DSQL können Sie Amazon VPC-Schnittstellenendpunkte (Schnittstellenendpunkte) in Ihrer Amazon Virtual Private Cloud bereitstellen. Auf diese Endpunkte kann direkt von Anwendungen aus zugegriffen werden, die sich vor Ort befinden Direct Connect, über Amazon VPC und/oder auf andere Weise AWS-Region über Amazon VPC Peering. Mithilfe von Endpunkten AWS PrivateLink und Schnittstellen können Sie die private Netzwerkkonnektivität zwischen Ihren Anwendungen und Aurora DSQL vereinfachen.

Anwendungen in Ihrer Amazon VPC können über Amazon VPC-Schnittstellenendpunkte auf Aurora DSQL zugreifen, ohne dass öffentliche IP-Adressen erforderlich sind.

Schnittstellenendpunkte werden durch eine oder mehrere elastische Netzwerkschnittstellen (ENIs) repräsentiert, denen private IP-Adressen aus Subnetzen in Ihrer Amazon VPC zugewiesen wurden. Anfragen an Aurora DSQL über Schnittstellenendpunkte bleiben im AWS Netzwerk. Weitere Informationen darüber, wie Sie Ihre Amazon VPC mit Ihrem On-Premises-Netzwerk verbinden, finden Sie im Direct Connect -Benutzerhandbuch und im AWS Site-to-Site VPN -VPN-Benutzerhandbuch.

Allgemeine Informationen zu Schnittstellenendpunkten finden Sie unter Zugreifen auf einen AWS Service mithilfe eines Amazon VPC-Schnittstellenendpunkts im AWS PrivateLinkBenutzerhandbuch.

Arten von Amazon VPC-Endpunkten für Aurora DSQL

Aurora DSQL erfordert zwei verschiedene Arten von AWS PrivateLink Endpunkten.

  1. Verwaltungsendpunkt – Dieser Endpunkt wird für Verwaltungsvorgänge wie, get, create, update, delete und list auf Aurora SQL-Clustern verwendet. Siehe Verwaltung von Aurora DSQL-Clustern mit AWS PrivateLink.

  2. Verbindungsendpunkt – Dieser Endpunkt wird für die Verbindung zu Aurora DSQL-Clustern über PostgreSQL-Clients verwendet. Siehe Mit AWS PrivateLink eine Verbindung zu Aurora DSQL-Clustern herstellen.

Überlegungen zu Amazon VPC gelten AWS PrivateLink für Aurora DSQL. Weitere Informationen finden Sie im AWS PrivateLink Handbuch unter Zugreifen auf einen AWS Dienst über eine Schnittstelle, VPC-Endpunkt und AWS PrivateLink Kontingente.

Sie können die AWS Command Line Interface oder AWS Software Development Kits (SDKs) verwenden, um Aurora DSQL-Cluster über Aurora DSQL-Schnittstellenendpunkte zu verwalten.

Erstellen eines Amazon VPC-Endpunkts

Informationen zum Erstellen eines Amazon VPC-Schnittstellenendpunkts finden Sie unter Erstellen eines Amazon VPC-Endpunkts im AWS PrivateLink Handbuch.

aws ec2 create-vpc-endpoint \ --region region \ --service-name com.amazonaws.region.dsql \ --vpc-id your-vpc-id \ --subnet-ids your-subnet-id \ --vpc-endpoint-type Interface \ --security-group-ids client-sg-id \

Um den standardmäßigen regionalen DNS-Namen für Aurora DSQL-API-Anfragen zu verwenden, deaktivieren Sie beim Erstellen des Aurora DSQL-Schnittstellenendpunkts nicht die private DNS-Option. Wenn private DNS aktiviert ist, werden Anfragen an den Aurora DSQL-Dienst, die aus Ihrer Amazon VPC gestellt werden, automatisch zur privaten IP-Adresse des Amazon VPC-Endpunkts aufgelöst – und nicht zum öffentlichen DNS-Namen. Wenn private DNS aktiviert ist, werden Aurora DSQL-Anfragen, die innerhalb Ihrer Amazon VPC gestellt werden, automatisch zum Amazon VPC-Endpunkt aufgelöst.

Wenn privates DNS nicht aktiviert ist, verwenden Sie die --endpoint-url Parameter --region und mit AWS CLI Befehlen, um Aurora DSQL-Cluster über Aurora DSQL-Schnittstellenendpunkte zu verwalten.

Auflisten von Clustern mithilfe einer Endpunkt-URL

Ersetzen Sie im folgenden Beispiel den AWS-Region us-east-1 und den DNS-Namen der Amazon VPC-Endpunkt-ID vpce-1a2b3c4d-5e6f.dsql.us-east-1.vpce.amazonaws.com durch Ihre eigenen Informationen.

aws dsql --region us-east-1 --endpoint-url https://vpce-1a2b3c4d-5e6f.dsql.us-east-1.vpce.amazonaws.com list-clusters

API-Operationen

In der Aurora DSQL-API-Referenz finden Sie Informationen zur Ressourcenverwaltung in Aurora DSQL.

Verwalten von Endpunktrichtlinien

Durch gründliches Testen und Konfigurieren der Amazon VPC-Endpunktrichtlinien können Sie sicherstellen, dass Ihr Aurora DSQL-Cluster sicher, konform und auf die spezifischen Anforderungen Ihrer Organisation in Bezug auf Zugriffskontrolle und Governance abgestimmt ist.

Beispiel: Vollständige Aurora DSQL-Zugriffsrichtlinie

Die folgende Richtlinie gewährt Vollzugriff auf alle Aurora DSQL-Aktionen und -Ressourcen über den angegebenen Amazon VPC-Endpunkt.

aws ec2 modify-vpc-endpoint \ --vpc-endpoint-id vpce-xxxxxxxxxxxxxxxxx \ --region region \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "dsql:*", "Resource": "*" } ] }'

Beispiel: Eingeschränkte Aurora DSQL-Zugriffsrichtlinie

Die folgende Richtlinie erlaubt nur diese Aurora DSQL-Aktionen.

  • CreateCluster

  • GetCluster

  • ListClusters

Alle anderen Aurora DSQL-Aktionen werden verweigert.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "dsql:CreateCluster", "dsql:GetCluster", "dsql:ListClusters" ], "Resource": "*" } ] }

Sobald Ihr AWS PrivateLink Endpunkt eingerichtet und aktiv ist, können Sie mit einem PostgreSQL-Client eine Verbindung zu Ihrem Aurora DSQL-Cluster herstellen. In den folgenden Verbindungsanweisungen werden die Schritte zur Erstellung des richtigen Hostnamens für die Verbindung über den Endpunkt beschrieben. AWS PrivateLink

Schritt 1: Rufen Sie den Dienstnamen für Ihren Cluster ab

Wenn Sie einen AWS PrivateLink Endpunkt für die Verbindung zu Ihrem Cluster erstellen, müssen Sie zuerst den clusterspezifischen Dienstnamen abrufen.

AWS CLI
aws dsql get-vpc-endpoint-service-name \ --region us-east-1 \ --identifier your-cluster-id

Beispielantwort

{
    "serviceName": "com.amazonaws.us-east-1.dsql-fnh4"
}

Der Servicename enthält eine ID wie dsql-fnh4 im Beispiel. Diese ID wird auch benötigt, wenn der Hostname für die Verbindung zu Ihrem Cluster erstellt wird.

AWS SDK for Python (Boto3)
import boto3 dsql_client = boto3.client('dsql', region_name='us-east-1') response = dsql_client.get_vpc_endpoint_service_name( identifier='your-cluster-id' ) service_name = response['serviceName'] print(f"Service Name: {service_name}")
AWS SDK for Java 2.x
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.dsql.DsqlClient; import software.amazon.awssdk.services.dsql.model.GetVpcEndpointServiceNameRequest; import software.amazon.awssdk.services.dsql.model.GetVpcEndpointServiceNameResponse; String region = "us-east-1"; String clusterId = "your-cluster-id"; DsqlClient dsqlClient = DsqlClient.builder() .region(Region.of(region)) .credentialsProvider(DefaultCredentialsProvider.create()) .build(); GetVpcEndpointServiceNameResponse response = dsqlClient.getVpcEndpointServiceName( GetVpcEndpointServiceNameRequest.builder() .identifier(clusterId) .build() ); String serviceName = response.serviceName(); System.out.println("Service Name: " + serviceName);

Schritt 2: Erstellen des Amazon VPC-Endpunkts

Erstellen Sie mit dem im vorherigen Schritt abgerufenen Servicenamen einen Amazon VPC-Endpunkt.

Wichtig

Die folgenden Verbindungsanweisungen funktionieren nur für Clusterverbindungen, wenn Private DNS aktiviert ist. Verwenden Sie das --no-private-dns-enabled-Flag nicht, wenn Sie den Endpunkt erstellen, da sonst die unten aufgeführten Verbindungsanleitungen nicht ordnungsgemäß funktionieren. Wenn Sie Private DNS deaktivieren, müssen Sie Ihren eigenen privaten DNS-Wildcard-Eintrag erstellen, der auf den erstellten Endpunkt verweist.

AWS CLI
aws ec2 create-vpc-endpoint \ --region us-east-1 \ --service-name service-name-for-your-cluster \ --vpc-id your-vpc-id \ --subnet-ids subnet-id-1 subnet-id-2 \ --vpc-endpoint-type Interface \ --security-group-ids security-group-id

Beispielantwort

{
    "VpcEndpoint": {
        "VpcEndpointId": "vpce-0123456789abcdef0",
        "VpcEndpointType": "Interface",
        "VpcId": "vpc-0123456789abcdef0",
        "ServiceName": "com.amazonaws.us-east-1.dsql-fnh4",
        "State": "pending",
        "RouteTableIds": [],
        "SubnetIds": [
            "subnet-0123456789abcdef0",
            "subnet-0123456789abcdef1"
        ],
        "Groups": [
            {
                "GroupId": "sg-0123456789abcdef0",
                "GroupName": "default"
            }
        ],
        "PrivateDnsEnabled": true,
        "RequesterManaged": false,
        "NetworkInterfaceIds": [
            "eni-0123456789abcdef0",
            "eni-0123456789abcdef1"
        ],
        "DnsEntries": [
            {
                "DnsName": "*.dsql-fnh4.us-east-1.vpce.amazonaws.com",
                "HostedZoneId": "Z7HUB22UULQXV"
            }
        ],
        "CreationTimestamp": "2025-01-01T00:00:00.000Z"
    }
} 
SDK for Python
import boto3 ec2_client = boto3.client('ec2', region_name='us-east-1') response = ec2_client.create_vpc_endpoint( VpcEndpointType='Interface', VpcId='your-vpc-id', ServiceName='com.amazonaws.us-east-1.dsql-fnh4', # Use the service name from previous step SubnetIds=[ 'subnet-id-1', 'subnet-id-2' ], SecurityGroupIds=[ 'security-group-id' ] ) vpc_endpoint_id = response['VpcEndpoint']['VpcEndpointId'] print(f"VPC Endpoint created with ID: {vpc_endpoint_id}")
SDK for Java 2.x

Verwenden Sie eine Endpunkt-URL für Aurora DSQL APIs

import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.ec2.Ec2Client; import software.amazon.awssdk.services.ec2.model.CreateVpcEndpointRequest; import software.amazon.awssdk.services.ec2.model.CreateVpcEndpointResponse; import software.amazon.awssdk.services.ec2.model.VpcEndpointType; String region = "us-east-1"; String serviceName = "com.amazonaws.us-east-1.dsql-fnh4"; // Use the service name from previous step String vpcId = "your-vpc-id"; Ec2Client ec2Client = Ec2Client.builder() .region(Region.of(region)) .credentialsProvider(DefaultCredentialsProvider.create()) .build(); CreateVpcEndpointRequest request = CreateVpcEndpointRequest.builder() .vpcId(vpcId) .serviceName(serviceName) .vpcEndpointType(VpcEndpointType.INTERFACE) .subnetIds("subnet-id-1", "subnet-id-2") .securityGroupIds("security-group-id") .build(); CreateVpcEndpointResponse response = ec2Client.createVpcEndpoint(request); String vpcEndpointId = response.vpcEndpoint().vpcEndpointId(); System.out.println("VPC Endpoint created with ID: " + vpcEndpointId);

Verbindung zu einem Aurora DSQL-Cluster über einen AWS PrivateLink -Verbindungsendpunkt herstellen

Sobald Ihr AWS PrivateLink Endpunkt eingerichtet und aktiv ist (stellen Sie sicher, dass dies der Fall State istavailable), können Sie über einen PostgreSQL-Client eine Verbindung zu Ihrem Aurora DSQL-Cluster herstellen. Anweisungen zur Verwendung von finden Sie in den Anleitungen unter Programmieren mit Aurora DSQL. AWS SDKs Sie müssen den Cluster-Endpunkt so ändern, dass er dem Hostnamenformat entspricht.

Konstruieren des Hostnamens

Der Hostname für die Verbindung AWS PrivateLink unterscheidet sich vom öffentlichen DNS-Hostnamen. Sie müssen ihn mit den folgenden Komponenten erstellen.

  1. Your-cluster-id

  2. Die Service-ID aus dem Servicenamen. Beispiel: dsql-fnh4

  3. Der AWS-Region

Verwenden Sie das folgende Format: cluster-id.service-identifier.region.on.aws

Beispiel: Verbindung über PostgreSQL

# Set environment variables export CLUSTERID=your-cluster-id export REGION=us-east-1 export SERVICE_IDENTIFIER=dsql-fnh4 # This should match the identifier in your service name # Construct the hostname export HOSTNAME="$CLUSTERID.$SERVICE_IDENTIFIER.$REGION.on.aws" # Generate authentication token export PGPASSWORD=$(aws dsql --region $REGION generate-db-connect-admin-auth-token --hostname $HOSTNAME) # Connect using psql psql -d postgres -h $HOSTNAME -U admin

Häufige Probleme und Lösungen

In der folgenden Tabelle sind häufig auftretende Probleme und Lösungen im Zusammenhang mit AWS PrivateLink und Aurora DSQL aufgeführt.

Problem Mögliche Ursache Lösung

Verbindungstimeout

Die Sicherheitsgruppe ist nicht richtig konfiguriert

Verwenden Sie den Amazon VPC Reachability Analyzer, um sicherzustellen, dass Ihr Netzwerk-Setup Datenverkehr auf Port 5432 zulässt.

Fehler für die DNS-Auflösung

Private DNS nicht aktiviert

Stellen Sie sicher, dass der Amazon VPC-Endpunkt mit aktiviertem Private DNS erstellt wurde.

Authentifizierungsfehler

Falsche Anmeldeinformationen oder abgelaufenes Token

Generieren Sie ein neues Authentifizierungstoken und überprüfen Sie den Benutzernamen.

Servicename nicht gefunden

Falsche Cluster-ID

Überprüfen Sie Ihre Cluster-ID und AWS-Region beim Abrufen des Dienstnamens.

Weitere Informationen finden Sie in den folgenden Ressourcen: