RDSConcepts et terminologie relatifs aux proxys - Amazon Relational Database Service

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.

RDSConcepts et terminologie relatifs aux proxys

Vous pouvez simplifier la gestion des connexions pour vos RDSinstances de base de données Amazon, vos en utilisant RDS un proxy.

RDSLe proxy gère le trafic réseau entre l'application cliente et la base de données. Il le fait d'abord de manière active en comprenant le protocole de la base de données. Il ajuste ensuite son comportement en fonction SQL des opérations de votre application et des jeux de résultats de la base de données.

RDSLe proxy réduit la mémoire et les CPU frais liés à la gestion des connexions sur votre base de données. La base de données a besoin de moins de mémoire et de CPU ressources lorsque les applications ouvrent de nombreuses connexions simultanées. La logique n'est pas non plus nécessaire dans vos applications pour fermer et rouvrir les connexions qui restent inactives pendant longtemps. De même, il faut logique d'application moindre pour rétablir les connexions en cas de problème de base de données.

L'infrastructure du RDS proxy est hautement disponible et déployée sur plusieurs zones de disponibilité (AZs). Le calcul, la mémoire et le stockage du RDS proxy sont indépendants de votre instance de RDS base de données . Cette séparation permet de réduire la surcharge sur vos serveurs de base de données, afin qu'ils puissent dédier leurs ressources à la gestion des charges de travail de base de données. Les ressources de calcul du RDS proxy sont sans serveur et s'adaptent automatiquement en fonction de la charge de travail de votre base de données.

Présentation des concepts de RDS proxy

RDSLe proxy gère l'infrastructure pour effectuer le regroupement des connexions et les autres fonctionnalités décrites dans les sections qui suivent. Les proxys sont représentés dans la RDS console sur la page Proxies.

Chaque proxy gère les connexions à une instance de RDS base de données () unique. Le proxy détermine automatiquement l'instance d'écriture actuelle pour les instances de base de données RDS multi-AZ ou les clusters provisionnés par .

Les connexions qu'un proxy maintient ouvertes et disponibles pour que vos applications de base de données puissent les utiliser constituent le pool de connexions.

Par défaut, RDS Proxy peut réutiliser une connexion après chaque transaction de votre session. « multiplexage » est le terme utilisé pour cette réutilisation au niveau de la transaction. Lorsque le RDS proxy supprime temporairement une connexion du pool de connexions pour la réutiliser, cette opération est appelée emprunt de la connexion. Lorsque cela est possible en toute sécurité, le RDS proxy renvoie cette connexion au pool de connexions.

Dans certains cas, le RDS proxy ne peut pas être sûr de pouvoir réutiliser une connexion à une base de données en dehors de la session en cours. Dans ce cas, il maintient la session sur la même connexion jusqu'à la fin. Ce comportement de secours est appelé épinglage.

Un proxy a un point de terminaison par défaut. Vous vous connectez à ce point de terminaison lorsque vous travaillez avec une instance de base de RDS données Amazon, un . Vous utilisez cette opération plutôt que de vous connecter au point de terminaison en lecture-écriture qui se connecte directement à l'instance . Pour les , vous pouvez également créer des points de terminaison supplémentaires en lecture/écriture et en lecture seule. Pour de plus amples informations, veuillez consulter Présentation des points de terminaison proxy.

Par exemple, vous pouvez toujours vous connecter au point de terminaison du cluster pour les connexions en lecture-écriture sans regroupement de connexions. Vous pouvez toujours vous connecter au point de terminaison du lecteur pour des connexions en lecture seule à charge équilibrée. Vous pouvez toujours vous connecter aux points de terminaison de l'instance pour le diagnostic et le dépannage d'instances de base de données spécifiques d'un cluster. Si vous utilisez d'autres AWS services, par exemple pour vous connecter AWS Lambda à des RDS bases de données, modifiez leurs paramètres de connexion pour utiliser le point de terminaison du proxy. Par exemple, vous spécifiez le point de terminaison du proxy pour autoriser les fonctions Lambda à accéder à votre base de données tout en tirant parti des fonctionnalités du RDS proxy.

Chaque proxy contient un groupe cible. Ce groupe cible incarne le RDScluster de base auquel le proxy peut se connecter. Les RDSinstances de base de associées à un proxy sont appelées cibles de ce proxy. Pour plus de commodité, lorsque vous créez un proxy via la console, le RDS proxy crée également le groupe cible correspondant et enregistre automatiquement les cibles associées.

Une famille de moteurs est un ensemble associé de moteurs de base de données qui utilisent le même protocole de base de données. Vous choisissez la famille de moteurs pour chaque proxy que vous créez.

Regroupement de connexions

Chaque proxy effectue un regroupement de connexions pour l'instance d'écriture de sa RDSbase de données associée. Le regroupement de connexions est une optimisation qui réduit la surcharge associée à l'ouverture et à la fermeture des connexions, tout en maintenant plusieurs connexions ouvertes simultanément. Cette surcharge inclut la mémoire nécessaire pour gérer chaque nouvelle connexion. Cela implique également des CPU frais supplémentaires pour fermer chaque connexion et en ouvrir une nouvelle. Les exemples incluent la prise de contact avec Transport Layer Security/Secure Sockets Layer (TLS/SSL), l'authentification, les capacités de négociation, etc. Le regroupement de connexions simplifie la logique de votre application. Vous n'avez pas besoin d'écrire de code d'application pour minimiser le nombre de connexions ouvertes simultanées.

