Gestion des connexions Amazon Aurora - Amazon Aurora

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.

Gestion des connexions Amazon Aurora

Amazon Aurora implique généralement un cluster d'instances de base de données au lieu d'une seule instance. Chaque connexion est gérée par une instance de base de données spécifique. Lorsque vous vous connectez à un cluster Aurora, le nom d'hôte et le port que vous spécifiez pointent vers un gestionnaire intermédiaire appelé point de terminaison. Aurora utilise le mécanisme de point de terminaison pour abstraire ces connexions. Ainsi, vous n'avez pas besoin de coder en dur tous les noms d'hôtes ou d'écrire votre propre logique pour équilibrer et rediriger les connexions lorsque certaines instances de base de données ne sont pas disponibles.

Pour certaines tâches Aurora, différentes instances ou différents groupes d'instances exécutent des rôles distincts. Par exemple, l'instance principale gère toutes les instructions de langage de manipulation de données (DDL) et de langage de définition de données (DML). Jusqu'à 15 réplicas Aurora gèrent le trafic des requêtes en lecture seule.

Les points de terminaison permettent d'associer chaque connexion à l'instance ou au groupe d'instances approprié en fonction de votre cas d'utilisation. Par exemple, pour exécuter des instructions DDL, vous pouvez vous connecter à n'importe quelle instance principale. Pour effectuer des requêtes, vous pouvez vous connecter au point de terminaison du lecteur, Aurora effectuant automatiquement l'équilibrage des connexions entre toutes les répliques d'Aurora. Pour les clusters dotés d'instances de base de données avec des capacités ou des configurations distinctes, vous pouvez vous connecter à des points de terminaison personnalisés associés à différents sous-ensembles d'instances de base de données. Pour le diagnostic et le réglage, vous pouvez vous connecter au point de terminaison d'une instance spécifique pour examiner les détails relatifs à cette dernière.

Types de points de terminaison Aurora

Un point de terminaison est une URL spécifique à Aurora, qui contient une adresse d'hôte et un port. Les types de points de terminaison suivants sont disponibles à partir d'un cluster de bases de données Aurora.

Point de terminaison de cluster

