Utilisation d'Amazon RDS Proxy - 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.

Utilisation d'Amazon RDS Proxy

Amazon RDS Proxy vous permet d'autoriser vos applications à grouper et à partager des connexions de bases de données pour améliorer leur capacité de mise à l'échelle. RDS Proxy rend les applications plus résistantes aux échecs de base de données en les connectant automatiquement à une instance de base de données de secours tout en préservant les connexions des applications. En utilisant le proxy RDS, vous pouvez également appliquer l'authentification AWS Identity and Access Management (IAM) aux bases de données et y stocker les informations d'identification en toute sécurité. AWS Secrets Manager

Avec RDS Proxy, vous pouvez gérer des pics imprévisibles de trafic des bases de données. Dans le cas contraire, ces surtensions peuvent entraîner des problèmes en raison d'un surabonnement ou de la création rapide de nouvelles connexions. RDS Proxy établit un groupe de connexions de bases de données et réutilise les connexions de ce groupe. Cette approche évite la surcharge de mémoire et d'UC liée à l'ouverture d'une nouvelle connexion de base de données à chaque fois. Pour protéger une base de données contre le surabonnement, vous pouvez contrôler le nombre de connexions à la base de données créées.

Le proxy RDS met en file d'attente ou limite les connexions aux applications qui ne peuvent pas être traitées immédiatement à partir du pool de connexions. Bien que les latences puissent augmenter, votre application peut continuer à évoluer sans échouer brusquement ou surcharger la base de données. Si les demandes de connexion dépassent les limites que vous définissez, RDS Proxy rejette les connexions des applications (en d'autres termes, il déleste la charge). Dans le même temps, il maintient des performances prévisibles pour la charge que le RDS peut desservir avec la capacité disponible.

Vous pouvez réduire la surcharge pour traiter des informations d'identification et établir une connexion sécurisée pour chaque nouvelle connexion. RDS Proxy peut gérer une partie de ce travail pour le compte de la base de données.

RDS Proxy est entièrement compatible avec les versions de moteur qu'il prend en charge. Vous pouvez activer RDS Proxy pour la plupart des applications sans modifier le code.

Disponibilité des régions et des versions

La disponibilité et la prise en charge des fonctionnalités varient selon les versions spécifiques de chaque moteur de base de données, et selon les Régions AWS. Pour obtenir plus d'informations sur la disponibilité des versions et des régions d'Amazon RDS avec RDS Proxy, consultez Proxy Amazon RDS.

Quotas et limites pour RDS Proxy

Voici les quotas et les limites qui s'appliquent à RDS Proxy :

  • Vous pouvez avoir jusqu'à 20 proxys pour chaque identifiant de AWS compte. Si votre application nécessite davantage de proxys, vous pouvez demander des proxys supplémentaires en ouvrant un ticket auprès de l'organisation AWS Support.

  • Chaque proxy peut avoir jusqu'à 200 secrets Secrets Manager associés. Ainsi, chaque proxy peut se connecter avec 200 comptes d'utilisateur différents maximum à tout moment.

  • Chaque proxy possède un point de terminaison par défaut. Vous pouvez également ajouter jusqu'à 20 points de terminaison de proxy pour chaque proxy. Vous pouvez créer, afficher, modifier et supprimer ces points de terminaison.

  • Pour les instances de base de données RDS dans les configurations de réplication, vous pouvez associer un proxy uniquement à l'instance de base de données du rédacteur, mais pas à un réplica en lecture.

  • Votre RDS Proxy doit se trouver dans le même cloud privé virtuel (VPC) que la base de données. Le proxy peut ne pas être accessible au public, contrairement à la base de données. Par exemple, si vous prototypez votre base de données sur un hôte local, vous ne pouvez pas vous connecter à votre proxy si vous n'avez pas défini la configuration réseau requise pour autoriser la connexion au proxy. Cela est dû au fait que votre hôte local se trouve en dehors du VPC du proxy.

  • Vous ne pouvez pas utiliser RDS Proxy avec un VPC dont la location est définie sur dedicated.

  • Si vous utilisez le proxy RDS avec un de base de données RDS sur lequel l'authentification IAM est activée, vérifiez l'authentification de l'utilisateur. Les utilisateurs qui se connectent via un proxy doivent s'authentifier à l'aide d'informations d'identification. Pour plus d'informations sur la prise en charge de Secrets Manager et d'IAM dans RDS Proxy, consultez Configuration des informations d'identification de base de données dans AWS Secrets Manager et Configuration des AWS Identity and Access Management politiques (IAM).

  • Vous ne pouvez pas utiliser RDS Proxy avec DNS personnalisé lorsque vous utilisez la validation du nom d'hôte SSL.

  • Chaque proxy peut être associé à une instance de base de données unique. Toutefois, vous pouvez associer plusieurs proxies à la même instance de base de données.

  • Le proxy épingle la session à la connexion en cours si la taille de texte de l'instruction est supérieure à 16 ko.

  • Certaines régions ont des restrictions de zone de disponibilité (AZ) à prendre en compte lors de la création de votre proxy. La région USA Est (Virginie du Nord) ne prend pas en charge RDS Proxy dans la zone de disponibilité use1-az3. La région USA Ouest (Californie du Nord) ne prend pas en charge RDS Proxy dans la zone de disponibilité usw1-az2. Lorsque vous sélectionnez des sous-réseaux lors de la création de votre proxy, assurez-vous de ne pas sélectionner de sous-réseaux dans les zones de disponibilité mentionnées ci-dessus.

