Je ne peux pas me connecter à mon cluster Amazon Redshift

Date de la dernière mise à jour : 11/02/2020

Je rencontre des problèmes pour me connecter à mon cluster Amazon Redshift.

Brève description

Pour vous connecter à votre cluster Amazon Redshift, vérifiez les points suivants :

  • Si votre cluster Amazon Redshift se trouve dans un sous-réseau public et que vous souhaitez y accéder via Internet, assurez-vous que Publicly accessible (Accessible publiquement) est défini sur Yes (Oui).
  • Si votre cluster Amazon Redshift se trouve dans un sous-réseau privé, utilisez une passerelle de traduction d'adresses réseau (NAT) dans le sous-réseau public pour accéder à Internet. Un cluster dans un sous-réseau privé peut se connecter à Internet via la passerelle NAT, mais Internet ne peut pas initier une connexion au cluster.
  • Si vous voulez que votre cluster Amazon Redshift communique avec des ressources situées dans un autre compte virtual private cloud (VPC), créez une connexion d'appairage VPC.

Résolution

Mon cluster se trouve dans un sous-réseau public, mais je ne peux pas m'y connecter via Internet à partir de mon ordinateur local.

Remarque : Avant de suivre les étapes indiquées ci-dessous, assurez-vous que votre VPC dispose d'une passerelle Internet jointe.

  1. Ouvrez la console Amazon Redshift.
  2. Choisissez Clusters.
  3. Sélectionnez le cluster auquel vous essayez de vous connecter.
  4. Choisissez l'onglet Actions et choisissez Change publicly accessible setting (Modifier le paramètre accessible publiquement).
  5. Pour Allow instances and devices outside the VPC to connect to your database through the cluster endpoint (Autoriser les instances et les appareils en dehors du VPC à se connecter à votre base de données via le point de terminaison du cluster), sélectionnez Yes (Oui).
  6. Sélectionnez votre adresse IP Elastic.
  7. Choisissez Confirm (Confirmer).

Mon cluster se trouve dans un sous-réseau privé et je ne peux pas m'y connecter depuis mon ordinateur local.

Votre cluster doit se trouver dans un sous-réseau public pour qu'il puisse se connecter à un ordinateur local.

Pour accéder à un cluster à partir d'un ordinateur local, effectuez les opérations suivantes :

  1. Ouvrez la console Amazon Redshift.
  2. Choisissez Clusters.
  3. Sélectionnez le cluster auquel vous essayez de vous connecter.
  4. Choisissez l'onglet Configuration pour ouvrir la page Cluster Properties (Propriétés du cluster).
  5. Choisissez View VPCs (Afficher les VPC) pour ouvrir la console Amazon VPC.
  6. Dans le volet de navigation, choisissez Route Tables (Tables de routage).
  7. Sélectionnez la table de routage associée au sous-réseau dans lequel réside votre cluster.
  8. Sélectionnez Edit (Modifier).
  9. Sélectionnez Add rule (Ajouter une règle).
    Pour le trafic IPv4, saisissez « 0.0.0.0/0 » dans le champ Destination, puis sélectionnez l'ID de la passerelle Internet dans le champ Target (Cible).
    Pour le trafic IPv6, saisissez « ::/0 » dans le champ Destination et sélectionnez ensuite l'ID de la passerelle Internet dans le champ Target (Cible).
  10. Sélectionnez Save (Enregistrer).

Mon cluster ne peut pas être accessible par une instance Amazon Elastic Compute Cloud (Amazon EC2) qui se trouve dans un VPC différent.

Créez une connexion d'appairage VPC entre les VPC. Une connexion d'appairage de VPC permet à deux VPC de communiquer entre eux à l'aide d'adresses IP privées.

  1. Suivez les étapes de Création et acceptation d'une connexion d'appairage VPC.
    Remarque :
    Assurez-vous que les blocs CIDR IPv4 ne se chevauchent pas si les VPC se trouvent sur le même compte AWS.
  2. Mettez à jour les deux tables de routage.
  3. Mettez à jour vos groupes de sécurité pour référencer des groupes VPC d'appairage.
  4. Sur l'instance EC2, testez la connexion d'appairage VPC à l'aide d'un utilitaire de mise en réseau (tel que netcat). Exemple :
nc -zv <hostname> <port>

Si la connexion d'appairage VPC aboutit, le résultat suivant s'affiche :

$ nc -zv example.123456789.us-east-1.redshift.amazonaws.com 5439
found 0 associations
found 1 connections:
     1:    flags=82<CONNECTED,PREFERRED>
    outif en0
    src xx.xxx.xxx.xx port 53396
    dst xx.xxx.xxx.xxx port 5439
    rank info not available
    TCP aux info available

Connection to example.123456789.us-east-1.redshift.amazonaws.com port 5439 [tcp/*] succeeded!