AWS CLI Beispiele für benutzerdefinierte Endpunkte für Amazon Aurora - Amazon Aurora

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.

AWS CLI Beispiele für benutzerdefinierte Endpunkte für Amazon Aurora

Das folgende Tutorial verwendet AWS CLI Beispiele mit Unix-Shell-Syntax, die zeigen, wie Sie einen Cluster mit mehreren „kleinen“ DB-Instances und einigen „großen“ DB-Instances definieren und benutzerdefinierte Endpunkte erstellen können, um eine Verbindung zu jeder Gruppe von DB-Instances herzustellen. Um ähnliche Befehle auf Ihrem eigenen System auszuführen, sollten Sie mit den Grundlagen der Arbeit mit Aurora-Clustern vertraut sein und AWS CLI wird verwendet, um Ihre eigenen Werte für Parameter wie Region, Subnetzgruppe und VPC Sicherheitsgruppe anzugeben.

Dieses Beispiel verdeutlicht die ersten Einrichtungsschritte: das Erstellen eines Aurora-Clusters und das Hinzufügen von DB-Instances. Hierbei handelt es sich um einen heterogenen Cluster, weshalb nicht alle DB-Instances über die gleiche Kapazität verfügen. Die meisten Instanzen verwenden die AWS Instance-Klassedb.r4.4xlarge, aber die letzten beiden DB-Instances verwendendb.r4.16xlarge. Jeder dieser create-db-instance Beispielbefehle druckt seine Ausgabe auf den Bildschirm und speichert eine Kopie davon JSON in einer Datei zur späteren Überprüfung.

aws rds create-db-cluster --db-cluster-identifier custom-endpoint-demo --engine aurora-mysql \ --engine-version 8.0.mysql_aurora.3.02.0 --master-username $MASTER_USER --manage-master-user-password \ --db-subnet-group-name $SUBNET_GROUP --vpc-security-group-ids $VPC_SECURITY_GROUP \ --region $REGION for i in 01 02 03 04 05 06 07 08 do aws rds create-db-instance --db-instance-identifier custom-endpoint-demo-${i} \ --engine aurora --db-cluster-identifier custom-endpoint-demo --db-instance-class db.r4.4xlarge \ --region $REGION \ | tee custom-endpoint-demo-${i}.json done for i in 09 10 do aws rds create-db-instance --db-instance-identifier custom-endpoint-demo-${i} \ --engine aurora --db-cluster-identifier custom-endpoint-demo --db-instance-class db.r4.16xlarge \ --region $REGION \ | tee custom-endpoint-demo-${i}.json done

Die größeren Instances sind für spezialisierte Arten von Berichtsabfragen vorgesehen. Damit diese nicht auf die primäre Instance hochgestuft werden, wird im folgenden Beispiel gezeigt, wie der Hochstufungsebene für diese Instances die niedrigste Priorität zugewiesen wird. In diesem Beispiel wird die Option --manage-master-user-password zum Generieren des Hauptbenutzerpassworts und zum Verwalten dieses Passworts in Secrets Manager angegeben. Weitere Informationen finden Sie unter Passwortverwaltung mit , Amazon Aurora und AWS Secrets Manager. Alternativ können Sie die Option --master-password verwenden, um das Passwort selbst festzulegen und zu verwalten.

for i in 09 10 do aws rds modify-db-instance --db-instance-identifier custom-endpoint-demo-${i} \ --region $REGION --promotion-tier 15 done

Angenommen, Sie möchten die zwei „größeren“ Instances nur für die ressourcenintensivsten Abfragen verwenden. Dazu können Sie zunächst einen benutzerdefinierten schreibgeschützten Endpunkt erstellen. Anschließend können Sie eine statische Liste von Elementen hinzufügen, sodass der Endpunkt nur mit diesen DB-Instances verbunden ist. Da sich diese Instances bereits in der niedrigsten Hochstufungsebene befinden, ist es unwahrscheinlich, dass eine von ihnen auf die primäre Instance hochgestuft wird. Sollte eine der Instances auf die primäre Instance hochgestuft worden sein, wäre sie über diesen Endpunkt nicht erreichbar, da der READER-Typ anstatt des ANY-Typs angegeben wurde.

Das folgende Beispiel zeigt die Befehle zum Erstellen und Ändern von Endpunkten sowie eine JSON Beispielausgabe, die den ursprünglichen und geänderten Zustand des benutzerdefinierten Endpunkts zeigt.