Pour connaître les limites supplémentaires pour chaque moteur de base de données, consultez les sections suivantes :

Limites supplémentaires pour RDS for MariaDB

Les limites supplémentaires suivantes s'appliquent à RDS Proxy avec RDS for MariaDB :

  • Actuellement, tous les proxies écoutent sur le port 3306 pour MariaDB. Les proxys se connectent toujours à votre base de données à l'aide du port spécifié dans les paramètres de la base de données.

  • Vous ne pouvez pas utiliser RDS Proxy avec des bases de données MariaDB autogérées dans des instances Amazon EC2.

  • Vous ne pouvez pas utiliser RDS Proxy avec une instance de base de données MariaDB dont le paramètre read_only dans son groupe de paramètres de base de données est défini sur 1.

  • Le proxy RDS ne prend pas en charge le mode compressé MariaDB. Par exemple, il ne prend pas en charge la compression utilisée par les options --compress ou -C de la commande mysql.

  • Certaines instructions et fonctions SQL peuvent modifier l'état de connexion sans provoquer d'épinglage. Pour connaître le comportement d'épinglage le plus récent, consultez la section Contournement de l'épinglage.

  • RDS Proxy ne prend pas en charge le plugin auth_ed25519 MariaDB.

  • RDS Proxy ne prend pas en charge le protocole TLS (Transport Layer Security) version 1.3 pour les bases de données MariaDB.

  • Les connexions à la base de données qui traitent une commande GET DIAGNOSTIC peuvent renvoyer des informations inexactes lorsque le proxy RDS réutilise la même connexion à la base de données pour exécuter une autre requête. Cela peut se produire quand le proxy RDS multiplexe les connexions à la base de données. Pour de plus amples informations, veuillez consulter Présentation des concepts RDS Proxy.

Important

Pour les proxies associés aux bases de données MariaDB, ne définissez pas le paramètre de configuration sql_auto_is_null sur true ou sur une valeur différente de zéro dans la requête d'initialisation. Cela pourrait entraîner un comportement incorrect de l'application.

Limites supplémentaires pour RDS for Microsoft SQL Server

Les limitations supplémentaires suivantes s'appliquent à RDS Proxy avec les bases de données RDS for Microsoft SQL Server :

  • Le nombre de secrets de Secrets Manager que vous devez créer pour un proxy dépend du classement utilisé par votre instance de base de données. Par exemple, supposons que votre instance de base de données utilise un classement sensible à la casse. Si votre application accepte à la fois « Admin » et « admin », votre proxy a besoin de deux secrets distincts. Pour plus d'informations sur le classement SQL Server, consultez la documentation Microsoft SQL Server.

  • RDS Proxy ne prend pas en charge les connexions qui utilisent Active Directory.

  • Vous ne pouvez pas utiliser l'authentification IAM avec des clients qui ne prennent pas en charge les propriétés des jetons. Pour de plus amples informations, veuillez consulter Considérations relatives à la connexion à un proxy avec Microsoft SQL Server.

  • Les résultats @@IDENTITY, @@ROWCOUNT et SCOPE_IDENTITY ne sont pas toujours précis. Pour contourner ce problème, récupérez leurs valeurs dans la même instruction de session pour vous assurer qu'elles renvoient les informations correctes.

  • Si la connexion utilise plusieurs ensembles de résultats actifs (MARS), RDS Proxy n'exécute pas les requêtes d'initialisation. Pour plus d'informations, consultez la documentation Microsoft SQL Server.

  • Le proxy RDS ne prend pas en charge les instances de base de données RDS pour SQL Server qui s'exécutent sur la version majeure de SQL Server 2014.

