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.
Examples d’AWS CLI de points de terminaison personnalisés pour Amazon Aurora
Le didacticiel suivant utilise des exemples de l’AWS CLI avec la syntaxe du shell Unix pour montrer comment définir un cluster avec plusieurs instances de base de données de petite taille et quelques instances de base de données de grande taille, et comment créer des points de terminaison personnalisés pour connecter chaque ensemble d’instances de base de données. Pour exécuter des commandes similaires sur votre propre système, vous devez connaître les notions de base liées à l’utilisation des clusters Aurora et de l’AWS CLI afin de fournir vos propres valeurs pour divers paramètres tels que la région, le groupe de sous-réseau et le groupe de sécurité du VPC.
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 la classe d’instance AWS db.r4.4xlarge, mais les deux dernières instances de base de données utilisent db.r4.16xlarge. Chacun de ces exemples de commandes create-db-instance imprime sa sortie à l’écran et enregistre une copie du code JSON dans un fichier pour permettre tout examen ultérieur.
aws rds create-db-cluster --db-cluster-identifier custom-endpoint-demo --engine aurora-mysql \ --engine-version 8.0.mysql_aurora.3.04.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 plus d’informations, consultez 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 présente les commandes de création et de modification du point de terminaison, ainsi qu’un extrait de code JSON indiquant l’état initial et l’état 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 inclut toujours son point de terminaison d’origine, avec la valeur EndPointType pour WRITER, que vous pouvez continuer à utiliser pour l’administration, ainsi que les opérations ETL et d’autres opérations d’écriture. 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 | +-------------------------+