Comment résoudre les erreurs de connexion Amazon Redshift ?

Dernière mise à jour : 10/09/2020

Je ne parviens pas à me connecter à mon cluster Amazon Redshift. Comment puis-je résoudre ce problème ?

Résolution

Le cluster Amazon Redshift a été récemment redimensionné ou restauré à partir d'un instantané

Si votre cluster Amazon Redshift a été récemment redimensionné ou restauré à partir d'un instantané, vérifiez le sous-réseau de votre cluster. Le cluster doit être lancé dans le même sous-réseau avant le redimensionnement ou la restauration de l'instantané.

Si votre cluster Amazon Redshift n'a pas été récemment redimensionné ou restauré, vérifiez les configurations de votre réseau. Les configurations réseau doivent être identiques pour l'ancien et le nouveau sous-réseau.

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

Si vous essayez de vous connecter à un cluster Amazon Redshift résidant dans un sous-réseau public, vérifiez les éléments suivants :

  • Confirmez que le cluster Amazon Redshift est défini sur « Accessible publiquement ». Pour plus d'informations sur les options accessibles publiquement, consultez la section Gestion des clusters dans un VPC.
  • Vérifiez que vous disposez d'une passerelle Internet attachée à votre table de routage.

Pour tester la connectivité, utilisez telnet afin de tester la connexion à votre cluster Amazon Redshift.

telnet <cluster endpoint> <cluster port>

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

Si votre cluster Amazon Redshift réside dans un sous-réseau privé, vérifiez les éléments suivants :

  • Veillez à attacher 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.
  • Assurez-vous que votre cluster n'est pas défini sur « Accessible publiquement ».

Pour confirmer que votre client peut atteindre l'adresse IP privée du nœud principal du cluster Amazon Redshift, utilisez la commande dig :

dig <cluster endpoint>

Utilisez la commande telnet pour tester la connexion à votre cluster Amazon Redshift.

telnet <cluster endpoint><cluster port>

La commande telnet échoue ou le cluster Amazon Redshift reste inaccessible

Si la commande telnet indique que votre connexion au cluster Amazon Redshift est « infructueuse », vérifiez que les conditions suivantes sont remplies :

  • Le port Amazon Redshift (5439 par défaut) de type TCP est autorisé dans la règle entrante du groupe de sécurité.
  • La plage CIDR ou l'adresse IP à partir de laquelle vous vous connectez au cluster Amazon Redshift est ajoutée à la règle d'entrée du groupe de sécurité.

Si la commande telnet indique que votre connexion au cluster Amazon Redshift est « réussie », mais que votre cluster reste inaccessible depuis votre client, vérifiez le pare-feu de votre réseau. Votre pare-feu bloque peut-être le port Amazon Redshift (le port par défaut est 5439).

Erreur de connexion d'opération non valide

Si votre cluster Amazon Redshift nécessite que SSL soit activé pour une 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 confirmer si le paramètre require_ssl est défini sur « true », procédez comme suit :

1.    Ouvrez la console Amazon Redshift.

2.    Sélectionnez l'onglet Config.

3.    Modifiez le groupe de paramètres associé à votre cluster Amazon Redshift.

4.    (Facultatif) Vérifiez votre configuration SSL à l'aide de l'interface de ligne de commande AWS (AWS CLI) :

describe-cluster-parameters

Si votre configuration SSL est définie sur « true », envisagez les approches suivantes :

  • Mettez à jour le paramètre require_ssl sur « false » (valeur de paramètre par défaut). Vous pouvez modifier la configuration SSL en modifiant le groupe de paramètres associé à votre cluster Amazon Redshift. Le groupe de paramètres peut être modifié à partir de l'onglet Paramètres de la console Amazon Redshift.
  • 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.

Par exemple :

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

Erreur de connexion fatale

Lorsqu'il y a trop de connexions ouvertes dans votre cluster Amazon Redshift, le message d'erreur suivant s'affiche :

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 dc1.large, dc2.large et ds2.xlarge dans Amazon Redshift. Pour les nœuds ds2.8xlarge, dc2.8xlarge, dc1.8xlarge, ra3.4xlarge et ra3.16xlarge, la limite de connexion maximale est de 2000.

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, remoteport
from 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 avez un grand nombre de connexions ouvertes, envisagez les approches suivantes :

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

Erreur Connection refused

Si votre cluster Amazon Redshift ne parvient pas à établir une connexion, l'erreur Connection Refused suivante peut s'afficher :

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

Cette erreur peut indiquer un problème d'autorisation lors de l'accès à votre cluster Amazon Redshift. Pour résoudre cette erreur de connexion, envisagez les approches suivantes :

  • Si vous avez créé votre cluster dans un Amazon Virtual Private Cloud (Amazon VPC), ajoutez l'adresse CIDR/IP de votre client au groupe de sécurité VPC. Pour plus d'informations sur la configuration des groupes de sécurité VPC pour votre cluster, voir Gestion des clusters dans un VPC.
  • Si vous avez créé votre cluster en dehors d'un VPC, ajoutez votre adresse CIDR/IP client au groupe de sécurité du cluster. Pour plus d'informations sur la configuration des groupes de sécurité de cluster, consultez Groupes de sécurité de cluster Amazon Redshift.

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?