AWS Snapshot
Un snapshot de AWS es una copia exacta de una instancia de EC2 en el tiempo. Crear snapshots nos permite ir realizando esta copia de nuestra instancia de EC2 conforme esta va evolucionando.
El AWS Snapshot Pricing (Precio de un snapshot) depende en gran medida de la ubicación y el tamaño o aws snapshot size (tamaño del snapshot).
AWS snapshot size vs AMI
Para poder comprar un aws snapshot vs ami, o un aws snapshot vs image, tenemos que entender que el snapshot es un backup de una EC2 que genera el usuario. Mientras que las otras 2 son distribuidas por Amazon.
¿Cómo crear un snapshot de una instancia de EC2?
- Vamos a EC2 y dentro, en las opciones Resources damos clic sobre la opción Volumes.
Este es el volume que se creo cuando creamos nuestra instancia de EC2.
- Vamos a darle un nombre particionDeEC2 al volume dando clic sobre la columna name, esto es una buena práctica que nos permite tener identificado el propósito de cada uno de ellos.
- Vamos a dar clic sobre Create Volume, elegimos las opciones.
- Volume Type (Tipo de Volumen)
- (Magnetic)
- Size (GiB)
- 10
- Availability Zone
- La misma en donde se encuentra tu instancia de EC2
- Y presionamos Create.
- Seleccionamos la instancia, expandimos el menú Actions y damos clic en Attach Volume (Adjuntar a Volumen).
Al momento de dar clic sobre el campo Instance se listará la instancia de EC2 que hemos creado (Si no se encuentra en la misma región tendrás que volver a crear tu volume).
- Verifica donde se va a montar tu dispositivo, en mi caso /dev/sdf.
- Vamos a la terminal, conectamos a nuestra instancia EC2, iniciamos sesión como root
sudo su -
, y tecleamos.
$ lsblk
En mi caso esto fue lo que me arrojo la terminal.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 10G 0 disk
- Vamos darle un ls a xvdf que es la unidad de 10G que creamos.
$ file -s /dev/xvdf
La terminal me arroja data que es un indicador que el disco no posee formato.
[root@ip-172-31-39-243 ~]# file -s /dev/xvdf
/dev/xvdf: data
- Formateamos la unidad.
$ mkfs -t ext4 /dev/xvdf
Al final nos notificará que completamos el proceso.
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
- Creamos el directorio para el servidor de archivos y montamos xvdf ahí.
$ mkdir /servidordearchivos
$ mount /dev/xvdf /servidordearchivos
- Listamos el directorio y veremos que se encuentra ahora el directorio lost+found.
$ ls /servidordearchivos
- Vamos a crear un par de archivos.
$ cd /servidordearchivos
$ touch prueba.txt
No debes tener problema para crear alguno de estos archivos.
- Vamos a desmontar la unidad.
$ umount /dev/xvdf
- Intenta listar nuevamente el directorio /servidordearchivos y no debe mostrar ningún archivo (pues hemos desmontado la unidad).
- Ve a la consola de AWS, da clic sobre el volume creaste y ve a la opción Actions > Detach Volume.
- Una vez que se complete el detachment, da clic nuevamente en el volume y ve a la opción Actions > Create Snapshot. En el overlay completa los valores del snapshot que vamos a crear.
- Name (Nombre)
- MiServidorDeArchivos
- Description (Descripción)
- Snapshot de mi servidor de archivos.
Y damos clic en Create, después en Close para cerrar el overlay.
- Vamos a la sección Snapshots y vamos a ver que ahora tenemos un nuevo snapshot creado, debido a que es el primero tomara algo de tiempo hasta que se complete.
- Vamos a la sección Volumes.
- Elegimos el volume que creamos, y después la opción Action > Delete Volume, confirmamos que si deseamos eliminar.
- Vamos a la sección Snapshots y seleccionamos nuestro Snapshot, vamos a crear un volume a partir de este snapshot, elegimos la opción Actions > Create Volume. Elegimos de los valores del overlay.
- Volume Type (Tipo de volumen)
- General Purpose SSD (GP2).
- Size (GiB)
- 10
- Availability Zone
- La zona donde creaste tu instancia de EC2.
- Y damos clic en Create.
Si vemos podemos crear un volume de propósito general a partir del magnetic que creamos originalmente. Esto es interesante pues podemos migrar de uno a otro dependiendo nuestro ambiente de trabajo (test, producción, etc). 21. Vamos a la sección Volumes y podemos ver que nuestro volume se ha creado a partir del snapshot. 22. Damos clic en el volume y nuevamente, y después en Actions > Attach Volume. 23. Elegimos nuevamente la instancia dando clic en el autocomplete Instance y después en Attach. 24. Vamos a la terminal y listamos las unidades.
$ lsblk
- Como un snapshot se crea a partir de una imagen, ya no es necesario formatear la unidad, si lo hacemos se borrarían los datos, vamos a montar directamente la unidad.
$ mount /dev/xvdf /servidordearchivos
Verifica que se montó correctamente haciendo ls sobre /servidor de archivos.
Resumen
- Los volúmenes existen en EBS.
- Los volúmenes son discos virtuales.
- Los aws snapshot son copias en el tiempo de los volúmenes, es decir un aws snapshot backup.
- Los aws snapshot son incrementales, solo representan los cambios realizados.
- Si es el primer snapshot creado puede tomar algún tiempo.
- Podemos hacer un aws snapshot restore para regresar a cualquier punto en el tiempo.