Chaque proxy effectue également le multiplexage de connexion, également connu sous le nom de réutilisation de connexion. Avec le multiplexage, RDS Proxy exécute toutes les opérations d'une transaction en utilisant une connexion de base de données sous-jacente. RDSpuis peut utiliser une autre connexion pour la transaction suivante. Si vous ouvrez de nombreuses connexions simultanées au proxy, celui-ci conserve un plus petit nombre de connexions ouvertes à l'instance ou au cluster de base de données. Cela permet de réduire davantage la surcharge de mémoire pour les connexions sur le serveur de base de données. Cette technique réduit également le risque que des erreurs liées au « nombre de connexions trop élevé » se produisent.

RDSSécurité du proxy

RDSLe proxy utilise les mécanismes RDS de sécurité existants tels queTLS/SSLet AWS Identity and Access Management (IAM). Pour obtenir des informations générales sur ces fonctionnalités de sécurité, reportez-vous à la section Sécurité dans Amazon RDS. Assurez-vous également de vous familiariser avec le fonctionnement d'RDS en matière d'authentification, d'autorisation et d'autres domaines de sécurité.

RDSLe proxy peut servir de couche de sécurité supplémentaire entre les applications clientes et la base de données sous-jacente. Par exemple, vous pouvez vous connecter au proxy à l'aide de la version TLS 1.3, même si l'instance de base de données sous-jacente prend en charge une ancienne version deTLS. Vous pouvez vous connecter au proxy à l'aide d'un IAM rôle. Il en est ainsi même si le proxy se connecte à la base de données à l'aide de la méthode native d'authentification par nom d'utilisateur et mot de passe. Grâce à cette technique, vous pouvez appliquer de fortes exigences d'authentification pour les applications de base de données sans avoir à fournir un effort de migration coûteux pour les instances de base de données elles-mêmes.

Vous stockez les informations d'identification de base de données utilisées par le RDS proxy dans AWS Secrets Manager. Chaque utilisateur de base de données du RDScluster de base de données d'instance auquel un proxy accède doit disposer d'un secret correspondant dans Secrets Manager. Vous pouvez également configurer IAM l'authentification pour les utilisateurs du RDS proxy. Ce faisant, vous pouvez appliquer l'IAMauthentification pour l'accès aux bases de données, même si les bases de données utilisent l'authentification par mot de passe native. Nous vous recommandons d'utiliser ces fonctions de sécurité au lieu d'intégrer les informations d'identification de base de données dans votre code d'application.

UtiliserTLS/SSLavec un RDS proxy

Vous pouvez vous connecter au RDS proxy à l'aide du SSL protocoleTLS/.

Note

RDSLe proxy utilise les certificats du AWS Certificate Manager (ACM). Si vous utilisez un RDS proxy, vous n'avez pas besoin de télécharger les RDS certificats Amazon ni de mettre à jour les applications qui utilisent des connexions RDS proxy.

TLSPour appliquer toutes les connexions entre le proxy et votre base de données, vous pouvez spécifier un paramètre Require Transport Layer Security lorsque vous créez ou modifiez un proxy dans le AWS Management Console.

RDSLe proxy peut également garantir que votre session utiliseTLS/SSLentre votre client et le point de terminaison du RDS proxy. Pour que RDS Proxy le fasse, spécifiez les exigences côté client. SSLles variables de session ne sont pas définies pour les SSL connexions à une base de données à l'aide d'un RDS proxy.

  • RDSPour My SQL , spécifiez les exigences côté client avec le --ssl-mode paramètre lorsque vous exécutez la mysql commande.

  • Pour Amazon RDS Postgre SQL , spécifiez-le dans le sslmode=require cadre de la conninfo chaîne lorsque vous exécutez la psql commande.

RDSLe proxy prend en charge les versions de TLS protocole 1.0, 1.1, 1.2 et 1.3. Vous pouvez vous connecter au proxy à l'aide d'une version supérieure à TLS celle que vous utilisez dans la base de données sous-jacente.

Par défaut, les programmes clients établissent une connexion cryptée avec le RDS proxy, avec un contrôle supplémentaire disponible via --ssl-mode cette option. Du côté client, RDS Proxy prend en charge tous les SSL modes.

Pour le client, les SSL modes sont les suivants :

PREFERRED

SSLest le premier choix, mais ce n'est pas obligatoire.

DISABLED

Non SSL est autorisé.

REQUIRED

Faire appliquerSSL.

VERIFY_CA

Appliquez SSL et vérifiez l'autorité de certification (CA).

VERIFY_IDENTITY

Appliquez SSL et vérifiez l'autorité de certification et le nom d'hôte de l'autorité de certification.