$ aws rds create-db-cluster-endpoint --region $REGION \ --db-cluster-identifier custom-endpoint-demo \ --db-cluster-endpoint-identifier big-instances --endpoint-type reader { "EndpointType": "CUSTOM", "Endpoint": "big-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com", "DBClusterEndpointIdentifier": "big-instances", "DBClusterIdentifier": "custom-endpoint-demo", "StaticMembers": [], "DBClusterEndpointResourceIdentifier": "cluster-endpoint-W7PE3TLLFNSHXQKFU6J6NV5FHU", "ExcludedMembers": [], "CustomEndpointType": "READER", "Status": "creating", "DBClusterEndpointArn": "arn:aws:rds:ca-central-1:111122223333:cluster-endpoint:big-instances" } $ aws rds modify-db-cluster-endpoint --db-cluster-endpoint-identifier big-instances \ --static-members custom-endpoint-demo-09 custom-endpoint-demo-10 --region $REGION { "EndpointType": "CUSTOM", "ExcludedMembers": [], "DBClusterEndpointIdentifier": "big-instances", "DBClusterEndpointResourceIdentifier": "cluster-endpoint-W7PE3TLLFNSHXQKFU6J6NV5FHU", "CustomEndpointType": "READER", "DBClusterEndpointArn": "arn:aws:rds:ca-central-1:111122223333:cluster-endpoint:big-instances", "StaticMembers": [ "custom-endpoint-demo-10", "custom-endpoint-demo-09" ], "Status": "modifying", "Endpoint": "big-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com", "DBClusterIdentifier": "custom-endpoint-demo" }

Der standardmäßige READER-Endpunkt des Clusters kann eine Verbindung entweder zur kleinen oder zur großen DB-Instance herstellen. Hierdurch wird das Vorhersagen der Abfrageleistung und der Skalierbarkeit bei einer hohen Auslastung des Clusters erschwert. Um den Workload zwischen den DB-Instance-Sätzen klar aufzuteilen, können Sie den standardmäßigen READER-Endpunkt ignorieren und einen zweiten benutzerdefinierten Endpunkt erstellen, der eine Verbindung mit den anderen DB-Instances herstellt. Im folgenden Beispiel wird dies erreicht, indem zunächst ein benutzerdefinierter Endpunkt erstellt und dann eine Ausschlussliste hinzugefügt wird. Alle anderen DB-Instances, die Sie dem Cluster später hinzufügen, werden automatisch in diesen Endpunkt integriert. Der Typ ANY signalisiert, dass dieser Endpunkt mit insgesamt acht Instances verknüpft ist: mit der primären Instance und sieben anderen Aurora-Replicas. Wenn im Beispiel der Typ READER verwendet würde, wäre der benutzerdefinierte Endpunkt nur mit den sieben Aurora-Replicas verknüpft.

$ aws rds create-db-cluster-endpoint --region $REGION --db-cluster-identifier custom-endpoint-demo \ --db-cluster-endpoint-identifier small-instances --endpoint-type any { "Status": "creating", "DBClusterEndpointIdentifier": "small-instances", "CustomEndpointType": "ANY", "EndpointType": "CUSTOM", "Endpoint": "small-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com", "StaticMembers": [], "ExcludedMembers": [], "DBClusterIdentifier": "custom-endpoint-demo", "DBClusterEndpointArn": "arn:aws:rds:ca-central-1:111122223333:cluster-endpoint:small-instances", "DBClusterEndpointResourceIdentifier": "cluster-endpoint-6RDDXQOC3AKKZT2PRD7ST37BMY" } $ aws rds modify-db-cluster-endpoint --db-cluster-endpoint-identifier small-instances \ --excluded-members custom-endpoint-demo-09 custom-endpoint-demo-10 --region $REGION { "DBClusterEndpointIdentifier": "small-instances", "DBClusterEndpointArn": "arn:aws:rds:ca-central-1:c7tj4example:cluster-endpoint:small-instances", "DBClusterEndpointResourceIdentifier": "cluster-endpoint-6RDDXQOC3AKKZT2PRD7ST37BMY", "CustomEndpointType": "ANY", "Endpoint": "small-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com", "EndpointType": "CUSTOM", "ExcludedMembers": [ "custom-endpoint-demo-09", "custom-endpoint-demo-10" ], "StaticMembers": [], "DBClusterIdentifier": "custom-endpoint-demo", "Status": "modifying" }

Im folgenden Beispiel wird der Status der Endpunkte dieses Clusters geprüft. Der Cluster hat immer noch seinen ursprünglichen Clusterendpunkt mit EndPointType ofWRITER, den Sie weiterhin für die Verwaltung und andere Schreibvorgänge verwenden würden. ETL Er verfügt immer noch über seinen ursprünglichen READER-Endpunkt, den Sie nicht verwenden würden, da jede zu ihm hergestellte Verbindung möglicherweise zu einer kleinen oder großen DB-Instance weitergeleitet wird. Die benutzerdefinierten Endpunkte machen dieses Verhalten vorhersehbar, da Verbindungen verwendet werden, die, je nach angegebenem Endpunkt, garantiert eine der kleinen oder großen DB-Instances verwenden.

$ aws rds describe-db-cluster-endpoints --region $REGION { "DBClusterEndpoints": [ { "EndpointType": "WRITER", "Endpoint": "custom-endpoint-demo.cluster-c7tj4example.ca-central-1.rds.amazonaws.com", "Status": "available", "DBClusterIdentifier": "custom-endpoint-demo" }, { "EndpointType": "READER", "Endpoint": "custom-endpoint-demo.cluster-ro-c7tj4example.ca-central-1.rds.amazonaws.com", "Status": "available", "DBClusterIdentifier": "custom-endpoint-demo" }, { "Endpoint": "small-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com", "CustomEndpointType": "ANY", "DBClusterEndpointArn": "arn:aws:rds:ca-central-1:111122223333:cluster-endpoint:small-instances", "ExcludedMembers": [ "custom-endpoint-demo-09", "custom-endpoint-demo-10" ], "DBClusterEndpointResourceIdentifier": "cluster-endpoint-6RDDXQOC3AKKZT2PRD7ST37BMY", "DBClusterIdentifier": "custom-endpoint-demo", "StaticMembers": [], "EndpointType": "CUSTOM", "DBClusterEndpointIdentifier": "small-instances", "Status": "modifying" }, { "Endpoint": "big-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com", "CustomEndpointType": "READER", "DBClusterEndpointArn": "arn:aws:rds:ca-central-1:111122223333:cluster-endpoint:big-instances", "ExcludedMembers": [], "DBClusterEndpointResourceIdentifier": "cluster-endpoint-W7PE3TLLFNSHXQKFU6J6NV5FHU", "DBClusterIdentifier": "custom-endpoint-demo", "StaticMembers": [ "custom-endpoint-demo-10", "custom-endpoint-demo-09" ], "EndpointType": "CUSTOM", "DBClusterEndpointIdentifier": "big-instances", "Status": "available" } ] }

In den abschließenden Beispielen wird gezeigt, wie nachfolgende Datenbankverbindungen zu den benutzerdefinierten Endpunkten eine Verbindung mit den zahlreichen DB-Instances im Aurora-Cluster herstellen. Der small-instances-Endpunkt stellt immer eine Verbindung zu den db.r4.4xlarge-DB-Instances her. Diese stellen die Hosts mit den niedrigeren Nummern in diesem Cluster dar.

$ mysql -h small-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com -u $MYUSER -p mysql> select @@aurora_server_id; +-------------------------+ | @@aurora_server_id | +-------------------------+ | custom-endpoint-demo-02 | +-------------------------+ $ mysql -h small-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com -u $MYUSER -p mysql> select @@aurora_server_id; +-------------------------+ | @@aurora_server_id | +-------------------------+ | custom-endpoint-demo-07 | +-------------------------+ $ mysql -h small-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com -u $MYUSER -p mysql> select @@aurora_server_id; +-------------------------+ | @@aurora_server_id | +-------------------------+ | custom-endpoint-demo-01 | +-------------------------+

Der big-instances-Endpunkt stellt immer eine Verbindung zu den db.r4.16xlarge-DB-Instances her, die die beiden höchst nummerierten Hosts in diesem Cluster sind.

$ mysql -h big-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com -u $MYUSER -p mysql> select @@aurora_server_id; +-------------------------+ | @@aurora_server_id | +-------------------------+ | custom-endpoint-demo-10 | +-------------------------+ $ mysql -h big-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com -u $MYUSER -p mysql> select @@aurora_server_id; +-------------------------+ | @@aurora_server_id | +-------------------------+ | custom-endpoint-demo-09 | +-------------------------+