Un point de terminaison de cluster ( ou point de terminaison d'enregistreur) pour un cluster de bases de données Aurora se connecte à l'instance de base de données principale de ce cluster de bases de données. Ce point de terminaison est le seul à pouvoir exécuter des opérations d'écriture, telles que des instructions DDL. C'est pour cette raison que le point de terminaison du cluster est celui auquel vous vous connectez la première fois que vous configurez un cluster ou lorsque le cluster contient une seule instance de base de données.

Chaque cluster de bases de données Aurora possède un seul point de terminaison et une seule instance de base de données principale.

Le point de terminaison du cluster est destiné à toutes les opérations d'écriture sur le cluster de bases de données, y compris les insertions, les mises à jour, les suppression et les modifications de langage de définition de données (DDL). Vous pouvez aussi utiliser le point de terminaison de cluster pour les opérations de lecture, par exemple les requêtes.

Le point de terminaison de cluster assure la prise en charge du basculement pour les connexions en lecture/écriture au cluster de bases de données. En cas de défaillance de l'instance de base de données principale en cours d'un cluster de bases de données, Aurora bascule automatiquement vers une nouvelle instance de base de données principale. Pendant un basculement, le cluster DB continue à traiter les demandes de connexion adressées au point de terminaison de cluster par la nouvelle instance DB principale, avec une interruption de service minimale.

L'exemple suivant illustre un point de terminaison de cluster pour un cluster de bases de données Aurora MySQL.

mydbcluster.cluster-c7tj4example.us-east-1.rds.amazonaws.com:3306
Point de terminaison du lecteur

Un point de terminaison de lecteur pour un cluster de base de données Aurora fournit un support d'équilibrage des connexions pour les connexions en lecture seule au cluster de base de données. Utilisez le point de terminaison de lecteur pour les opérations de lecture, par exemple les requêtes. En traitant ces instructions sur les réplicas Aurora en lecture seule, ce point de terminaison réduit la surcharge sur l'instance principale. Il aide également le cluster à mettre à l'échelle la capacité de traiter des requêtes SELECT simultanées, proportionnelle au nombre de réplicas Aurora dans le cluster. Chaque cluster de bases de données Aurora possède un seul point de terminaison de lecteur.

Si le cluster contient une ou plusieurs répliques Aurora, le point de terminaison du lecteur équilibre chaque demande de connexion entre les répliques Aurora. Dans ce cas, vous ne pouvez effectuer que des instructions en lecture seule, telles que SELECT dans cette session. Si le cluster contient uniquement une instance principale et aucun réplica Aurora, le point de terminaison du lecteur se connecte à l'instance principale. Dans ce cas, vous pouvez effectuer des opérations d'écriture via le point de terminaison.

L'exemple suivant illustre un point de terminaison de lecteur pour un cluster de bases de données Aurora MySQL.

mydbcluster.cluster-ro-c7tj4example.us-east-1.rds.amazonaws.com:3306
Point de terminaison personnalisé

Un point de terminaison pour un cluster Aurora représente un ensemble d'instances de base de données que vous choisissez. Lorsque vous vous connectez au point de terminaison, Aurora effectue l'équilibrage des connexions et choisit l'une des instances du groupe pour gérer la connexion. C'est vous qui définissez les instances auxquelles ce point de terminaison renvoie, ainsi que la fonction même de chaque point de terminaison.

Un cluster de bases de données Aurora n'a pas de point de terminaison personnalisé tant que vous n'en créez pas un. Vous pouvez créer jusqu'à cinq points de terminaison personnalisés pour chaque cluster Aurora ou chaque cluster Aurora Serverless v2 provisionné. Vous ne pouvez pas utiliser de points de terminaison personnalisés pour les clusters Aurora Serverless v1.

Le point de terminaison personnalisé fournit des connexions de base de données équilibrées basées sur des critères autres que la capacité de lecture seule ou de lecture/écriture des instances de base de données. Par exemple, vous pouvez définir un point de terminaison personnalisé pour vous connecter à des instances utilisant une classe d'instance AWS spécifique ou un groupe de paramètres de base de données particulier. Vous pouvez ensuite communiquer ce point de terminaison personnalisé à un groupe d'utilisateurs donné. Par exemple, vous pouvez renvoyer les utilisateurs internes vers des instances à faible capacité pour la génération de rapports ou la création de requêtes ad hoc (ponctuelles), et diriger le trafic de production vers des instances à haute capacité.

Comme la connexion peut exploiter n'importe quelle instance de base de données associée au point de terminaison personnalisé, il est conseillé de s'assurer que toutes les instances de base de données de ce groupe partagent des caractéristiques similaires. De cette manière, les performances, le capacité de la mémoire ou autres paramètres seront cohérents pour tous les utilisateurs qui se connectent à ce point de terminaison.

Cette fonction est destinée aux utilisateurs avancés dotés de types de charges de travail spécialisés où il n'est pas pratique que tous les réplicas Aurora du cluster soient identiques. Les points de terminaison personnalisés vous permettent de prédire la capacité de l'instance de base de données utilisée pour chaque connexion. Lorsque vous avez recours à des points de terminaison personnalisés, vous n'utilisez généralement pas le point de terminaison du lecteur pour ce cluster.

L'exemple suivant illustre le point de terminaison personnalisé d'une instance de base de données dans un cluster de bases de données Aurora MySQL.

myendpoint.cluster-custom-c7tj4example.us-east-1.rds.amazonaws.com:3306
Point de terminaison d'instance

Un point de terminaison d'instance se connecte à une instance de base de données spécifique dans un cluster Aurora. Chaque instance de bases de données d'un cluster de bases de données a son propre point de terminaison d'instance unique. Par conséquent, il existe un point de terminaison d'instance pour l'instance principale du cluster de bases de données, et un point de terminaison d'instance pour chacun des réplicas Aurora de ce cluster.

Le point de terminaison d'instance exerce un contrôle direct sur les connexions au cluster de bases de données, pour les scénarios où l'utilisation du point de terminaison de cluster ou du point de terminaison de lecteur peut ne pas être appropriée. Par exemple, votre application cliente peut nécessiter un équilibrage des connexions plus précis en fonction du type de charge de travail. Dans ce cas, vous pouvez configurer plusieurs clients afin d'obtenir une connexion à différents réplicas Aurora dans un cluster de bases de données pour répartir les charges de travail en lecture. Pour voir un exemple d'utilisation des points de terminaison d'instance pour améliorer la vitesse de connexion après un basculement pour Aurora PostgreSQL, consultez Basculement rapide avec Amazon Aurora PostgreSQL. Pour voir un exemple d'utilisation des points de terminaison d'instance permettant d'améliorer la vitesse de connexion après un basculement pour Aurora MySQL, consultez Prise en charge du basculement vers MariaDB Connector/J – étude de case Amazon Aurora.

L'exemple suivant illustre un point de terminaison d'instance pour une instance de base de données d'un cluster de bases de données Aurora MySQL.

mydbinstance.c7tj4example.us-east-1.rds.amazonaws.com:3306

Affichage des points de terminaison d'un cluster Aurora

Dans le AWS Management Console, vous pouvez voir le point de terminaison du cluster, le point de terminaison du lecteur et tous les points de terminaison personnalisés sur la page détaillée de chaque cluster. La page de détails de chaque instance affiche le point de terminaison de cette dernière. Lorsque vous vous connectez, vous devez ajouter le numéro de port associé, après un point-virgule, au nom du point de terminaison indiqué sur cette page de détails.

Avec le AWS CLI, vous pouvez voir le rédacteur, le lecteur et tous les points de terminaison personnalisés dans la sortie de la describe-db-clusterscommande. Par exemple, la commande suivante affiche les attributs du point de terminaison pour tous les clusters de votre AWS région actuelle.

aws rds describe-db-clusters --query '*[].{Endpoint:Endpoint,ReaderEndpoint:ReaderEndpoint,CustomEndpoints:CustomEndpoints}'

Avec l'API Amazon RDS, vous pouvez récupérer les points de terminaison en appelant la fonction ClusterEndpointsDescribeDB.

Utilisation du point de terminaison du cluster

Comme chaque cluster Aurora a un point de terminaison de cluster intégré dont le nom et les autres attributs sont gérés par Aurora. Vous ne pouvez pas créer, supprimer ni modifier ce type de point de terminaison.

Le point de terminaison du cluster vous permet d'administrer ce dernier, d'exécuter des opération ETL ou de développer et de tester des applications. Le point de terminaison du cluster vous connecte à l'instance principale du cluster. L'instance principale est la seule instance de base de données où vous pouvez créer des tables et des index, exécuter des instructions INSERT et effectuer d'autres opérations DDL et DML.

L'adresse IP physique à laquelle renvoie le point de terminaison du cluster change lorsque le mécanisme de basculement choisit une nouvelle instance de base de données comme instance principale du cluster en lecture/écriture. Si vous utilisez une forme quelconque de regroupement de connexions ou de multiplexage, soyez prêt à vider ou à réduire les informations time-to-live DNS mises en cache. Cette technique vous empêche d'essayer d'établir une connexion en lecture/écriture à une instance de base de données qui est devenue indisponible ou qui n'est plus qu'en lecture seule après un basculement.

Utilisation du point de terminaison du lecteur

Le point de terminaison du lecteur est destiné aux connexions en lecture seule au cluster Aurora. Ce point de terminaison utilise un mécanisme d'équilibrage des connexions pour aider votre cluster à gérer une charge de travail exigeante en termes de requêtes. Le point de terminaison du lecteur est le point de terminaison que vous fournissez aux applications qui créent les rapports ou qui effectuent d'autres opérations en lecture seule sur le cluster.

Le point de terminaison du lecteur équilibre les connexions aux répliques Aurora disponibles dans un cluster de base de données Aurora. Il n'équilibre pas les requêtes individuelles. Si vous souhaitez équilibrer chaque requête afin de répartir la charge de lecture pour un cluster de base de données, ouvrez une nouvelle connexion au point de terminaison du lecteur pour chaque requête.

Chaque cluster Aurora intègre un seul point de terminaison de lecteur dont le nom et les autres attributs sont gérés par Aurora. Vous ne pouvez pas créer, supprimer ni modifier ce type de point de terminaison.

Si votre cluster contient uniquement une instance principale et aucun réplica Aurora, le point de terminaison du lecteur se connecte à l'instance principale. Dans ce cas, vous pouvez effectuer des opérations d'écriture via ce point de terminaison.

Astuce

Grâce à RDS Proxy, vous pouvez créer des points de terminaison supplémentaires en lecture seule pour un cluster Aurora. Ces points de terminaison effectuent le même type d'équilibrage des connexions que le point de terminaison du lecteur Aurora. Les applications peuvent se reconnecter plus rapidement aux points de terminaison proxy que le point de terminaison du lecteur Aurora si les instances de lecteur deviennent indisponibles. Les points de terminaison proxy peuvent également tirer parti d'autres fonctions de proxy telles que le multiplexage. Pour plus d'informations, consultez Utilisation des points de terminaison de lecteur avec les clusters Aurora.

Utilisation des points de terminaison personnalisés

Les points de terminaison personnalisés permettent de simplifier la gestion des connexions lorsque le cluster contient des instances de base de données avec des paramètres de capacité ou de configuration distincts.

Auparavant, pour obtenir des résultats similaires, vous utilisiez peut-être le mécanisme CNAME pour configurer des alias DNS à partir de votre propre domaine. L'utilisation de points de terminaison personnalisés vous évite d'avoir à mettre à jour les enregistrements CNAME lorsque la taille du cluster augmente ou diminue. Avec les points de terminaison personnalisés, vous pouvez également utiliser des connexions TLS/SSL (Transport Layer Security/Secure Sockets Layer).

Au lieu d'employer une seule instance de base de données pour chaque objectif spécifique et de vous connecter au point de terminaison de son instance, vous pouvez recourir à plusieurs groupes d'instances de base de données spécialisées. Dans ce cas, chaque groupe dispose de son propre point de terminaison personnalisé. Aurora peut ainsi effectuer l'équilibrage des connexions entre toutes les instances dédiées à des tâches telles que le reporting ou le traitement de la production ou des requêtes internes. Les points de terminaison personnalisés distribuent les connexions entre les instances de manière passive, en utilisant le DNS pour renvoyer l'adresse IP de l'une des instances de manière aléatoire. Si l'une des instances de base de données au sein d'un groupe devient indisponible, Aurora renvoie les connexions suivantes au point de terminaison personnalisé vers l'une des autres instances de base de données associées à ce dernier.

Spécification des propriétés des points de terminaison personnalisés

La longueur maximale du nom d'un point de terminaison personnalisé est de 63 caractères. Le format du nom est le suivant :

endpoint_name.cluster-custom-customer_DNS_identifier.AWS_Region.rds.amazonaws.com

Vous ne pouvez pas réutiliser le même nom de point de terminaison personnalisé pour d'autres clusters de la même  Région AWS. L'identifiant DNS du client est un identifiant unique associé à votre Compte AWS nom en particulier Région AWS.

Chaque point de terminaison est lié à un type qui détermine les instances de base de données qui peuvent être associées à ce point de terminaison. Actuellement, le type peut être READER ouANY. Les considérations suivantes s'appliquent aux types de points de terminaison personnalisés :

  • Il n'est pas possible de sélectionner le type de point de terminaison personnalisé dans la AWS Management Console. Tous les points de terminaison personnalisés que vous créez via le AWS Management Console ont un type deANY.

    Vous pouvez définir et modifier le type de point de terminaison personnalisé à l' AWS CLI aide de l'API Amazon RDS.

  • Seules les instances de base de données de lecteur peuvent faire partie d'un point de terminaison personnalisé READER.

  • Les instances de base de données de lecteur et d'enregistreur peuvent faire partie d'un point de terminaison personnalisé ANY. Aurora dirige les connexions aux points de terminaison de cluster de type ANY vers n'importe quelle instance de base de données associée avec une probabilité égale. Le type ANY s'applique aux clusters utilisant une topologie de réplication.

  • Si vous essayez de créer un point de terminaison personnalisé doté d'un type qui ne correspond pas à la configuration de la réplication d'un cluster, Aurora renvoie une erreur.

Règles d'appartenance des points de terminaison personnalisés

Lorsque vous ajoutez ou supprimez une instance de base de données dans un point de terminaison personnalisé, toutes les connexions existantes à cette instance restent actives.

Vous pouvez définir une liste des instances de base de données à inclure (ou à exclure) dans un point de terminaison personnalisé. C'est ce que l'on appelle des listes statiques et des listes d'exclusion, respectivement. Vous pouvez utiliser le mécanisme d'inclusion/exclusion pour subdiviser davantage les groupes d'instances de base de données et pour vous assurer que l'ensemble de points de terminaison personnalisés couvre toutes les instances de base de données du cluster. Chaque point de terminaison personnalisé ne peut contenir qu'un de ces types de liste.

Dans le AWS Management Console :

  • Le choix est représenté par la case à cocher Attach future instances added to this cluster (Attacher les instances futures ajoutées à ce cluster). Lorsque cette case n'est pas cochée, le point de terminaison personnalisé utilise une liste statique contenant uniquement les instances de base de données spécifiées sur la page. Lorsque vous cochez cette case, le point de terminaison personnalisé utilise une liste d'exclusion. Dans ce cas, le point de terminaison personnalisé représente toutes les instances de base de données du cluster (y compris celles que vous ajouterez par la suite), sauf celles qui ne sont pas sélectionnées sur la page.

  • La console ne vous permet pas de spécifier le type de point de terminaison. Tout point de terminaison personnalisé créé à l'aide de la console est du type ANY.

    Par conséquent, Aurora ne modifie pas l'appartenance du point de terminaison personnalisé lorsque les instances de base de données changent les rôles entre l'enregistreur et le lecteur en raison d'un basculement ou d'une promotion.

Dans l'API AWS CLI et Amazon RDS :

  • Vous pouvez spécifier le type de point de terminaison. Par conséquent, lorsque le type de point de terminaison est défini surREADER, l'adhésion au point de terminaison est automatiquement ajustée lors des basculements et des promotions.

    Par exemple, un point de terminaison personnalisé de type READER inclut une réplique Aurora qui est ensuite promue en tant qu'instance de base de données d'écriture. La nouvelle instance d'écriture ne fait plus partie du point de terminaison personnalisé.

  • Vous pouvez ajouter des membres individuels aux listes et les supprimer de celles-ci une fois qu'ils ont changé de rôle. Utilisez la modify-db-cluster-endpoint AWS CLI commande ou l'opération d'ClusterEndpointAPI ModifyDB.

Vous pouvez associer une instance de base de données à plusieurs points de terminaison personnalisés. Supposons, par exemple, que vous ajoutiez une nouvelle instance de base de données à un cluster ou qu'Aurora ajoute une instance de base de données automatiquement via le mécanisme Auto Scaling. Dans ce cas, l'instance de base de données est ajoutée à tous les points de terminaison personnalisés auxquels elle est éligible. Les points de terminaison auxquels l'instance de base de données est ajoutée dépendent du type de point de terminaison personnalisé de READER ouANY, plus toute liste statique ou d'exclusion définie pour chaque point de terminaison. Par exemple, si le point de terminaison comprend une liste statique d'instances de base de données, les réplicas Aurora qui viennent d'être ajoutés ne sont pas inclus dans ce point de terminaison. Inversement, si le point de terminaison dispose d'une liste d'exclusion, les réplicas Aurora qui viennent d'être ajoutés sont inclus dans le point de terminaison s'ils ne font pas partie de la liste d'exclusion et si leur rôle correspond au type du point de terminaison personnalisé.

Si un réplica Aurora devient indisponible, il reste associé aux points de terminaison personnalisés. Par exemple, il continue à faire partie du point de terminaison personnalisé s'il n'est pas sain, s'il est arrêté, s'il redémarre, etc. Toutefois, il doit redevenir disponible pour vous puissiez vous y connecter via ces points de terminaison.

Gestion des points de terminaison personnalisés

Comme les nouveaux clusters Aurora ne contiennent pas de points de terminaison personnalisés, vous devez créer et gérer ces objets vous-même. Pour ce faire, utilisez l'API AWS Management Console AWS CLI, ou Amazon RDS.

Note

Vous devez également créer et gérer les points de terminaison personnalisés des clusters Aurora restaurés à partir d'instantanés. Les points de terminaison personnalisés ne sont pas inclus dans les instantanés. Ils sont recréés après leur restauration, et de nouveaux noms de points de terminaison sont choisis si le cluster restauré se trouve dans la même région que celui d'origine.

Pour utiliser des points de terminaison personnalisés à partir de AWS Management Console, vous accédez à la page de détails de votre cluster Aurora et utilisez les commandes de la section Points de terminaison personnalisés.

Pour utiliser des points de terminaison personnalisés à partir de AWS CLI, vous pouvez utiliser les opérations suivantes :

Pour manipuler les points de terminaison personnalisés via l'API Amazon RDS, vous pouvez utiliser les fonctions suivantes :

Création d'un point de terminaison personnalisé

Pour créer un point de terminaison personnalisé avec le AWS Management Console, rendez-vous sur la page détaillée du cluster et choisissez l'Create custom endpointaction dans la section Points de terminaison. Choisissez un nom pour le point de terminaison personnalisé. Ce nom sera spécifique à votre ID utilisateur et à votre région. Pour choisir une liste d'instances de base de données qui restera la même à mesure que le cluster s'élargira, laissez la case Attach future instances added to this cluster (Attacher les instances futures ajoutées à ce cluster) décochée. Lorsque vous cochez cette case, le point de terminaison personnalisé ajoute les nouvelles instances de manière dynamique à mesure que vous les ajoutez au cluster.

Il n'est pas possible de sélectionner le type de point de terminaison personnalisé ANY ou READER dans AWS Management Console. Tous les points de terminaison personnalisés que vous créez via AWS Management Console sont de type ANY.

Pour créer un point de terminaison personnalisé avec le AWS CLI, exécutez la create-db-cluster-endpointcommande.

La commande suivante crée un point de terminaison personnalisé attaché à un cluster spécifique. Initialement, le point de terminaison est associé à toutes les instances de réplica Aurora du cluster. Une commande ultérieure l'associe à l'ensemble spécifique d'instances de base de données du cluster.

Pour LinuxmacOS, ou Unix :

aws rds create-db-cluster-endpoint --db-cluster-endpoint-identifier custom-endpoint-doc-sample \ --endpoint-type reader \ --db-cluster-identifier cluster_id aws rds modify-db-cluster-endpoint --db-cluster-endpoint-identifier custom-endpoint-doc-sample \ --static-members instance_name_1 instance_name_2

Dans Windows :

aws rds create-db-cluster-endpoint --db-cluster-endpoint-identifier custom-endpoint-doc-sample ^ --endpoint-type reader ^ --db-cluster-identifier cluster_id aws rds modify-db-cluster-endpoint --db-cluster-endpoint-identifier custom-endpoint-doc-sample ^ --static-members instance_name_1 instance_name_2

Pour créer un point de terminaison personnalisé avec l'API RDS, exécutez l'opération CreateDB. ClusterEndpoint

Affichage des points de terminaison personnalisés

Pour afficher les points de terminaison personnalisés avec le AWS Management Console, rendez-vous sur la page détaillée du cluster et consultez la section Points de terminaison. Cette section contient uniquement des informations sur les points de terminaison personnalisés. Les détails relatifs aux points de terminaison intégrés sont indiqués dans la section Details (Détails) principale. Pour consulter les détails relatifs à un point de terminaison personnalisé, sélectionnez son nom afin d'afficher la page de détails correspondante.

La capture d'écran suivante présente la liste de points de terminaison personnalisés d'un cluster Aurora, laquelle est vide initialement.

Une fois que vous avez créé des points de terminaison personnalisés pour ce cluster, ils apparaissent dans la section Endpoints (Points de terminaison).

Accédez à la page de détails pour afficher les instances de base de données auxquelles le point de terminaison est associé.

Pour voir si les nouvelles instances de DB ajoutées au cluster sont automatiquement ajoutées au point de terminaison, ouvrez la page Edit (Modifier) du point de terminaison.

Pour afficher les points de terminaison personnalisés avec le AWS CLI, exécutez la describe-db-cluster-endpointscommande.

La commande suivante affiche les points de terminaison personnalisés associés à un cluster spécifique dans une région donnée. La sortie inclut à la fois les points de terminaison intégrés et les points de terminaison personnalisés.

Pour LinuxmacOS, ou Unix :

aws rds describe-db-cluster-endpoints --region region_name \ --db-cluster-identifier cluster_id

Dans Windows :

aws rds describe-db-cluster-endpoints --region region_name ^ --db-cluster-identifier cluster_id

Voici un exemple de sortie générée par la commande describe-db-cluster-endpoints. La valeur EndpointType ou WRITER pourREADER indique les points de terminaison en lecture/écriture et en lecture seule du cluster. La valeur EndpointType pour CUSTOM indique les points de terminaison que vous créez et les instances de base de données associées que vous choisissez. L'un des points de terminaison ne contient aucune valeur dans le champ StaticMembers, ce qui indique qu'il est associé à un ensemble précis d'instances de base de données. L'autre point de terminaison ne contient aucune valeur dans le champ ExcludedMembers, ce qui indique qu'il est associé à toutes les instances de base de données autres que celles qui sont répertoriées dans la liste ExcludedMembers. Ce deuxième type de point de terminaison personnalisé s'élargit afin de pouvoir accueillir les nouvelles instances que vous ajoutez au cluster.

{ "DBClusterEndpoints": [ { "Endpoint": "custom-endpoint-demo.cluster-c7tj4example.ca-central-1.rds.amazonaws.com", "Status": "available", "DBClusterIdentifier": "custom-endpoint-demo", "EndpointType": "WRITER" }, { "Endpoint": "custom-endpoint-demo.cluster-ro-c7tj4example.ca-central-1.rds.amazonaws.com", "Status": "available", "DBClusterIdentifier": "custom-endpoint-demo", "EndpointType": "READER" }, { "CustomEndpointType": "ANY", "DBClusterEndpointIdentifier": "powers-of-2", "ExcludedMembers": [], "DBClusterIdentifier": "custom-endpoint-demo", "Status": "available", "EndpointType": "CUSTOM", "Endpoint": "powers-of-2.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com", "StaticMembers": [ "custom-endpoint-demo-04", "custom-endpoint-demo-08", "custom-endpoint-demo-01", "custom-endpoint-demo-02" ], "DBClusterEndpointResourceIdentifier": "cluster-endpoint-W7PE3TLLFNSHXQKFU6J6NV5FHU", "DBClusterEndpointArn": "arn:aws:rds:ca-central-1:111122223333:cluster-endpoint:powers-of-2" }, { "CustomEndpointType": "ANY", "DBClusterEndpointIdentifier": "eight-and-higher", "ExcludedMembers": [ "custom-endpoint-demo-04", "custom-endpoint-demo-02", "custom-endpoint-demo-07", "custom-endpoint-demo-05", "custom-endpoint-demo-03", "custom-endpoint-demo-06", "custom-endpoint-demo-01" ], "DBClusterIdentifier": "custom-endpoint-demo", "Status": "available", "EndpointType": "CUSTOM", "Endpoint": "eight-and-higher.cluster-custom-123456789012.ca-central-1.rds.amazonaws.com", "StaticMembers": [], "DBClusterEndpointResourceIdentifier": "cluster-endpoint-W7PE3TLLFNSHYQKFU6J6NV5FHU", "DBClusterEndpointArn": "arn:aws:rds:ca-central-1:111122223333:cluster-endpoint:eight-and-higher" } ] }

Pour afficher les points de terminaison personnalisés avec l'API RDS, exécutez l'opération DescribeDB .html. ClusterEndpoints

Modification d'un point de terminaison personnalisé

Vous pouvez modifier les propriétés d'un point de terminaison pour changer les instances de base de données qui lui sont associées. Vous pouvez également changer le type de liste dans laquelle un point de terminaison est inclus : liste statique ou liste d'exclusion. Pour plus d'informations sur les propriétés de ces points de terminaison, consultez Règles d'appartenance des points de terminaison personnalisés.

Vous pouvez continuer à vous connecter à un point de terminaison personnalisé et à l'utiliser pendant que les changements d'une action de modification sont en cours.

Pour modifier un point de terminaison personnalisé avec le AWS Management Console, vous pouvez sélectionner le point de terminaison sur la page détaillée du cluster, ou afficher la page détaillée du point de terminaison et choisir l'action Modifier.

Pour modifier un point de terminaison personnalisé avec le AWS CLI, exécutez la modify-db-cluster-endpointcommande.

Les commandes suivantes modifient l'ensemble d'instances de base de données qui s'appliquent à un point de terminaison personnalisé et permettent éventuellement de passer d'une liste statique à une liste d'exclusion, ou inversement. Les paramètres --static-members et --excluded-members incluent une liste d'identifiants d'instance de base de données, séparés par un espace.

Pour LinuxmacOS, ou Unix :

aws rds modify-db-cluster-endpoint --db-cluster-endpoint-identifier my-custom-endpoint \ --static-members db-instance-id-1 db-instance-id-2 db-instance-id-3 \ --region region_name aws rds modify-db-cluster-endpoint --db-cluster-endpoint-identifier my-custom-endpoint \ --excluded-members db-instance-id-4 db-instance-id-5 \ --region region_name

Dans Windows :

aws rds modify-db-cluster-endpoint --db-cluster-endpoint-identifier my-custom-endpoint ^ --static-members db-instance-id-1 db-instance-id-2 db-instance-id-3 ^ --region region_name aws rds modify-db-cluster-endpoint --db-cluster-endpoint-identifier my-custom-endpoint ^ --excluded-members db-instance-id-4 db-instance-id-5 ^ --region region_name

Pour modifier un point de terminaison personnalisé avec l'API RDS, exécutez l'opération ModifyDB .html ClusterEndpoint.

Suppression d'un point de terminaison personnalisé

Pour supprimer un point de terminaison personnalisé avec le AWS Management Console, rendez-vous sur la page détaillée du cluster, sélectionnez le point de terminaison personnalisé approprié, puis sélectionnez l'action Supprimer.

Pour supprimer un point de terminaison personnalisé avec le AWS CLI, exécutez la delete-db-cluster-endpointcommande.

La commande suivante supprime un point de terminaison personnalisé. Il n'est pas nécessaire de spécifier le cluster associé, mais vous devez indiquer la région.

Pour LinuxmacOS, ou Unix :

aws rds delete-db-cluster-endpoint --db-cluster-endpoint-identifier custom-end-point-id \ --region region_name

Dans Windows :

aws rds delete-db-cluster-endpoint --db-cluster-endpoint-identifier custom-end-point-id ^ --region region_name

Pour supprimer un point de terminaison personnalisé avec l'API RDS, exécutez l'opération DeleteDB. ClusterEndpoint

nd-to-end AWS CLI Exemple de points de terminaison personnalisés

Le didacticiel suivant utilise des AWS CLI exemples utilisant la syntaxe du shell Unix pour montrer que vous pouvez définir un cluster avec plusieurs « petites » instances de base de données et quelques « grandes » instances de base de données, et créer des points de terminaison personnalisés pour vous 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' AWS CLI utilisation des clusters Aurora et les utiliser pour fournir vos propres valeurs pour des paramètres tels que la région, le groupe de sous-réseaux et le groupe de sécurité 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' AWS instancedb.r4.4xlarge, mais les deux dernières instances de base de données l'utilisentdb.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.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 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 -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 | +-------------------------+

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

Utilisation des points de terminaison d'instance

Chaque instance de base de données d'un cluster Aurora a son propre point de terminaison d'instance intégré dont le nom et les autres attributs sont gérés par Aurora. Vous ne pouvez pas créer, supprimer ni modifier ce type de point de terminaison. Il est possible que vous soyez familier avec les points de terminaison d'instance si vous utilisez Amazon RDS. Cependant, avec Aurora vous utilisez généralement les points de terminaison de l'enregistreur et du lecteur plus souvent que les points de terminaison d'instance.

Dans les opérations day-to-day Aurora, la principale méthode d'utilisation des points de terminaison d'instance consiste à diagnostiquer les problèmes de capacité ou de performance qui affectent une instance spécifique dans un cluster Aurora. Lorsque vous êtes connecté à une instance particulière, vous pouvez examiner ses variables de statut, ses métriques, etc. Cette approche vous permet de déterminer en quoi le comportement de cette instance diffère de celui des autres instances du cluster.

Dans certains cas d'utilisation avancés, vous pouvez configurer certaines instances de base de données différemment des autres. Dans cette situation, utilisez le point de terminaison d'instance pour vous connecter directement à une instance qui est plus petite, qui est plus grande ou qui présente des caractéristiques distinctes de celles des autres. Configurez également la priorité de basculement pour que cette instance de base de données spécifique soit la dernière choisie comme instance principale. Dans ces cas de figure, nous vous recommandons d'utiliser des points de terminaison personnalisés plutôt que des points de terminaison d'instance. Cette approche permet de simplifier la gestion des connexions et la haute disponibilité lorsque vous ajoutez d'autres instances de base de données au cluster.

Les points de terminaison Aurora et la haute disponibilité

Pour les clusters où la haute disponibilité est importante, utilisez le point de terminaison de l'enregistreur pour les opérations de lecture/écriture ou les connexions à usage général et le point de terminaison du lecteur pour les connexions en lecture seule. Les points de terminaison de l'enregistreur et du lecteur gèrent le basculement d'instance de base de données mieux que ne le font les points de terminaison d'instance. Contrairement aux points de terminaison d'instance, les points de terminaison de l'enregistreur et du lecteur modifient automatiquement l'instance de base de données à laquelle ils se connectent si une instance de base de données de votre cluster devient indisponible.

En cas de défaillance de l'instance de base de données principale d'un cluster DB, Aurora bascule automatiquement vers une nouvelle instance de base de données principale. Pour ce faire, il promeut un réplica Aurora existant en tant que nouvelle instance de base de données principale ou il crée une instance de base de données principale. En cas de basculement, vous pouvez utiliser le point de terminaison de l'enregistreur pour vous reconnecter à l'instance principale nouvellement promue ou créée, ou utiliser le point de terminaison du lecteur pour vous reconnecter à l'un des réplicas Aurora du cluster de base de données. Pendant un basculement, le point de terminaison de lecteur peut brièvement diriger les connexions vers la nouvelle instance de base de données principale d'un cluster de bases de données, après qu'un réplica Aurora est promu comme nouvelle instance de base de données principale.

Si vous concevez votre propre logique applicative pour gérer les connexions aux points de terminaison d'instance, vous pouvez détecter manuellement ou par programmation l'ensemble obtenu d'instances de bases de données disponibles dans le cluster de bases de données. Utilisez la describe-db-clusters AWS CLI commande ou l'opération d'API DescribeDBclusters RDS pour rechercher les points de terminaison du cluster et du lecteur de base de données, les instances de base de données, si les instances de base de données sont des lecteurs et leurs niveaux de promotion. Vous pouvez ensuite confirmer leurs classes d'instance après le basculement et vous connecter à un point de terminaison d'instance approprié.

Pour plus d'informations sur les basculements, consultez Tolérance aux pannes pour un cluster de base de données Aurora.