Lorsque vous utilisez un client avec --ssl-mode VERIFY_CA ou VERIFY_IDENTITY, spécifiez l'option --ssl-ca pointant vers une autorité de certification au format .pem. Pour utiliser le .pem fichier, téléchargez toutes les autorités PEMs de certification racine depuis Amazon Trust Services et placez-les dans un seul .pem fichier.

RDSLe proxy utilise des certificats génériques, qui s'appliquent à la fois à un domaine et à ses sous-domaines. Si vous utilisez le mysql client pour vous connecter en SSL modeVERIFY_IDENTITY, vous devez actuellement utiliser la commande SQL compatible My 8.0mysql.

Basculement

Le basculement est une fonction de haute disponibilité qui remplace une instance de base de données par une autre lorsque l'instance d'origine est indisponible. Un problème lié à une instance de base de données peut entraîner un basculement. Celui-ci peut également faire partie de procédures de maintenance normales, lors d'une mise à niveau de la base de données par exemple. Le basculement s'applique aux RDS instances de base de données dans une configuration multi-AZ.

La connexion via un proxy permet à vos applications de mieux résister aux basculements de bases de données. Lorsque l'instance de base de données d'origine devient indisponible, le RDS proxy se connecte à la base de données de secours sans interrompre les connexions aux applications inactives. Cela permet d'accélérer et de simplifier le processus de basculement. Cela perturbe moins votre application qu'un redémarrage classique ou un problème de base de données.

Sans RDS proxy, un basculement implique une brève interruption de service. Pendant la panne, vous ne pouvez pas effectuer d'opérations d'écriture sur la base de données en cas de basculement. Toutes les connexions de base de données existantes sont interrompues et votre application doit les rouvrir. La base de données est ouverte à de nouvelles connexions et opérations d'écriture lorsqu'une instance de base de données en lecture seule est promue pour remplacer celle qui n'est pas disponible.

Pendant les basculements de base de données, le RDS proxy continue d'accepter les connexions à la même adresse IP et dirige automatiquement les connexions vers la nouvelle instance de base de données principale. Les clients qui se connectent via un RDS proxy ne sont pas sensibles aux risques suivants :

  • Retards de propagation du système de noms de domaine (DNS) en cas de basculement.

  • DNSMise en cache locale.

  • Délai d'expiration de connexion.

  • Incertitude concernant l'instance de base de données qui est le rédacteur en cours.

  • Attente d'une réponse à la requête d'un ancien rédacteur devenu indisponible sans fermer les connexions.

Pour les applications qui gèrent leur propre pool de connexions, le fait de passer par un RDS proxy signifie que la plupart des connexions restent actives en cas de basculement ou d'autres perturbations. Seules les connexions en cours de transaction ou de SQL relevé sont annulées. RDSLe proxy accepte immédiatement les nouvelles connexions. Lorsque le rédacteur de base de données n'est pas disponible, le RDS proxy place les demandes entrantes dans la file d'attente.

Pour les applications qui ne gèrent pas leurs propres pools de connexions, RDS Proxy offre des débits de connexion plus rapides et des connexions plus ouvertes. Il permet de réduire la surcharge coûteuse des reconnexions fréquentes à la base de données. Pour ce faire, il réutilise les connexions de base de données conservées dans le pool de connexions RDS proxy. Cette approche est particulièrement importante pour les TLS connexions, où les coûts d'installation sont importants.

Transactions

Toutes les instructions d'une seule transaction utilisent toujours la même connexion à la base de données sous-jacente. La connexion devient disponible pour une session différente lorsque la transaction se termine. Voici les conséquences de l'utilisation de la transaction en tant qu'unité de granularité :

  • La réutilisation des connexions peut avoir lieu après chaque instruction individuelle lorsque le SQL autocommit paramètre RDSfor My SQL est activé.

  • Inversement, lorsque le paramètre autocommit est désactivé, la première instruction que vous émettez dans une session lance une nouvelle transaction. Supposons, par exemple, que vous saisissiez une séquence d'instructions SELECTINSERT,UPDATE, et d'autres instructions du langage de manipulation des données (DML). Dans ce cas, la réutilisation de la connexion ne se produit que lorsque vous émettez COMMIT, ROLLBACK ou que vous mettez fin à la transaction.

  • La saisie d'une instruction Data Definition Language (DDL) entraîne la fin de la transaction une fois cette instruction terminée.

RDSLe proxy détecte la fin d'une transaction via le protocole réseau utilisé par l'application cliente de base de données. La détection des transactions ne repose pas sur des mots clés tels que COMMIT ou ROLLBACK apparaissant dans le texte de la SQL déclaration.

Dans certains cas, le RDS proxy peut détecter une demande de base de données qui rend impossible le déplacement de votre session vers une autre connexion. Dans ce cas, il désactive le multiplexage pour cette connexion pendant le reste de votre session. La même règle s'applique si le RDS proxy ne peut pas être certain que le multiplexage est pratique pour la session. Cette opération est appelée épinglage. Pour savoir comment détecter et réduire l'épinglage, consultez Éviter d'épingler un proxy RDS.