46 votes

EC2 : le DNS public d'une instance est-il stable ? Puis-je être sûr qu'il ne changera pas ?

J'ai lancé ma première instance, et je l'utilise comme serveur web. Je vois qu'il a un DNS public (une URL publique), par exemple :

ec2-123-45-6-789.compute-1.amazonaws.com

Je peux me rendre avec succès sur ce serveur dans mon navigateur, l'atteindre via cURL, etc.

Je veux utiliser ce serveur web pour un service de back-end dans une application que je suis en train de construire. J'ai donc placé cette URL dans la configuration de mon application, et cela fonctionne parfaitement.

Mais lorsque j'arrête et redémarre manuellement mon instance, je constate que le DNS public change ! J'ai lu que cela se produit lorsque vous arrêtez et redémarrez explicitement, mais que cela ne se produit pas si vous vous contentez de "redémarrer".

Je ne prévois pas d'arrêter et de redémarrer explicitement ce serveur, mais ma question est la suivante : Ce DNS public changera-t-il un jour de lui-même pour une raison quelconque ? Par exemple, si la machine se bloque anormalement, ou autre.

En d'autres termes, est-il sûr d'expédier une application qui est connectée à cette URL ?

75voto

codewise Points 436

Le nom DNS public correspond toujours à l'adresse IP publique.

L'adresse IP publique reste la même pour une instance jusqu'à ce qu'elle soit terminée ou arrêtée. Un redémarrage ne change pas l'adresse IP publique.

Si une instance EC2 se trouve dans un VPC, elle conservera la même adresse IP publique lors d'un arrêt et d'un démarrage.

Si une instance EC2 qui n'est pas dans un VPC est arrêtée puis redémarrée, elle recevra probablement une adresse IP publique différente.

Les instances peuvent échouer. Lorsque vous démarrez une nouvelle instance pour remplacer une instance défaillante ou interrompue, elle recevra probablement une adresse IP publique différente.

Parce que les instances peuvent échouer, et parce que vous pouvez vouloir changer la taille d'une instance (avec un arrêt/démarrage), il n'est pas recommandé de "livrer une application qui est connectée à [l'adresse IP publique]" (ou nom DNS). Une fois que votre instance est arrêtée/terminée/défaillante, un autre utilisateur pourrait obtenir cette adresse IP assignée à son instance et tout votre trafic irait vers lui.

Il est recommandé d'utiliser les adresses IP élastiques pour associer les services publics à votre instance. Vous conservez l'adresse IP Elastic et vous pouvez l'attribuer à l'instance de votre choix au fil du temps, même s'il s'agit de la même instance après un arrêt/démarrage.

Chaque adresse IP Elastic est fournie avec un nom DNS public, mais il serait probablement préférable de mapper votre propre nom d'hôte à l'adresse IP Elastic afin que le nom ait plus de sens pour les humains.

Voici un guide sur les adresses IP élastiques :

http://aws.amazon.com/articles/1346

Voici un article que j'ai écrit qui parle des différences entre le redémarrage et l'arrêt/démarrage d'une instance :

Redémarrage vs. arrêt/démarrage d'une instance Amazon EC2
http://alestic.com/2011/09/ec2-reboot-stop-start

Voici un article que j'ai écrit qui fournit une raison pour laquelle vous pourriez vouloir arrêter/démarrer une instance même si vous ne pensez pas en avoir besoin aujourd'hui :

Déplacement d'une instance EC2 vers une taille supérieure
http://alestic.com/2011/02/ec2-change-type

0 votes

Pour info, j'ai redémarré mon instance ec2 et je viens de découvrir que le dns public a changé pour une nouvelle ip. Peut-être que l'instance s'est écrasée entre temps mais je n'en suis pas sûr.

0 votes

Amazon recommande uniquement l'utilisation d'IP élastiques pour les équilibreurs de charge. Donc si vous avez un service privé sur une instance ec2, vous devrez mettre à jour manuellement les ips. docs.aws.amazon.com/AWSEC2/latest/UserGuide/

0 votes

@Jesse Les ELB (Elastic Load Balancers) n'utilisent pas les adresses IP Elastic. En fait, les ELB changent d'adresse IP tout le temps et ne peuvent pas du tout être rendus permanents. Les IP élastiques sont appliquées aux instances EC2 et sont donc exactement ce dont on a besoin pour la question initiale.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X