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.
Résolution des problèmes liés au RDS Proxy
Vous trouverez ci-dessous des idées pour résoudre certains problèmes courants liés au proxy RDS et des informations sur les CloudWatch journaux du proxy RDS.
Dans les journaux RDS Proxy, chaque entrée est préfixée avec le nom du point de terminaison proxy associé. Ce nom peut être celui que vous avez spécifié pour un point de terminaison défini par l'utilisateur. Il peut également s'agir du nom spécial du point default
de terminaison par défaut d'un proxy qui exécute des demandes de lecture/écriture. Pour plus d'informations sur les points de terminaison proxy, veuillez consulter Utilisation des points de terminaison du proxy Amazon RDS.
Rubriques
Vérification de la connectivité pour un proxy
Vous pouvez utiliser les commandes suivantes pour vérifier que tous les composants tels que le proxy, la base de données et les instances de calcul de la connexion peuvent communiquer entre eux.
Examinez le proxy lui-même à l'aide de la describe-db-proxiescommande. Examinez également le groupe cible associé à l'aide de la commande describe-db-proxy-target-groups. Vérifiez que les détails des cibles correspondent au cluster de base de données Aurora que vous prévoyez d'associer au proxy. Utilisez des commandes telles que les suivantes.
aws rds describe-db-proxies --db-proxy-name $DB_PROXY_NAME aws rds describe-db-proxy-target-groups --db-proxy-name $DB_PROXY_NAME
Pour vérifier que le proxy peut se connecter à la base de données sous-jacente, examinez les cibles spécifiées dans les groupes cibles à l'aide de la describe-db-proxy-targetscommande. Utilisez une commande telle que la suivante.
aws rds describe-db-proxy-targets --db-proxy-name $DB_PROXY_NAME
La sortie de la describe-db-proxy-targetscommande inclut un TargetHealth
champ. Vous pouvez examiner les champs State
, Reason
et Description
dans TargetHealth
pour vérifier si le proxy peut communiquer avec l'instance de base de données sous-jacente.
-
Si la valeur
State
estAVAILABLE
, cela indique que le proxy peut se connecter à l'instance de base de données. -
Si la valeur
State
estUNAVAILABLE
, cela signale un problème de connexion temporaire ou permanent. Dans ce cas, examinez les champsReason
etDescription
. Par exemple, siReason
a une valeurPENDING_PROXY_CAPACITY
, essayez de vous connecter à nouveau une fois que le proxy a terminé son opération de mise à l'échelle. SiReason
a une valeurUNREACHABLE
,CONNECTION_FAILED
ouAUTH_FAILURE
, utilisez l'explication du champDescription
pour vous aider à diagnostiquer le problème. -
Le champ
State
peut avoir une valeurREGISTERING
pendant une courte période avant de passer àAVAILABLE
ouUNAVAILABLE
.
Si la commande Netcat (nc
) suivante aboutit, vous pouvez accéder au point de terminaison du proxy à partir de l'instance EC2 ou d'un autre système auquel vous êtes connecté. Cette commande signale un échec si vous n'êtes pas dans le même VPC que le proxy et la base de données associée. Vous pouvez peut-être vous connecter directement à la base de données sans vous trouver dans le même VPC. Cependant, vous ne pouvez pas vous connecter au proxy sauf si vous êtes dans le même VPC.
nc -zx
MySQL_proxy_endpoint
3306 nc -zxPostgreSQL_proxy_endpoint
5432
Vous pouvez utiliser les commandes suivantes pour vous assurer que votre instance EC2 possède les propriétés requises. Le VPC de l'instance EC2 doit notamment être le même que le VPC de l'instance de base de données RDS à laquelle du cluster de base de données Aurora auquel le proxy se connecte.
aws ec2 describe-instances --instance-ids
your_ec2_instance_id
Examinez les secrets Secrets Manager utilisés pour le proxy.
aws secretsmanager list-secrets aws secretsmanager get-secret-value --secret-id
your_secret_id
Assurez-vous que le SecretString
champ affiché par get-secret-value
est codé sous la forme d'une chaîne JSON incluant les password
champs username
et. L'exemple suivant illustre le format du champ SecretString
.
{
"ARN": "some_arn
",
"Name": "some_name
",
"VersionId": "some_version_id",
"SecretString": '{"username":"some_username","password":"some_password
"}',
"VersionStages": [ "some_stage
" ],
"CreatedDate": some_timestamp
}
Problèmes courants et solutions correspondantes
Cette section décrit certains problèmes courants et les solutions potentielles lors de l'utilisation du proxy RDS.
Après avoir exécuté la commande aws rds describe-db-proxy-targets
CLI, si la TargetHealth
description l'indiqueProxy does not have any registered
credentials
, vérifiez les points suivants :
-
Des informations d'identification sont enregistrées pour permettre à l'utilisateur d'accéder au proxy.
-
Le rôle IAM permettant d'accéder au secret du Gestionnaire de Secrets Manager utilisé par le proxy est valide.
Vous pouvez rencontrer les événements RDS suivants lors de la connexion à un proxy de base de données ou de sa création.
Catégorie | ID d'évènement RDS | Description |
---|---|---|
échec |
RDS-EVENT-0243 | RDS n'a pas pu allouer la capacité pour le proxy car il n'y a pas suffisamment d'adresses IP disponibles dans vos sous-réseaux. Pour résoudre ce problème, veillez à ce que vos sous-réseaux aient le nombre minimum d'adresses IP inutilisées. Pour déterminer le nombre recommandé pour votre classe d'instances, consultez Planification de la capacité des adresses IP. |
échec |
RDS-EVENT-0275 |
|
Vous pouvez rencontrer les problèmes suivants lors de la création d'un proxy ou de la connexion à un proxy.
Erreur | Causes ou solutions de contournement |
---|---|
|
Sélectionnez un rôle IAM existant au lieu d'en créer un nouveau. |
Vous pouvez rencontrer les problèmes suivants lors de la connexion à un proxy MySQL.
Erreur | Causes ou solutions de contournement |
---|---|
ERROR 1040 (HY000): Connections rate limit exceeded (
|
Le taux de demandes de connexion du client au proxy a dépassé la limite. |
ERROR 1040 (HY000): IAM authentication rate limit exceeded
|
Le nombre de demandes de connexion simultanée avec authentification IAM du client au proxy a dépassé la limite. |
ERROR 1040 (HY000): Number simultaneous connections exceeded (
|
Le nombre de demandes de connexion simultanée du client au proxy a dépassé la limite. |
|
Le secret Secrets Manager utilisé par le proxy ne correspond pas au nom d'utilisateur et au mot de passe d'un utilisateur de base de données existant. Mettez à jour les informations d'identification dans le secret Secrets Manager ou assurez-vous que l'utilisateur de base de données existe et possède le même mot de passe que celui du secret. |
ERROR 1105 (HY000): Unknown error
|
Une erreur inconnue s'est produite. |
ERROR 1231 (42000): Variable ''character_set_client'' can't be set to the value of
|
La valeur définie pour le paramètre |
ERROR 3159 (HY000): This RDS Proxy requires TLS connections.
|
Vous avez activé le paramètre Exiger la sécurité de la couche de transport dans le proxy, mais votre connexion a inclus le paramètre
|
ERROR 2026 (HY000): SSL connection error: Internal Server
|
La négociation TLS avec le proxy a échoué. Les causes possibles sont notamment les suivantes :
|
ERROR 9501 (HY000): Timed-out waiting to acquire database connection
|
Le proxy a expiré en attendant l'obtention d'une connexion à la base de données. Les causes possibles sont notamment les suivantes :
|
Vous pouvez rencontrer les problèmes suivants lors de la connexion à un proxy PostgreSQL.
Erreur | Cause | Solution |
---|---|---|
|
L'utilisateur a essayé de se connecter à la base de données à l'aide de l'authentification IAM en utilisant le paramètre |
L'utilisateur doit se connecter à la base de données en utilisant le paramètre minimal |
|
L'utilisateur a activé l'option Exiger la sécurité de la couche de transport mais a essayé de se connecter en utilisant |
Pour corriger cette erreur, effectuez l'une des opérations suivantes :
|
|
Cette erreur peut être due aux raisons suivantes :
|
Pour corriger cette erreur, procédez comme suit :
|
|
Il n'y a pas de secret Secrets Manager pour ce rôle. |
Ajoutez un secret Secrets Manager pour ce rôle. Pour plus d'informations, consultez Configuration des AWS Identity and Access Management politiques (IAM). |
|
Le client de base de données utilisé pour se connecter au proxy utilise un mécanisme d'authentification qui n'est actuellement pas pris en charge par le proxy. |
Si vous n'utilisez pas l'authentification IAM, utilisez l'authentification par mot de passe MD5 ou SCRAM. |
|
Le client de base de données utilisé pour la connexion au proxy n'envoie pas de nom d'utilisateur lorsqu'il tente d'établir une connexion. |
Veillez à définir un nom d'utilisateur lors de la configuration d'une connexion au proxy à l'aide du client PostgreSQL de votre choix. |
|
Le client PostgreSQL utilisé pour la connexion au proxy utilise un protocole antérieur à la version 3.0. |
Utilisez un client PostgreSQL plus récent qui prend en charge le protocole de messagerie 3.0. Si vous utilisez l'interface de ligne de commande |
|
Le client PostgreSQL utilisé pour la connexion au proxy essaie d'utiliser le mode de réplication de streaming, lequel n'est actuellement pas pris en charge par RDS Proxy. |
Désactivez le mode de réplication de streaming sur le client PostgreSQL utilisé pour la connexion. |
|
Par le biais du message de démarrage, le client PostgreSQL utilisé pour la connexion au proxy demande une option qui n'est pas actuellement prise en charge par RDS Proxy. |
Désactivez l'option indiquée comme non prise en charge dans le message ci-dessus sur le client PostgreSQL utilisé pour la connexion. |
|
Le nombre de demandes de connexion simultanée avec authentification IAM du client au proxy a dépassé la limite. |
Réduisez le taux d'établissement de connexions à l'aide de l'authentification IAM à partir d'un client PostgreSQL. |
|
Le nombre de demandes de connexion simultanée du client au proxy a dépassé la limite. |
Réduisez le nombre de connexions actives des clients PostgreSQL à ce proxy RDS. |
|
Le taux de demandes de connexion du client au proxy a dépassé la limite. |
Réduisez le taux d'établissement de connexions à partir d'un client PostgreSQL. |
|
Le mot de passe de ce rôle ne correspond pas au secret Secrets Manager. |
Vérifiez le secret de ce rôle dans Secrets Manager pour voir si le mot de passe est le même que celui utilisé sur votre client PostgreSQL. |
|
Il y a un problème avec le jeton IAM utilisé pour l'authentification IAM. |
Générez un nouveau jeton d'authentification et utilisez-le dans une nouvelle connexion. |
|
Un client a essayé de se connecter à l'aide de l'authentification IAM, mais le protocole SSL n'était pas activé. |
Activez SSL sur le client PostgreSQL. |
|
Une erreur inconnue s'est produite. |
Contactez AWS Support pour investiguer le problème. |
|
Le proxy a expiré en attendant l'obtention d'une connexion à la base de données. Les causes possibles sont notamment les suivantes :
|
Les solutions possibles sont les suivantes :
|
|
La connexion à la base de données établie à partir du proxy a renvoyé une erreur. |
La solution dépend de l'erreur de base de données spécifique. Par exemple : |