EC2: ¿es estable el DNS público de una instancia? ¿Puedo confiar en que no cambie?

41

Lancé mi primera instancia y la estoy usando como servidor web. Veo que tiene un DNS público (una URL pública), por ejemplo:

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

Puedo acceder con éxito a este servidor en mi navegador, presionarlo a través de cURL, etc.

Quiero usar este servidor web para un servicio de fondo en una aplicación que estoy creando, por lo que coloqué esta URL en la configuración de mi aplicación, y funciona muy bien.

Pero cuando detengo manualmente y reinicio mi instancia, veo que el DNS público cambia. He leído que esto sucede cuando se detiene y reinicia explícitamente, pero no sucede si simplemente "reinicia".

No planeo detener y reiniciar explícitamente este servidor, pero mi pregunta es: ¿alguna vez este DNS público cambiará por sí solo por alguna razón? Por ejemplo, si la máquina falla anormalmente, o lo que sea.

En otras palabras, ¿es seguro enviar una aplicación que esté conectada a esta URL?

Aseem Kishore
fuente

Respuestas:

67

El nombre DNS público siempre coincide con la dirección IP pública.

La dirección IP pública permanece igual para una instancia hasta que se termina o se detiene. Un reinicio no cambia la dirección IP pública.

Si una instancia de EC2 está en una VPC, retendrá la misma dirección IP pública en una parada e inicio.

Si una instancia de EC2 que no está en una VPC se detiene y luego se inicia nuevamente, es probable que reciba una dirección IP pública diferente.

Las instancias pueden fallar. Cuando inicia una nueva instancia para reemplazar una instancia fallida o terminada, probablemente recibirá una dirección IP pública diferente.

Debido a que las instancias pueden fallar, y porque es posible que desee cambiar el tamaño de una instancia (con una parada / inicio) no se recomienda "enviar una aplicación que esté conectada a [la dirección IP pública]" (o nombre DNS). Una vez que su instancia se detuvo / terminó / falló, otro usuario podría obtener esa dirección IP asignada a su instancia y todo su tráfico iría a ellos.

Se recomienda utilizar direcciones IP elásticas para asociar servicios públicos con su instancia. Puede mantener la dirección IP elástica y puede asignarla a cualquier instancia que desee con el tiempo, incluso si es la misma instancia después de una parada / inicio.

Cada dirección IP elástica viene con un nombre DNS público, pero probablemente sea mejor asignar su propio nombre de host a la dirección IP elástica para que el nombre tenga más sentido para los humanos.

Aquí hay una guía de direcciones IP elásticas:

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

Aquí hay un artículo que escribí que habla sobre las diferencias entre reiniciar y detener / iniciar una instancia:

Reinicio versus detención / inicio de la instancia de Amazon EC2
http://alestic.com/2011/09/ec2-reboot-stop-start

Aquí hay un artículo que escribí que proporciona una razón por la que puede querer detener / iniciar una instancia aunque no piense que lo hará hoy:

Mover una instancia de EC2 a un tamaño mayor
http://alestic.com/2011/02/ec2-change-type

Eric Hammond
fuente
Bueno, según la información, reinicié mi instancia de ec2 y descubrí que el dns público cambió a una nueva ip. Tal vez la instancia se estrelló en el medio, pero no estoy seguro de eso.
Nicolas Manzini
Amazon solo recomienda que se usen IP elásticas para equilibradores de carga. Entonces, si tiene un servicio privado en una instancia ec2, deberá actualizar manualmente los ips. docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
Jesse
@Jesse ELB (Elastic Load Balancers) no usan direcciones IP elásticas. De hecho, los ELB cambian las direcciones IP todo el tiempo y no pueden hacerse permanentes. Las IP elásticas se aplican a las instancias de EC2 y, por lo tanto, son exactamente lo que se necesita para la pregunta original.
Eric Hammond