Tutorial: Como montar un EBS Volume a una instancia nueva en AWS.

Crea una instancia nueva

Sigue los pasos del wizard, en este caso estoy usando una t2.micro, con la Amazon Linux2 como AMI por que es gratis 😊, en la parte de Add Storage, selecciona “Add New Volume”, piensa en el volume como una memoria USB que vamos a conectar a la instancia.

Vista del Wizard para la creación de una instancia nueva en AWS EC2, en el paso Add Storage.

La instancia por default necesita un volume para montar Root ( / ) así que vas a verlo ahí puesto, tu ahí déjalo, nosotros lo que queremos es un volume adicional para data y como queremos que sea persistente no selecciones “Delete on Termination” , en este caso vamos a pedir solo 2 GB de tamaño, no necesitamos que sea cifrado y no vamos a usar ningún snapsot en este momento, solo le puse un tag nomas para identificarla como EBSTuto, seguimos los últimos pasos del wizard y la echamos a andar.

Ya que esta jalando podemos ver en la Descripción que tiene un par de devices montados, raiz(Root) y el EBS (Block), que aquí en la imagen se aprecian como: /dev/xvda y /dev/sdb:

Descripcion de la instancia que acabamos de crear, EBSTuto.

También en la sección de EBS/volumes de la consola en AWS los puedes ver, y notaras que están adjuntos a la nueva instancia que creamos “EBSTuto”, ambos estarán en la misma Availability Zone(AZ) como debe ser, por diseño en AWS no puedes tener EBS Volumes en una AZ distinta a la de tu instancia, en mi caso es ap-south-1a:

Vista de los EBS que tenemos funcionando, Block y Root respectivamente.

Para que notes la diferencia, la imagen anterior claramente es el EBS Block de 2GB montado en /dev/sdb y la imagen de abajo es root montada en /dev/xvda

Vista de la selección de EBS Root.

Entonces ya estuvo, ¿no?

Pues no… el que el volume esté adjunto no significa que ya se pueda usar, habrá que montarlo a la Sysadmin,

Creando FileSystems y montando volumes.

Conectate a la instancia ya sea por SSH con tus keys o por EC2 Instance connect (yo usé SSH pero no improta los comandos jalan igual)

Ejecutamos lsblk para checar los “mountpoints”:

$ lsblk
Output de lsblk.

Ahí se ve clarito como esta Root montada en xvda, y tenemos otro volume de 2GB, que es dev/sdb, el cuál no se puede usar (escribir/leer) aún hay que formatearlo y montarlo, primero, hay que checar si ya hay un FileSystem(FS) en el device con el siguiente comando:

$ sudo file -s <volume path>
En este caso no hay FS aún.

El comando nos regresa “data” que básicamente significa que no hay un FileSystem ahí, así que hay que darle formato y crearle un FS, en este caso como ext4 con el siguiente comando:

$ sudo mkfs -t ext4 <volume path>
Ejemplo del comando para crear un FS.

Lo puedes verificar con el comando que ya vimos:

Venga, todo ese chorizo quiere decir que ya hay un FS ahí en formato ext4, ahora podemos tranquilamente montar el FS con los siguientes comandos:

$ sudo mkdir /data
$ sudo mount <volume path> /data
Montando el volume en el FS.

En la imagen de arriba se puede ver que jaló, puesto que xvdb ya conoce de /data como Mountpoint, ahora para probar que se puede escribir, me cree un archivo en el FS:

$ cd /data
$ sudo touch <filename>
Testeando que el FS funciona correctamente.

Y escribi un amigable mensaje:

Success!

Ahora si, este volume ya puede ser usado en esta instancia con su flamante FS y todo el show, y si algo le pasa a la instancia, afortunadamente seleccionamos que no fuera “Deleted on Termination” es decir que se lo borraran si la instancia se detiene, entonces si eso pasa tendríamos que montarlo a pata cada que se inicia la instancia, para alivianar esto y hacerlo en automático modificamos etc/fstab, primero hay que hacer un respaldo por si las moscas:

$ sudo cp /etc/fstab /etc/fstab.bak
Respaldando etc/fstab

Agregué a mano la última linea que incluye el device, el mountpoint, el FS type y unos par de parámetros, el primero para que no haya respaldo automático y el segundo por que no es root (ese es 1, fíjate arriba).

Checamos como se ven nuestros FS/Mountpoints y aquí ya se ve mas al 100 como esta todo montadito perfectamente

💯

Ahora hay que probar que el cambio a etc/fstab también va a jalar en caso de que se rebootee(Stop/Start) la instancia, para probarlo voy a manualmente desmontar y montar el volume, y nos debería quedar como está actualmente, pero en automático:

$ sudo unmount <filesystem>
Desmontando el FS para probar fstab.

Incluso el archivo de prueba no estaría disponible evidentemente

💔

Como es de esperarse después de desmontar, y ahora la hora de la verdad:

$ sudo mount -a

La opcion “-a” significa básicamente que agarre y monte todo lo que esta en /etc/fstab…

Probando fstab, Success!

Jaló como era esperado, puedes ver como los block se pueden ver /data montado en xvdb, el FileSystem /dev/svdb también reconoce que esta montado en /data, e incluso nuestro amigable archivo esta disponible de nuevo.

Y como ULTIMATE PROOF, fuí y detuve la instancia en AWS, la eché a jalar y no tuve que hacer nada más, nuestro archivo amigable estaba ahí esperando mostrar su lindo mensaje:

😍

Ahí lo tienes, así se monta un EBS Volume en una instancia nueva en AWS, saludos.

MNK

Un comentario sobre “Tutorial: Como montar un EBS Volume a una instancia nueva en AWS.

Agrega el tuyo

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Crea un sitio web o blog en WordPress.com

Subir ↑

A %d blogueros les gusta esto: