AWS CLI esempi di endpoint personalizzati per Amazon Aurora - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS CLI esempi di endpoint personalizzati per Amazon Aurora

Il seguente tutorial utilizza AWS CLI esempi con sintassi della shell Unix per mostrare come definire un cluster con diverse istanze DB «piccole» e alcune istanze DB «grandi» e creare endpoint personalizzati per connettersi a ciascun set di istanze DB. Per eseguire comandi simili sul proprio sistema, è necessario avere sufficiente dimestichezza con le nozioni di base per lavorare con i cluster Aurora e AWS CLI utilizzo per fornire valori propri per parametri quali regione, gruppo di sottoreti e gruppo di sicurezza. VPC

Questo esempio dimostra le fasi della configurazione iniziale: la creazione di un cluster Aurora e l'aggiunta delle istanze database. Questo è un cluster eterogeneo, il che significa che non tutte le istanze database hanno la stessa capacità. La maggior parte dei casi utilizza AWS classe di istanzadb.r4.4xlarge, ma le ultime due istanze DB utilizzano. db.r4.16xlarge Ciascuno di questi create-db-instance comandi di esempio stampa il proprio output sullo schermo e ne salva una copia JSON in un file per un'ispezione successiva.

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

Le istanze più grandi sono riservate a tipi specializzati di query per la creazione di report. Per rendere improbabile che vengano promosse all'istanza primaria, l'esempio seguente imposta il livello di promozione sulla priorità più bassa. In questo esempio è specificata l'opzione --manage-master-user-password per generare la password dell'utente master e gestirla in Secrets Manager. Per ulteriori informazioni, consulta Gestione delle password con Amazon Aurora e AWS Secrets Manager. In alternativa, puoi utilizzare l'opzione --master-password per specificare e gestire personalmente la password.

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

Supponiamo di voler utilizzare le due istanze "più grandi" solo per le query che richiedono più risorse. A tale scopo, puoi innanzitutto creare un endpoint di sola lettura personalizzato. Quindi puoi aggiungere un elenco statico di membri in modo che l'endpoint si connetta solo a tali istanze database. Queste istanze sono già nel livello di promozione più basso, rendendo improbabile che una di esse venga promossa a istanza primaria. Se una di esse venisse promossa a istanza primaria, diventerebbe irraggiungibile tramite questo endpoint perché abbiamo specificato il tipo READER anziché ANY.

L'esempio seguente illustra i comandi di creazione e modifica dell'endpoint e un JSON output di esempio che mostra lo stato iniziale e modificato dell'endpoint personalizzato.

$ 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" }

L'endpoint READER predefinito per il cluster può connettersi alle istanze database piccole o grandi, rendendo poco pratico prevedere le prestazioni e la scalabilità delle query quando il cluster diventa occupato. Per dividere in modo pulito il carico di lavoro tra i gruppi di istanze database, puoi ignorare l'endpoint READER predefinito e creare un secondo endpoint personalizzato che si connette a tutte le altre istanze database. L'esempio seguente effettua ciò creando un endpoint personalizzato e quindi aggiungendo un elenco di esclusioni. Qualsiasi altra istanza database aggiunta al cluster successivamente verrà inserita automaticamente in questo endpoint. Il tipo ANY indica che questo endpoint è associato a otto istanze in totale: l'istanza primaria e altre sette repliche di Aurora. Se l'esempio avesse specificato il tipo READER, l'endpoint personalizzato sarebbe associato solo alle sette repliche di Aurora.

$ 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" }

L'esempio seguente controlla lo stato degli endpoint per questo cluster. Il cluster ha ancora l'endpoint cluster originale, con EndPointType ofWRITER, che è ancora utilizzabile per l'amministrazione e altre operazioni di ETL scrittura. Ha ancora il suo endpoint READER originale, che non usi perché ogni connessione verrebbe diretta a una istanza database piccola o grande. Gli endpoint personalizzati rendono questo comportamento prevedibile, con connessioni garantite per l'utilizzo di una delle istanze database piccole o grandi in base all'endpoint specificato.

$ 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" } ] }

Gli esempi finali dimostrano come le successive connessioni del database agli endpoint personalizzati avvengono alle varie istanze database nel cluster Aurora. L'endpoint small-instances si connette sempre alle istanze database db.r4.4xlarge che sono gli host con un numero inferiore in questo cluster.

$ 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 | +-------------------------+

L'endpoint big-instances si connette sempre alle istanze database db.r4.16xlarge che sono i due host con il numero più alto in questo cluster.

$ 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 | +-------------------------+