Si apago la instancia de Amazon EC2 y luego la vuelvo a iniciar, ¿estará todo bien?

12

Tengo un sitio web que se ejecuta en una instancia de Amazon EC2 basada en Linux y está asignado a un nombre de dominio regular (x.com). Este sitio habla con una base de datos en una segunda instancia de EC2.

Necesito cerrar esta instancia y aumentar la potencia informática detrás de ella ... si lo hago, ¿cuánto tiempo tomará, y luego, cuando vuelva a encender la máquina, mi sitio volverá a estar en línea? ¿Se conservarán la dirección IP, la información de DNS, etc. para que el nombre de dominio siga funcionando y aún pueda comunicarse con la base de datos?

Para su información, esto es lo que veo actualmente para el servidor web en el panel de información de AWS EC2 (las direcciones IP exactas cambiaron ligeramente, pero se entiende):

Public DNS: ec2-54-1-1-1.us-west-1.compute.amazonaws.com
Private DNS: ip-10-1-1-1.us-west-1.compute.internal
Private IPs: 10.1.1.1
Eric
fuente

Respuestas:

13

Detener e iniciar una instancia de arranque de EBS es muy similar a simplemente reiniciar la instancia con algunas excepciones, siendo la más notable:

  1. A la instancia se le asigna una nueva dirección IP interna.

  2. A la instancia se le asigna una nueva dirección IP pública.

  3. Si la instancia no está en una VPC, cualquier dirección IP elástica se desasocia con la instancia.

  4. Todos los datos sobre almacenamiento efímero (a menudo bajo / mnt) se pierden

También hay algunas implicaciones de facturación y disponibilidad que describí en este artículo:

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

Las instancias de VPC tienen un comportamiento ligeramente diferente, incluido el mantenimiento de direcciones IP elásticas a través de detener / iniciar.

Si está utilizando una instancia como servidor de base de datos y desea conectarse a ella utilizando la dirección IP interna (más barata, más rápida) y no desea volver a configurar los clientes de la base de datos después de una parada / inicio, puede asignar una dirección de Elastic IP a la instancia y use el nombre externo de Elastic IP DNS. Esto se resolverá en la dirección IP interna actual después de que vuelva a asociar la dirección IP elástica a la instancia reiniciada y sus clientes continuarán donde lo dejaron.

Entro en más detalles sobre este enfoque en este artículo:

Uso de Elastic IP para identificar instancias internas en Amazon EC2
http://alestic.com/2009/06/ec2-elastic-ip-internal

Como parece haber anticipado, detener / iniciar es una manera fácil de cambiar el hardware que alimenta su instancia. Escribí sobre esto junto con algunas instrucciones y advertencias en este artículo:

Mover una instancia EC2 a un tipo de instancia más grande (o más pequeña)
http://alestic.com/2011/02/ec2-change-type

Para su situación particular, recomendaría asignar una dirección IP elástica a la instancia y cambiar su DNS para que apunte a la dirección IP elástica usando un CNAME al nombre DNS externo. Puede hacer esto justo después de la parada / inicio, o puede hacerlo con anticipación asegurándose de que todo funcione antes de la parada / inicio.

Eric Hammond
fuente
¿Sigue siendo exacto? Estuve en una conversación con AWS esta mañana y dijeron que la IP elástica no se disocia cuando se detiene una instancia. Además, nunca he visto cambiar nuestras direcciones IP internas al detener e iniciar una instancia.
bshacklett
@bsacklett Esta respuesta estaba un poco desactualizada. Lo actualicé para explicar que solo las instancias que no son VPC pierden la IP elástica. Hoy, la mayoría de las instancias son de hecho VPC.
Eric Hammond
4

Entonces, parece que no está usando Elastic IP, como puedo ver en su información.

Creo que debe estar usando CNAME en el DNS para señalar esta instancia. Si reinicia su máquina, este ec2-54-1-1-1.us-west-1.compute.amazonaws.comnombre DNS cambiará y su sitio dejará de funcionar.

En lo que respecta a la IP interna, también cambiará, a menos que esté utilizando VPC, que no es así.

Entonces, si fuera usted, tendré mucho cuidado al reiniciar esta máquina.

Por lo que respecta al tiempo, no tomará más de un par de minutos.

Además, si tiene alguna iptables ejecutándose en la instancia de DB, lo que permite que solo esta IP interna se conecte a la DB, entonces tampoco funcionará, ya que su IP interna cambiará.

Por lo tanto, tenga cuidado si desea reiniciar esta instancia y piense detenidamente al respecto.

Napster_X
fuente
2

Su IP / nombre de host interno cambiará y su IP elástica se desconectará (a menos que esté en una VPC).

Vuelva a conectar la Elastic IP después de reiniciar la instancia. Regularmente hago esto para cambiar el tamaño de las instancias y solo estás viendo un par de minutos de tiempo de inactividad.

Verifique Apache, y cualquier otro servicio está configurado para iniciarse ( chkconfigsi ejecuta amazon linux ami).

Jason Floyd
fuente
1

Hasta donde puedo recordar, detener el sistema cambiando su tipo e iniciarlo nuevamente no debería tomar más de 5-10 minutos (no se dice que sea un sistema respaldado por EBS). Para que los servicios se inicien una vez que el sistema haya regresado, asegúrese de tener todos los servicios habilitados para comenzar al reiniciar (como para puppet en mi ubuntu 12.04, lo tengo habilitado en / etc / default / puppet). Tome nota de la IP (lo hice hace mucho tiempo, así que no lo recuerdo claramente) y, como máximo, su IP se puede desconectar del sistema, pero todavía estaría allí en su cuenta, así que vaya a la sección Elastic IP y asóciela nuevamente con el reinicia el sistema y estarás bien.

APZ
fuente
1

Como ya se mencionó, si tiene una IP elástica, se volverá a conectar a la instancia, por lo que no será necesario tocar la configuración de DNS. Sin embargo, de una forma u otra, su IP privada cambiará. Esto probablemente significará que deberá actualizar la configuración de GRANT en mysql. Porque no solo GRANT ALL PRIVILEGES ON *.* to 'somedude'@'%'... ¿verdad? ;)

chrskly
fuente