J'ai une instance RDS fonctionnant sur un sous-réseau sans NAT, et une instance EC2 fonctionnant sur un autre sous-réseau avec une passerelle Internet configurée, toutes deux situées dans le même VPC. J'ai configuré l'instance RDS pour qu'elle ne soit pas accessible au public.
J'utilise la commande suivante dans mon EC2 distant (fonctionnant sur le deuxième sous-réseau) pour me connecter à l'instance RDS :
mysql -h xxxx.eu-central-1.rds.amazonaws.com -P 3306 -u root -p
J'ai saisi le mot de passe correct que j'ai défini lors de la configuration du RDS, mais j'obtiens l'erreur suivante :
ERREUR 2003 (HY000) : Impossible de se connecter au serveur MySQL sur 'XXX.eu-central-1.rds.amazonaws.com' (110)
J'ai vérifié, ce n'est pas un problème de résolution de nom. L'ec2 convertit le point de terminaison vers l'ip interne correct.
Voici mes paramètres :
RDS
VPC : le même que l'EC2
ZONE DE DISPONIBILITÉ : eu-central-1b
SUBNET Dans le panneau RDS, je peux voir tous les sous-réseaux, mais je vois qu'il y a une ip de moins disponible dans le sous-réseau privé de la zone b.
GROUPE DE SÉCURITÉ groupe de sécurité privé (pas de règles de sortie, et dans l'entrée, une seule règle avec le port mysql et le groupe de sécurité public comme source)
ACCESSIBLE AU PUBLIC : non
MULTI AZ : non
EC2
VPC : le même que le RDS
ZONE DE DISPONIBILITÉ : eu-central-1b
SUBNET : sous-réseau public de la zone b
GROUPE DE SÉCURITÉ Groupe de sécurité publique (tous les ports de n'importe quelle source comme règle d'entrée, et les ports ssh, http et https de n'importe quelle source comme règle de sortie).
Je peux accéder à l'instance EC2 en utilisant http et ssh. Cela fonctionne comme prévu.
VPC
VPC : RDS et EC2 utilisent tous les deux le même
SUBNETS : un public et un privé pour chaque AZ, 4 au total
DHCP : celui par défaut ( domain-name = eu-central-1.compute.internal
domain-name-servers = AmazonProvidedDNS
)
TABLEAUX DE ROUTE pour les sous-réseaux publics, route vers local
(automatiquement) et à l'escapade internet, pour le privé, seulement le local
(automatiquement)
ACLs : public : allow all
à la fois en entrée et en sortie. privé : allow all
sur l'entrée seulement. Il y a aussi une ligne avec l'id *
avec deny all
sur les deux listes de contrôle d'accès, à la fois en entrée et en sortie, mais je suis pratiquement sûr qu'il est censé être là, je ne peux pas le supprimer.
Qu'est-ce que je fais de mal ? Est-ce qu'il me manque quelque chose ?