Passer au contenu

Comment résoudre les erreurs de connexion à Amazon Redshift ?

Lecture de 6 minute(s)
0

Je souhaite résoudre les problèmes de connexion à mon cluster Amazon Redshift.

Résolution

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.

Vous avez récemment redimensionné ou restauré votre cluster Amazon Redshift à partir d'un instantané

Si vous avez récemment redimensionné votre cluster Amazon Redshift ou si vous l'avez restauré à partir d'un instantané, vérifiez le sous-réseau de votre cluster. Vous devez lancer votre cluster dans le même sous-réseau qu'avant le redimensionnement ou la restauration de l’instantané.

Si vous n'avez pas récemment redimensionné ou restauré votre cluster Amazon Redshift, vérifiez vos configurations réseau. Les configurations réseau doivent être identiques pour les anciens et les nouveaux sous-réseaux.

Votre cluster Amazon Redshift réside dans un sous-réseau public

Si vous essayez de vous connecter à un cluster Amazon Redshift qui se trouve dans un sous-réseau public, vérifiez que le cluster est défini sur Accessible au public. Pour plus d'informations sur les options accessibles au public, consultez la section Ressources Redshift dans un cloud privé virtuel (VPC).

Vérifiez qu'une passerelle Internet est connectée à votre table de routage.

Pour tester la connexion à votre cluster Amazon Redshift, exécutez la commande telnet :

telnet cluster_endpoint cluster_port

Remarque : Remplacez cluster_endpoint et cluster_port par vos valeurs.

Votre cluster Amazon Redshift réside dans un sous-réseau privé

Si votre cluster Amazon Redshift réside dans un sous-réseau privé, assurez-vous d'associer la passerelle NAT à la table de routage du sous-réseau public. La passerelle NAT permet aux clusters d'un sous-réseau privé de se connecter à Internet. Vérifiez que votre cluster n'est pas configuré sur Accessible au public.

Pour vérifier que votre client peut accéder à l'adresse IP privée du nœud principal du cluster Amazon Redshift, exécutez la commande dig :

dig cluster_endpoint

Remarque : Remplacez cluster_endpoint par le point de terminaison de votre cluster.

Pour tester la connexion à votre cluster Amazon Redshift, exécutez la commande telnet :

telnet cluster_endpoint cluster_port

Remarque : Remplacez cluster_endpoint et cluster_port par vos valeurs.

Telnet échoue ou le cluster Amazon Redshift est toujours inaccessible

Si le résultat de la commande telnet indique que votre connexion au cluster Amazon Redshift échoue, vérifiez les conditions suivantes :

  • La règle entrante du groupe de sécurité autorise le port Amazon Redshift 5439 de type TCP.
  • La règle entrante du groupe de sécurité inclut la plage d'adresses CIDR ou l'adresse IP que vous utilisez pour vous connecter au cluster Amazon Redshift.

Si le résultat indique que votre connexion au cluster Amazon Redshift est réussie, mais que votre cluster est toujours inaccessible, vérifiez le pare-feu de votre réseau. Votre pare-feu bloque peut-être le port 5439 d'Amazon Redshift.

Erreur de connexion à une opération non valide

Si votre cluster Amazon Redshift requiert l’activation du protocole SSL pour n'importe quelle connexion, l'erreur de connexion suivante peut s'afficher :

"Error: [Amazon](500310) Invalid operation: no pg_hba.conf entry for host "::ffff:205.xxx.xxx.xxx", user "username", database "dbname", SSL off;"

Pour vérifier si le paramètre require_ssl est défini sur true, procédez comme suit :

  1. Ouvrez la console Amazon Redshift.
  2. Dans le volet de navigation, choisissez Configuration.
  3. Choisissez Gestion de la charge de travail.
  4. Modifiez le groupe de paramètres que vous associez à votre cluster Amazon Redshift.
  5. (Facultatif) Exécutez la commande describe-cluster-parameters de l'interface de ligne de commande AWS pour vérifier votre configuration SSL :
    aws redshift describe-cluster-parameters --parameter-group-name exampleparametergroupname

Si votre configuration SSL est définie sur true, mettez à jour le paramètre require_ssl en lui attribuant la valeur de paramètre par défaut false. Pour modifier la configuration SSL, modifiez le groupe de paramètres associé à votre cluster Amazon Redshift. Vous pouvez modifier le groupe de paramètres depuis l'onglet Paramètres de la console Amazon Redshift.

Toutefois, si la connexion SSL est requise pour votre cas d'utilisation ou votre environnement, assurez-vous que votre chaîne de connexion inclut le paramètre SSL requis.

Exemple :

jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev?ssl=true

Erreur de connexion fatale

Si un trop grand nombre de connexions sont ouvertes dans votre cluster Amazon Redshift, le message d'erreur suivant peut s'afficher :

"Error: FATAL: connection limit [500]/[2000] exceeded for user"

Comme l'indique le message d'erreur, 500 est la limite de connexion maximale pour les types de nœuds dc2.large dans Amazon Redshift. Pour les nœuds dc2.8xlarge, ra3.xlplus, ra3.4xlarge et ra3.16xlarge, la limite de connexion maximale est de 2 000.

Pour vérifier le nombre de connexions ouvertes dans votre cluster Amazon Redshift, procédez comme suit :

  1. Ouvrez la console Amazon CloudWatch.

  2. Recherchez la métrique DatabaseConnections dans vos entrées Amazon CloudWatch Logs.

  3. Utilisez la table STL_CONNECTION_LOG pour vérifier vos connexions ouvertes :

    select recordtime, username, dbname, remotehost, remoteportfrom stl_connection_log
    where event = 'initiating session'
    and pid not in
    (select pid from stl_connection_log
    where event = 'disconnecting session')
    order by 1 desc;
  4. Utilisez la table STV_SESSIONS pour afficher des informations sur les sessions utilisateur actives pour Amazon Redshift :

    select * from stv_sessions;

Si vous disposez d'un grand nombre de connexions ouvertes, effectuez l'une des actions suivantes :

  • Utilisez la commande PG_TERMINATE_BACKEND pour arrêter toutes les sessions inactives.
  • Modifiez les paramètres de délai d'expiration TCP/IP côté client en fonction du système d'exploitation que vous utilisez pour vous connecter à votre cluster Amazon Redshift. La mise à jour de vos paramètres de délai d’attente TCP/IP peut aider à empêcher les sessions inactives de rester ouvertes.

Erreur de connexion refusée

Si votre cluster Amazon Redshift ne parvient pas à établir de connexion, le message d'erreur Connection Refused suivant peut s'afficher :

"Error: amazon 500150 error setting/closing connection: operation timed out/ connection refused."

Lorsque vous essayez d'accéder à votre cluster Amazon Redshift, un problème d'autorisations peut provoquer l'erreur précédente. Pour résoudre cette erreur de connexion, effectuez l’une des opérations suivantes :

Informations connexes

Comment puis-je rendre un cluster Amazon Redshift privé accessible au public ?

Pourquoi ne puis-je pas me connecter au cluster Amazon Redshift ?

AWS OFFICIELA mis à jour il y a 7 mois