Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
AWS CLI exemples de points de terminaison personnalisés pour Amazon Aurora
Le didacticiel suivant utilise AWS CLI exemples utilisant la syntaxe du shell Unix pour montrer comment définir un cluster avec plusieurs « petites » instances de base de données et quelques « grandes » instances de base de données, et comment créer des points de terminaison personnalisés pour se connecter à chaque ensemble d'instances de base de données. Pour exécuter des commandes similaires sur votre propre système, vous devez être suffisamment familiarisé avec les bases de l'utilisation des clusters Aurora et AWS CLI utilisation pour fournir vos propres valeurs pour des paramètres tels que la région, le groupe de sous-réseaux et le groupe VPC de sécurité.
Cet exemple présente les étapes de configuration initiales : création d'un cluster Aurora et ajout d'instances de base de données à ce cluster. Il s'agit d'un cluster hétérogène, ce qui signifie que toutes les instances de base de données n'ont pas la même capacité. La plupart des instances utilisent AWS classe d'instancedb.r4.4xlarge
, mais les deux dernières instances de base de données l'utilisentdb.r4.16xlarge
. Chacun de ces exemples de create-db-instance
commandes imprime sa sortie à l'écran et en enregistre une copie JSON dans un fichier pour une inspection ultérieure.
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
Les instances de grande taille sont réservées à des types spécifiques de requêtes de rapport. Pour éviter qu'elles ne soient promues en tant qu'instances principales, l'exemple suivant attribue la priorité la plus faible à leur niveau de promotion. Cet exemple spécifie l'option --manage-master-user-password
permettant de générer le mot de passe de l'utilisateur principal et de le gérer dans Secrets Manager. Pour de plus amples informations, veuillez consulter Gestion des mots de passe avec Amazon Aurora et AWS Secrets Manager. Vous pouvez également utiliser l'option --master-password
pour spécifier et gérer vous-même le mot de passe.
for i in 09 10 do aws rds modify-db-instance --db-instance-identifier custom-endpoint-demo-${i} \ --region $REGION --promotion-tier 15 done
Supposons que vous ne souhaitiez utiliser les deux instances les plus grandes que pour les requêtes les plus communément utilisées. Pour ce faire, vous pouvez d'abord créer un point de terminaison personnalisé en lecture seule. Ensuite, vous pouvez ajouter une liste statique de membres de sorte que le point de terminaison se connecte uniquement à ces instances de base de données. Ces instances ayant déjà le niveau de promotion le plus faible, il est peu probable qu'elles soient promues en tant qu'instances principales. Si l'une d'elles est promue en tant qu'instance principale, elle n'est plus accessible via ce point de terminaison, car le type READER
a été spécifié au lieu du type ANY
.
L'exemple suivant illustre les commandes de création et de modification du point de terminaison, ainsi qu'un exemple de JSON sortie montrant l'état initial et modifié du point de terminaison personnalisé.
$
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" }
Le point de terminaison READER
par défaut du cluster peut se connecter à la fois aux instances de base de données de petite taille et de grande taille, ce qui ne permet pas d'anticiper facilement les performances des requêtes et l'évolutivité lorsque le cluster est occupé. Pour répartir la charge de travail de manière explicite entre les ensembles d'instances de base de données, vous pouvez ignorer le point de terminaison READER
par défaut et créer un second point de terminaison personnalisé qui se connecte à toutes les autres instances de base de données. Pour atteindre cet objectif, l'exemple suivant crée un point de terminaison personnalisé et ajoute une liste d'exclusion. Toute autre instance de base de données que vous ajouterez ultérieurement au cluster sera automatiquement ajoutée à ce point de terminaison. Le type ANY
signifie que ce point de terminaison est associé à huit instances au total : l'instance principale et sept autres réplicas Aurora. Si cet exemple utilisait le type READER
, le point de terminaison personnalisé ne serait associé qu'aux sept réplicas 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'exemple suivant renvoie vérifie l'état du point de terminaison du cluster. Le cluster possède toujours son point de terminaison de cluster d'origineWRITER
, avec EndPointType
of, que vous utiliseriez toujours pour l'administration et les autres opérations d'écriture. ETL Il a toujours son point de terminaison READER
d'origine, que vous n'utiliseriez pas, car chaque connexion établie avec celui-ci peut être renvoyée vers une instance de base de données de petite taille ou de grande taille. Les points de terminaison personnalisés permettent de rendre ce comportement prévisible, en assurant que les connexions utilisent l'une des instances de base de données de petite taille ou de grande taille en fonction du point de terminaison que vous spécifiez.
$
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" } ] }
Les exemples finaux illustrent la façon dont des connexions de base de données successives des points de terminaison personnalisés se connectent aux diverses instances de base de données du cluster Aurora. Le point de terminaison small-instances
se connecte toujours aux instances de base de données db.r4.4xlarge
, qui correspondent aux hôtes dont le nombre est le plus faible dans ce cluster.
$
mysql -h small-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com -u $MYUSER -pmysql>
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 -pmysql>
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 -pmysql>
select @@aurora_server_id;+-------------------------+ | @@aurora_server_id | +-------------------------+ | custom-endpoint-demo-01 | +-------------------------+
Le point de terminaison big-instances
se connecte toujours aux instances de base de données db.r4.16xlarge
, qui correspondent aux deux hôtes dont le nombre est le plus élevé dans ce cluster.
$
mysql -h big-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com -u $MYUSER -pmysql>
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 -pmysql>
select @@aurora_server_id;+-------------------------+ | @@aurora_server_id | +-------------------------+ | custom-endpoint-demo-09 | +-------------------------+