Limites supplémentaires pour RDS for MySQL

Les limitations supplémentaires suivantes s'appliquent à RDS Proxy avec RDS for MySQL :

  • RDS Proxy ne prend pas en charge les plugins d'authentification MySQL sha256_password et caching_sha2_password. Ces plugins implémentent le hachage SHA-256 pour les mots de passe des comptes utilisateur.

  • Actuellement, tous les proxies écoutent sur le port 3306 pour MySQL. Les proxys se connectent toujours à votre base de données à l'aide du port spécifié dans les paramètres de la base de données.

  • Vous ne pouvez pas utiliser RDS Proxy avec des bases de données MySQL autogérées dans des instances EC2.

  • Vous ne pouvez pas utiliser RDS Proxy avec une instance de base de données RDS for MySQL dont le paramètre read_only dans son groupe de paramètres de base de données est défini sur 1.

  • RDS Proxy ne prend pas en charge le mode compressé de MySQL. Par exemple, il ne prend pas en charge la compression utilisée par les options --compress ou -C de la commande mysql.

  • Les connexions à la base de données qui traitent une commande GET DIAGNOSTIC peuvent renvoyer des informations inexactes lorsque le proxy RDS réutilise la même connexion à la base de données pour exécuter une autre requête. Cela peut se produire quand le proxy RDS multiplexe les connexions à la base de données.

  • Certaines instructions et fonctions SQL SET LOCAL peuvent par exemple modifier l'état de la connexion sans provoquer d'épinglage. Pour connaître le comportement d'épinglage le plus récent, consultez la section Contournement de l'épinglage.

Important

Pour les proxies associés aux bases de données MySQL, ne définissez pas le paramètre de configuration sql_auto_is_null sur true ou sur une valeur différente de zéro dans la requête d'initialisation. Cela pourrait entraîner un comportement incorrect de l'application.

Limites supplémentaires pour RDS for PostgreSQL

Les limitations supplémentaires suivantes s'appliquent à RDS Proxy avec les bases de données RDS for PostgreSQL :

  • RDS Proxy ne prend pas en charge les filtres d'épinglage de session pour PostgreSQL.

  • Actuellement, tous des proxies écoutent sur le port 5432 pour PostgreSQL.

  • Pour PostgreSQL, RDS Proxy ne prend actuellement pas en charge l'annulation d'une requête d'un client en émettant un CancelRequest. C'est le cas par exemple lorsque vous annulez une requête longue dans une session psql interactive à l'aide de Ctrl+C.

  • Les résultats de la fonction PostgreSQL lastval ne sont pas toujours précis. Pour contourner ce problème, utilisez l'instruction INSERT avec la clause RETURNING.

  • Le proxy RDS ne prend actuellement pas en charge le mode de réplication de streaming.

  • Avec RDS pour PostgreSQL 16, les modifications apportées à scram_iterations la valeur ont un impact exclusif sur le processus d'authentification entre le proxy et la base de données. Plus précisément, si vous le configurezscram-sha-256, ClientPasswordAuthType les personnalisations apportées à la scram_iterations valeur n'ont aucune influence sur l'authentification par client-to-proxy mot de passe. Au lieu de cela, la valeur d'itération pour l'authentification par client-to-proxy mot de passe est fixée à 4096.

Important

Pour des proxies existants avec des bases de données PostgreSQL, si vous modifiez l'authentification de la base de données pour utiliser uniquement SCRAM, le proxy devient indisponible pendant 60 secondes maximum. Pour éviter ce problème, effectuez l'une des actions suivantes :

  • Veillez à ce que la base de données permette à la fois l'authentification SCRAM et MD5.

  • Pour utiliser uniquement l'authentification SCRAM, créez un nouveau proxy, migrez le trafic de votre application vers ce nouveau proxy, puis supprimez le proxy précédemment associé à la base de données.