Solución de problema de una instancia EC2 que no inicia

En alguna ocasión nos podemos encontrar en que alguna de nuestras instancias EC2 de AWS no inicie correctamente evitando que nos podemos conectar por SSH y poder solucionar el problema. Dependiendo del problema que tenga la instancia tendremos que recuperar de un backup (si disponemos de el) o añadiendo el volumen raíz con el problema a otra instancia.

En mi caso, el problema vino al intentar añadir un nuevo volumen a una instancia Amazon Linux 2 AMI, por ir con prisas y sin pensarlo bien añadí el punto de montaje de forma errónea en el fichero fstap y al reiniciar no iniciaba correctamente la instancia, y al no iniciar, tampoco me podía conectar. Esta es una de las rarezas que no entiendo de AWS, que no tengas una consola «local» para poder solucionar este tipo de problemas, pero bueno, sus razones tendrá.

Una manera de ver porque no inicia una instancia es usando la opción de Get instance screenshot y Get system logs.

Como se ve en la siguiente imagen muestra el siguiente error «Cannot open access to console, the root account is locked» y al no disponer de Backups, no me quedo mas opción que probar a montar el volumen raíz en otra instancia.

Solucion de problema de una instancia EC2 que no inicia

Si nos fijamos en la siguiente imagen, cuando una instancia no inicia correctamente nos muestra un Warning en el campo Status Checks.

Solucion de problema de una instancia EC2 que no inicia2

Importante: Antes de realizar cualquier cambio, se recomienda realizar un Snapshot del volumen.

Solución de problema de una instancia EC2 que no inicia3

Para añadir un volumen a otra instancia EC2, primero apagaremos la instancia con el problema y separaremos el volumen de esta.

Solución de problema de una instancia EC2 que no inicia4

Una vez que el volumen este en un estado «available», con botón derecho haremos clic en Attach Volumen.

Seleccionaremos otra instancia que tengamos y o que despleguemos y a la que añadiremos este volumen con el problema.

Podemos conservar el nombre de dispositivo sugerido o escribir un nombre de dispositivo diferente, no se recomienda mapearlo con el mismo nombre que utiliza el volumen raíz.

https://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/device_naming.html.

Una vez añadido el volumen a la instancia, creamos una carpeta para el punto de montaje. En este punto, me encontré con otro problema al intentar montar el sistema de archivos, me mostraba el siguiente error:

«mount: /mnt/disktemp: wrong fs type, bad option, bad superblock on /dev/xvdf1, missing codepage or helper program, or other error.»

Al ejecutar lsblk -fm se veía que los UUID de los dos volúmenes raíz eran el mismo, esto puede deberse a que los das dos instancias están creadas con el mismo AMI y su vez fueron creadas desde el mismo snapshot.

Este UUID se puede cambiar con xfs_admin, pero como en mi caso solo quería modificar un fichero y no dejar este volumen de forma permanente.

Montamos el sistema ficheros con la opción nouuid y así forzar el montaje sin verificar el UUID.

mount -t xfs -o nouuid

Y editamos el fichero fstab dentro de la ruta /punto de montaje/etc/fstab.

Comentamos la linea errónea del fichero fstab.

Guardamos cambios y desmontamos el sistema de archivos.

umount sistema de archivos

Quitamos el volumen de la instancia y lo añadimos a la instancia en el que estaba originalmente y fallaba.

Iniciamos la instancia y esta vez iniciará correctamente.

instancia EC2 inicio correcto

Después de este problema, vemos lo importante que son los Backups y el disponer de una buena solución de Backup.

Saludos y espero que os sirva.