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.
Utilisation des points de terminaison du proxy Amazon RDS
Les points de terminaison RDS Proxy offrent des moyens flexibles et efficaces de gérer les connexions aux bases de données, ce qui améliore l'évolutivité, la disponibilité et la sécurité. Avec les points de terminaison proxy, vous pouvez :
-
Simplifiez la surveillance et le dépannage : utilisez plusieurs points de terminaison pour suivre et gérer indépendamment les connexions provenant de différentes applications.
-
Améliorez l'évolutivité de la lecture — Tirez parti des points de terminaison des lecteurs avec les clusters de base de données Aurora pour répartir efficacement le trafic de lecture, ce qui optimise les performances pour les charges de travail gourmandes en requêtes.
-
Activez l'accès inter-VPC : connectez les bases de données à VPCs l'aide de points de terminaison inter-VPC, ce qui permet à des ressources telles que les instances Amazon d'un VPC d'accéder EC2 aux bases de données d'un autre.
Présentation des points de terminaison proxy
Travailler avec des points de terminaison RDS Proxy implique les mêmes types de procédures qu'avec les points de terminaison de clusters de base de données et de lecteur Aurora. Pour vous familiariser avec les points de terminaison Aurora, consultez les informations dans Connexions aux terminaux Amazon Aurora.
Lorsque vous utilisez le proxy RDS avec un cluster Aurora, le point de terminaison par défaut prend en charge les opérations de lecture et d'écriture. Cela signifie qu'il achemine toutes les demandes vers l'instance d'écriture du cluster, ce qui contribue à sa max_connections
limite. Pour mieux répartir le trafic, vous pouvez créer des points de terminaison supplémentaires en lecture/écriture ou en lecture seule pour votre proxy, ce qui permet une gestion plus efficace de la charge de travail et une meilleure évolutivité.
Utilisez un point de terminaison en lecture seule avec votre proxy pour gérer les requêtes de lecture, comme vous le feriez avec un point de terminaison de lecteur pour un cluster provisionné par Aurora. Cette approche maximise l'évolutivité de lecture d'Aurora en répartissant les requêtes sur une ou plusieurs instances de base de données de lecteur. En utilisant un point de terminaison en lecture seule et en ajoutant d'autres instances de lecteur selon les besoins, vous pouvez augmenter le nombre de requêtes et de connexions simultanées que votre cluster peut gérer.
Astuce
Lorsque vous créez un proxy pour un cluster Aurora à l'aide de AWS Management Console, le proxy RDS peut créer automatiquement un point de terminaison de lecteur. Pour plus d'informations sur les avantages d'un point de terminaison de lecteur, consultez Utilisation des points de terminaison de lecteur avec les clusters Aurora.
Lorsque vous créez un point de terminaison proxy, vous pouvez l'associer à un cloud privé virtuel (VPC) différent du VPC du proxy. Cela vous permet de vous connecter au proxy depuis un autre VPC, tel qu'un VPC utilisé par une autre application au sein de votre organisation.
Pour plus d'informations sur les limites associées aux points de terminaison proxy, consultez Limites pour les points de terminaison proxy.
Les journaux du proxy RDS préfixent chaque entrée avec le nom du point de terminaison du proxy associé. Il peut s'agir du nom que vous avez spécifié pour un point de terminaison défini par l'utilisateur ou du nom spécial du point de terminaison default
de lecture/écriture par défaut du proxy.
Chaque point de terminaison du proxy possède son propre ensemble de CloudWatch mesures. Surveillez les métriques de tous les points de terminaison du proxy, d'un point de terminaison spécifique ou de tous les points de terminaison en lecture/écriture ou en lecture seule d'un proxy. Pour de plus amples informations, veuillez consulter Surveillance des métriques du proxy RDS avec Amazon CloudWatch.
Un point de terminaison de proxy utilise le même mécanisme d'authentification que le proxy auquel il est associé. RDS Proxy configure automatiquement des permissions et des autorisations pour le point de terminaison défini par l'utilisateur, conformément aux propriétés du proxy associé.
Pour découvrir comment les points de terminaison proxy fonctionnent pour les clusters de base de données dans une base de données globale Aurora, consultez Fonctionnement des points de terminaison du proxy RDS avec les bases de données globales.
Limites pour les points de terminaison proxy
Les points de terminaison du proxy RDS présentent les limites suivantes :
-
Le point de terminaison par défaut du proxy RDS ne peut pas être modifié.
-
Le nombre maximal de points de terminaison définis par l'utilisateur pour un proxy est de 20. Un proxy peut ainsi avoir jusqu'à 21 points de terminaison : le point de terminaison par défaut, plus 20 que vous créez.
-
Lorsque vous associez des points de terminaison supplémentaires à un proxy, RDS Proxy détermine automatiquement les instances de base de données à utiliser dans votre cluster pour chaque point de terminaison. Vous ne pouvez pas sélectionner d'instances spécifiques comme c'est le cas pour les points de terminaison personnalisés Aurora.
Lorsque vous créez un proxy, RDS crée automatiquement un point de terminaison VPC pour une communication sécurisée entre les applications et la base de données. Le point de terminaison VPC est visible et est accessible depuis la console Amazon VPC.
L'ajout d'un nouveau point de terminaison proxy provisionne un point de terminaison d' AWS PrivateLink interface. Si vous ajoutez un ou plusieurs points de terminaison à votre proxy, des frais supplémentaires vous seront facturés. Pour plus d'informations, consultez la section Tarification du proxy RDS
Utilisation des points de terminaison de lecteur avec les clusters Aurora
Vous pouvez créer et vous connecter à des points de terminaison en lecture seule appelés points de terminaison de lecteur lorsque vous utilisez RDS Proxy avec les clusters Aurora. Ces points de terminaison du lecteur peuvent améliorer l'évolutivité de lecture de vos applications exigeantes en requêtes. Les points de terminaison du lecteur peuvent également améliorer la disponibilité de vos connexions si une instance de base de données de lecteur dans votre cluster devient indisponible.
Note
Lorsque vous spécifiez qu'un nouveau point de terminaison est en lecture seule, RDS Proxy exige que le cluster Aurora contienne une ou plusieurs instances de base de données de lecteur. Dans certains cas, vous pouvez remplacer la cible du proxy par un cluster Aurora ne contenant qu'un seul rédacteur. Dans ce cas, toutes les demandes au point de terminaison de lecteur échouent avec une erreur. Les demandent échouent également si la cible du proxy est une instance RDS au lieu d'un cluster Aurora.
Si un cluster Aurora possède des instances de lecteur mais que ces instances ne sont pas disponibles, RDS Proxy attend d'envoyer la demande au lieu de retourner une erreur immédiatement. Si aucune instance de lecteur n'est disponible pendant la période de délai d'expiration de l'emprunt de connexion, la demande retourne une erreur.
Amélioration de la disponibilité des applications par les points de terminaison du lecteur
Il peut arriver qu'une ou plusieurs instances de lecteur de votre cluster deviennent indisponibles. Dans ce cas, les connexions qui utilisent un point de terminaison de lecteur d'un proxy de base de données peuvent récupérer plus rapidement que celles qui utilisent le point de terminaison du lecteur Aurora. RDS Proxy achemine les connexions uniquement vers les instances de lecteur disponibles dans le cluster. La mise en cache DNS ne provoque pas de retard lorsqu'une instance devient indisponible.
Si la connexion est multiplexée, RDS Proxy dirige les requêtes suivantes vers une autre instance de base de données de lecteur sans aucune interruption de votre application. Pendant la commutation automatique vers une nouvelle instance de lecteur, RDS Proxy vérifie le retard de réplication entre les anciennes et les nouvelles instances de lecteur. RDS Proxy s'assure que la nouvelle instance de lecteur est à jour avec les mêmes modifications que l'instance précédente. De cette façon, votre application ne voit jamais de données obsolètes lorsque RDS Proxy passe d'une instance de base de données de lecteur à une autre.
Si la connexion est épinglée, la requête suivante sur la connexion retourne une erreur. Toutefois, votre application peut se reconnecter immédiatement au même point de terminaison. RDS Proxy achemine la connexion vers une autre instance de base de données du lecteur qui se trouve dans l'état available
. Lorsque vous vous reconnectez manuellement, RDS Proxy ne vérifie pas le décalage de réplication entre l'ancienne instance de lecteur et la nouvelle.
Si votre cluster Aurora n'a pas d'instances de lecteur disponibles, RDS Proxy vérifie si cette condition est temporaire ou permanente. Le comportement respectif dans chaque cas est le suivant :
-
Supposons que votre cluster contienne une ou plusieurs instances de base de données de lecteur, mais qu'aucune d'entre elles ne se trouve dans l'état
Available
. Par exemple, toutes les instances de lecteur peuvent se relancer ou rencontrer des problèmes. Dans ce cas, les tentatives de connexion à un point de terminaison de lecteur attendent qu'une instance de lecteur devienne disponible. Si aucune instance de lecteur n'est disponible pendant la période de délai d'expiration de l'emprunt de connexion, la tentative de connexion échoue. Si une instance de lecteur devient disponible, la tentative de connexion aboutit. -
Supposons que votre cluster ne contienne pas d'instances de base de données de lecteur. Dans ce cas, RDS Proxy retourne une erreur immédiatement si vous essayez de vous connecter à un point de terminaison de lecteur. Pour corriger ce problème, ajoutez une ou plusieurs instances de lecteur à votre cluster avant de vous connecter au point de terminaison du lecteur.
Amélioration de l'évolutivité des requêtes par les points de terminaison du lecteur
Les points de terminaison de lecteur d'un proxy peuvent améliorer l'évolutivité des requêtes Aurora de la manière suivante :
-
Lorsque vous ajoutez des instances de lecteur à votre cluster Aurora, RDS Proxy peut acheminer de nouvelles connexions à l'un des points de terminaison de lecteur vers les différentes instances de lecteur. De cette façon, les requêtes effectuées à l'aide d'une connexion de point de terminaison de lecteur ne ralentissent pas les demandes effectuées à l'aide d'une autre connexion de point de terminaison de lecteur. Les requêtes s'exécutent sur des instances de base de données distinctes. Chaque instance de base de données possède ses propres ressources de calcul, de cache tampon, etc.
-
Dans la mesure du possible, RDS Proxy utilise la même instance de base de données de lecteur pour tous les problèmes de requêtes utilisant une connexion de point de terminaison de lecteur particulière. De cette façon, un ensemble de requêtes associées sur les mêmes tables peut tirer avantage de la mise en cache, de l'optimisation du plan, etc., sur une instance de base de données particulière.
-
Si une instance de base de données de lecteur devient indisponible, l'effet sur votre application sera différent selon que la séance est multiplexée ou épinglée. Si la séance est multiplexée, RDS Proxy achemine toutes les requêtes ultérieures vers une autre instance de base de données de lecteur sans que vous ayez à intervenir. Si la séance est épinglée, votre application obtient une erreur et doit se reconnecter. Vous pouvez vous reconnecter au point de terminaison du lecteur immédiatement et RDS Proxy achemine la connexion vers une instance de base de données de lecteur disponible. Pour plus d'informations sur le multiplexage et l'épinglage des séances proxy, consultez Vue d'ensemble des concepts de RDS proxy.
-
Plus le cluster contient d'instances de base de données de lecteur, plus vous pouvez établir de connexions simultanées à l'aide de points de terminaison de lecteur. Par exemple, supposons que votre cluster contienne quatre instances de base de données de lecteur, qui sont chacune configurées pour prendre en charge 200 connexions simultanées. Supposons que votre proxy soit configuré pour utiliser 50 % du nombre maximal de connexions. Ici, le nombre maximal de connexions que vous pouvez effectuer via les points de terminaison de lecteur dans le proxy est de 100 (50 % de 200) pour le lecteur 1. Le nombre est également de 100 pour le lecteur 2, et ainsi de suite jusqu'à un total de 400. Si vous doublez le nombre d'instances de base de données de lecteur dans le cluster à huit, le nombre maximal de connexions via les points de terminaison de lecteur double également pour atteindre 800.
Exemples d'utilisation de points de terminaison de lecteur
L'exemple Linux suivant montre comment vous pouvez confirmer que vous êtes connecté à un cluster Aurora MySQL via un point de terminaison de lecteur. Le paramètre de configuration innodb_read_only
est activé. Les tentatives d'effectuer des opérations en écriture telles que des instructions CREATE DATABASE
retournent une erreur. Vous pouvez confirmer que vous êtes connecté à une instance de base de données de lecteur en vérifiant le nom de l'instance de base de données à l'aide de la variable aurora_server_id
.
Astuce
Ne vous basez pas uniquement sur la vérification du nom de l'instance de base de données pour déterminer si la connexion est en lecture/écriture ou en lecture seule. N'oubliez pas que les instances de base de données dans un cluster Aurora peuvent modifier les rôles entre le rédacteur et le lecteur lorsque des basculements se produisent.
$
mysql -h endpoint-demo-reader.endpoint.proxy-demo.us-east-1.rds.amazonaws.com -u admin -p...
mysql>
select @@innodb_read_only;+--------------------+ | @@innodb_read_only | +--------------------+ | 1 | +--------------------+
mysql>
create database shouldnt_work;ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement
mysql>
select @@aurora_server_id;+---------------------------------------+ | @@aurora_server_id | +---------------------------------------+ | proxy-reader-endpoint-demo-instance-3 | +---------------------------------------+
L'exemple suivant montre comment votre connexion à un point de terminaison de lecteur proxy peut continuer à fonctionner même lorsque l'instance de base de données de lecteur est supprimée. Dans cet exemple, le cluster Aurora contient deux instances de lecteur, instance-5507
et instance-7448
. La connexion au point de terminaison du lecteur commence en utilisant l'une des instances du lecteur. Pendant l'exemple, cette instance de lecteur est supprimée par une commande delete-db-instance
. RDS Proxy passe à une autre instance de lecteur pour les requêtes suivantes.
$
mysql -h reader-demo.endpoint.proxy-demo.us-east-1.rds.amazonaws.com -umy_user
-p...
mysql>
select @@aurora_server_id;+--------------------+ | @@aurora_server_id | +--------------------+ | instance-5507 | +--------------------+
mysql>
select @@innodb_read_only;+--------------------+ | @@innodb_read_only | +--------------------+ | 1 | +--------------------+
mysql>
select count(*) from information_schema.tables;+----------+ | count(*) | +----------+ | 328 | +----------+
Pendant que la séance mysql
continue de s'exécuter, la commande suivante supprime l'instance de lecteur à laquelle le point de terminaison du lecteur est connecté.
aws rds delete-db-instance --db-instance-identifier instance-5507 --skip-final-snapshot
Les requêtes dans la session mysql
continuent à opérer sans avoir besoin de se reconnecter. RDS Proxy bascule automatiquement vers une autre instance de base de données de lecteur.
mysql>
select @@aurora_server_id;+--------------------+ | @@aurora_server_id | +--------------------+ | instance-7448 | +--------------------+
mysql>
select count(*) from information_schema.TABLES;+----------+ | count(*) | +----------+ | 328 | +----------+
Accès aux bases de données Aurora via VPCs
Par défaut, les composants de votre pile technologique Aurora sont tous dans le même VPC Amazon. Supposons, par exemple, qu'une application exécutée sur une EC2 instance Amazon se connecte à une instance de base de données de données Aurora. Dans ce cas, le serveur d'applications et la base de données doivent se trouver tous les deux dans le même VPC.
Avec RDS Proxy, vous pouvez configurer l'accès à une de données Aurora dans un VPC à partir des ressources d'un autre VPC, telles que des instances. EC2 Par exemple, votre organisation peut avoir plusieurs applications qui accèdent aux mêmes ressources de base de données. Chaque application peut se trouver dans son propre VPC.
Pour activer l'accès entre VPC, vous créez un nouveau point de terminaison pour le proxy. Le proxy lui-même réside dans le même VPC que le cluster de base de données Aurora. Cependant, le point de terminaison inter-VPC réside dans l'autre VPC, avec les autres ressources telles que les instances. EC2 Le point de terminaison inter-VPC est associé à des sous-réseaux et à des groupes de sécurité provenant du même VPC que les autres ressources. EC2 Ces associations vous permettent de vous connecter au point de terminaison à partir des applications qui, autrement, ne peuvent pas accéder à la base de données en raison des restrictions de VPC.
Les étapes suivantes vous expliquent comment créer et accéder à un point de terminaison entre VPC via RDS Proxy :
-
Créez-en deux VPCs ou choisissez-en deux VPCs que vous utilisez déjà pour le travail avec Aurora Chaque VPC doit disposer de ses propres ressources réseau associées, telles qu'une passerelle Internet, des tables de routage, des sous-réseaux et des groupes de sécurité. Si vous n'avez qu'un seul VPC, vous pouvez consulter Mise en route avec Amazon Aurora à propos des étapes de configuration d'un autre VPC à suivre pour utiliser Aurora avec succès. Vous pouvez également examiner votre VPC existant dans la EC2 console Amazon pour voir les types de ressources à connecter entre elles.
-
Créez un proxy de base de données associé au cluster de base de données Aurora DB auquel vous voulez vous connecter. Suivez la procédure décrite dans Création d'un proxy pour ).
-
Sur la page Details (Détails) de votre proxy dans la console RDS, dans la section Proxy endpoints (Points de terminaison proxy), cliquez sur Create endpoint (Créer un point de terminaison). Suivez la procédure décrite dans Création d'un point de terminaison proxy.
-
Choisissez si le point de terminaison entre VPC doit être en lecture/écriture ou en lecture seule.
-
Au lieu d'accepter la valeur par défaut du même VPC que le cluster de base de données Aurora, sélectionnez un autre VPC. Ce VPC doit se trouver dans la même AWS région que le VPC où réside le proxy.
-
Maintenant, au lieu d'accepter les valeurs par défaut pour les sous-réseaux et les groupes de sécurité du même VPC que le cluster de base de données Aurora, effectuez de nouvelles sélections. Basez vos sélections sur les sous-réseaux et des groupes de sécurité du VPC que vous avez sélectionné.
-
Vous n'avez pas besoin de modifier les paramètres des secrets Secrets Manager. Les mêmes informations d'identification fonctionnent pour tous les points de terminaison de votre proxy, indépendamment du VPC dans lequel réside chaque point de terminaison.
-
Attendez que le nouveau point de terminaison atteigne l'état Available (Disponible).
-
Notez le nom complet du point de terminaison. Il s'agit de la valeur se terminant par
que vous fournissez dans le cadre de la chaîne de connexions pour votre application de base de données.Region_name
.rds.amazonaws.com -
Accédez au nouveau point de terminaison à partir d'une ressource située dans le même VPC que le point de terminaison. Un moyen simple de tester ce processus consiste à créer une nouvelle EC2 instance dans ce VPC. Connectez-vous ensuite à l' EC2 instance et exécutez les
psql
commandesmysql
or pour vous connecter en utilisant la valeur du point de terminaison dans votre chaîne de connexion.