web-dev-qa-db-fra.com

Comment modifier l'option accessible au public pour Amazon RDS?

Lorsque vous créez une nouvelle instance d'Amazon rds, il vous est proposé de choisir true/false pour l'option "accessible au public". Existe-t-il un moyen de changer cela pour une instance existante?

26
Ron Gross

EDIT: Oui, il est désormais possible de changer la propriété "Publicly Accessible" de "No" en "Yes". (Et vice-versa) Hourra!

Ancienne réponse laissée ici à des fins historiques: Non.

Ce serait bien quand même, hein? Comme solution de contournement, votre meilleure option est la suivante:

  • Créez un instantané de votre instance.
  • Lancez une nouvelle instance à partir de cet instantané à l'aide de l'option accessible au public.

Preuve:

  • La diplomatie de John G dans cet article l'empêche d'écrire "Non" comme je l'ai fait, mais sa réponse "Vous pouvez créer un instantané de la base de données RDS actuelle et la lancer avec l'option accessible au public." indique clairement qu'il propose la solution de contournement car la solution directe n'est pas disponible.
19
mdahlman

Je suis tombé sur cette recherche de la même réponse. Malheureusement, il semble que 10 mois plus tard, la réponse est toujours "non" - vous ne pouvez pas modifier une base de données existante pour qu'elle soit accessible au public.

Cependant - vous pouvez vous en approcher ... Même s'il n'est pas accessible au public, il est disponible pour les instances EC2 que vous lancez dans ce même VPC. Et vous pouvez configurer un tunnel SSH depuis votre ordinateur via une instance EC2 vers cette base de données, ce qui vous donne effectivement accès à l'instance sans avoir à la relancer à partir d'un instantané.

Vous n'avez pas spécifié le système d'exploitation de votre ordinateur, je vais donc supposer que Linux ...

Tout d'abord, lancez une instance EC2, donnez-lui accès à votre instance RDS via des groupes de sécurité, assurez-vous que vous pouvez vous connecter à cette instance EC2 et assurez-vous que vous pouvez accéder à la base de données RDS à partir de cette instance EC2. Si tout cela échoue, le reste ne fonctionnera pas.

Ensuite, configurez un tunnel:

ssh -v -N -L 1234:rds.endpoint:3306 [email protected]

Où rds.endpoint est l'URL de votre instance RDS, your.ec2.Host est le nom d'hôte de votre instance EC2 et yourec2username est votre nom d'utilisateur sur l'hôte EC2.

Vous pouvez ensuite vous connecter à l'instance RDS avec

mysql -p -u dbuser -h 127.0.0.1 -P 1234 dbname --password=dbpassword

J'espère que cela aide la prochaine personne qui tombe sur cette ...

6
Gatos

Il semble qu'AWS permet désormais de modifier la propriété d'accessibilité. Cependant, la base de données semble être modifiée et pendant ce temps, des problèmes de connectivité peuvent éventuellement se produire.

Je n'ai trouvé aucun blog/article à ce sujet. Cependant, dans mon compte, je peux le faire.

4
Thomas Hunziker

Vous pouvez créer un tunnel ssh dans votre VPC, ou effectuer une redirection de port avec iptables mais, la meilleure et la plus simple solution est de créer une réplique en lecture avec l'indicateur PubliclyAccessible sur true, puis de promouvoir la réplique en maître. Je recommande de toujours utiliser un CNAME du point de terminaison RDS, afin que vous puissiez changer le CNAME dans le DNS sans toucher à votre application.

Faire un instantané et le restaurer ajoutera un temps d'arrêt inutile dans votre application.

Regardez!

1
AGL

Découvrez d'abord dans quel VPC vous vous trouvez.

Si vous souhaitez rendre votre instance RDS accessible au public, vous devez activer les attributs VPC dans l'hôte DNS et la résolution.

Vous pouvez définir cela en utilisant le paramètre PubliclyAccessible qui se résoudra en adresse IP publique.

Cela provient de la documentation AWS:

Amazon RDS prend en charge deux plates-formes VPC: EC2-VPC et EC2-Classic. La plate-forme EC2-VPC possède un VPC par défaut dans lequel toutes les nouvelles instances de base de données sont créées, sauf indication contraire. La plate-forme EC2-Classic n'a pas de VPC par défaut, mais comme avec l'une ou l'autre plate-forme, vous pouvez créer votre propre VPC et spécifier qu'une instance de base de données se trouve dans ce VPC.

0
Ratan Sharma