Cómo crear una instantánea de una instancia EC2 para la protección de datos de AWS EC2
Si utiliza Amazon Web Services (AWS) para ejecutar instancias EC2 (VM) en Elastic Compute Cloud, dispone de varias formas de proteger sus cargas de trabajo contra la pérdida de datos causada por fallos de software, infección por malware, eliminaciones accidentales, entre otros. Una opción disponible es la función incorporada de backups de AWS para instancias EC2 llamada instantáneas EBS. Esta entrada del blog explica cómo crear una instantánea de una instancia EC2 mediante instantáneas de volumen EBS con ejemplos detallados del proceso de configuración.
¿Qué son las instantáneas de EBS?
Las instantáneas de EBS son copias incrementales de un volumen de Elastic Block Store (EBS) que se almacenan en Amazon S3. Esto significa que cuando se crea una instantánea de EBS por primera vez, se crea una copia de seguridad completa y sólo se copian los datos modificados para las siguientes instantáneas de EBS. Los volúmenes EBS son discos virtuales adjuntos a instancias EC2.
Aunque las instantáneas de EBS se almacenan en Amazon S3, no se puede acceder manualmente a las instantáneas en el almacenamiento S3. Puede gestionar estas instantáneas en la consola de gestión de EC2.
Nota: Los términos instantánea de AWS EC2 e instantánea de Amazon a veces también se utilizan para referirse a las instantáneas de EBS.
Cómo funcionan las instantáneas de EBS
Las instantáneas de EBS son backups a nivel de bloque de datos de instancias EC2 que representan el volumen EBS en el momento específico en que se emitió el comando de instantánea. Esto significa que si la instancia está en ejecución, los bloques de datos escritos en volúmenes EBS tras el inicio de la toma de instantáneas no se guardan en la instantánea. Como resultado, las instantáneas de EBS son backups coherentes con los fallos y no con las aplicaciones.
Tenga en cuenta que las instantáneas de EBS no son lo mismo que las instantáneas en el contexto de VMware vSphere y Microsoft Hyper-V. Las instantáneas de Hyper-V y VMware no son backups y no pueden sustituir a los backups adecuados.
Sin embargo, las instantáneas de EBS tienen limitaciones, como la falta de opciones de programación y retención, la imposibilidad de crear copias locales y la complejidad de crear una instantánea de EC2 coherente con la aplicación para simplificar la recuperación.
Cómo crear instantáneas en la consola de AWS para instancias EC2
La consola de administración de AWS es la interfaz web GUI que se utiliza para administrar todos los recursos informáticos, de almacenamiento y de otro tipo de AWS, incluida la creación de instantáneas de EBS.
Para acceder a la instancia EC2 para la que desea crear una instantánea:
- Inicie sesión en la consola de administración de AWS con una cuenta que tenga los permisos necesarios para crear instancias EC2, volúmenes EBS e instantáneas EBS.
- Haga clic en Services y, en la sección Compute, haga clic en EC2 para abrir la consola de gestión de instancias EC2, volúmenes EBS y otras funciones de EC2.
Hemos preparado una instancia EC2 para demostrar los pasos para crear instantáneas de EBS. Los parámetros de nuestra instancia EC2, de la que vamos a hacer backup de y recuperar mediante instantáneas EBS, son los siguientes:
Nombre: blog-temp
ID de instancia EC2: i-0071290000000cb84
Tipo de instancia: t2.micro
Zona de disponibilidad: eu-central-1c
Volumen 1 de EBS: vol-0617000000000763c
Tipo de volumen: gp2
Tamaño del volumen: 8 GB
El sistema operativo invitado (SO) que se ejecuta en la instancia EC2 es Ubuntu Server (Linux).
Escritura de archivos en el volumen EBS
Vamos a crear dos archivos en el disco virtual conectado a la instancia EC2 antes de crear una instantánea. De esta forma, podemos comprobar si estos archivos se recuperan tras restaurar la instancia desde la instantánea de EBS. Creamos dos ficheros en el directorio home del usuario:
lspci > file01.txt
echo "test EC2 snapshot 01" > snapshot01.txt
Preparación de la instancia
Detenga la instancia EC2 para asegurarse de que la instantánea contiene datos coherentes. El motivo es que los volúmenes de EBS funcionan a nivel de bloque. Cuando se toma una instantánea de EBS, se guarda el estado del volumen EBS de ese momento. Los bloques de almacenamiento se guardan tal cual. En ese momento, el sistema no conoce las operaciones realizadas con los archivos a nivel del sistema de archivos. Si se están escribiendo archivos en un volumen EBS cuando se toma una instantánea, ésta contendrá datos inconsistentes. El efecto es similar al de desenchufar un cable de alimentación de un ordenador físico mientras se escriben archivos.
Si desea realizar una instantánea de un volumen EBS no perteneciente al sistema, puede desmontar el sistema de archivos del sistema operativo para asegurarse de que no se realizan operaciones de escritura de archivos en el volumen. La hibernación debe estar desactivada para que la instancia EC2 pueda tomar una instantánea.
Para preparar su instancia EC2 para tomar una instantánea:
- Abra la página con la lista de instancias EC2 en la consola de gestión de EC2. Haga clic con el botón derecho del ratón en el nombre de la instancia y, en el menú contextual, haga clic en Stop instance.
- Localice el volumen utilizado por la instancia EC2. Haga clic en la pestaña Storage y en el ID del volumen EBS correspondiente(vol-0617000000000763c en nuestro caso).
Tomar una instantánea
Estamos listos para crear la instantánea de la instancia EC2:
- Seleccione el volumen EBS (haga clic en la casilla situada a la izquierda de la línea) y haga clic en Actions > Create Snapshot.
- Introduce una descripción, establece los ajustes de cifrado y añade una etiqueta. Utilizo los siguientes parámetros:
- Descripción: Blog de instantáneas de EBS 01
- Cifrado: No cifrado
Haga clic en Create Snapshot.
Nota: Utilizamos el volumen sin cifrar y creamos una instantánea sin cifrar. En este caso, los ajustes de cifrado de la instantánea pueden establecerse manualmente. Cuando tomas una instantánea de un volumen cifrado, la instantánea se cifra automáticamente.
- Deberías ver el siguiente mensaje y el ID de la instantánea:
Solicitud de creación de instantánea aceptada
snap-0778000000000ab40
Haz clic en el ID de la instantánea para abrir una página con las opciones y el estado de la instantánea.
- El estado de instantánea pending significa que los datos del volumen EBS se están transfiriendo ahora a Amazon S3. Espere a que se complete la creación de la instantánea (el estado cambia a completed). El tiempo depende del tamaño de los datos guardados en la instantánea.
Cómo tomar instantáneas de varios volúmenes
Es frecuente encontrar una instancia EC2 que utiliza varios volúmenes EBS. En este caso, puede crear una instantánea multivolumen para todos los volúmenes EBS adjuntos a esa instancia EC2 para hacer un backup de Amazon EC2.
En esta sección trataremos:
- Creación de un segundo volumen EBS
- Escritura de datos en el volumen
- Creación de una instantánea de EBS multivolumen
Creación de un segundo volumen EBS para la instancia EC2
Primero vamos a añadir un segundo volumen EBS a nuestra instancia EC2, que estamos utilizando para fines de demostración:
- En el panel de navegación de la consola de gestión de EC2, vaya a Elastic Block Store > Volumes. Haz clic en Create Volume.
- Para la Availability Zone, la región debe ser la misma que la región de la instancia (eu-central-1c en nuestro caso).
Introduzca el tipo/tamaño de volumen, configure las opciones de cifrado e introduzca las etiquetas. Las etiquetas ayudan a encontrar el volumen en la lista de volúmenes. Fijamos el tamaño del volumen en 1 GiB, y utilizamos las siguientes etiquetas:
-
Clave: blog
-
Valor: temp volumen 2
Haz clic en Create Volume.
- Recuerde (o anote) el id del volumen (vol-0b4a0000000003d01 en nuestro caso). Haga clic en el ID del volumen para abrir las propiedades del volumen.
- Adjunte el volumen a la instancia EC2. Haz clic con el botón derecho del ratón en el volumen o en Actions y, en el menú que se abre, haz clic en Attach Volume.
- Seleccione la instancia a la que desea adjuntar el volumen EBS. Debe seleccionar el ID de la instancia EC2. En nuestro caso, el ID de instancia es i-0071290000000cb84.
Puede seleccionar el dispositivo en el sistema operativo invitado utilizado para acceder al volumen adjunto. En nuestro caso se utiliza /dev/sdf.
Haga clic en Attach para adjuntar el nuevo volumen a la instancia EC2.
Nota: En la nota se muestra información útil sobre cómo cambiar el nombre de los dispositivos de disco. En nuestro caso /dev/sdf se renombra a /def/xvdf en el SO huésped.
Ahora hay dos volúmenes adjuntos a nuestra instancia EC2 (blog-temp):
vol-0617000000000763c
vol-0b4a0000000003d01
Escritura de datos en el segundo volumen EBS
A continuación, crearemos un archivo en el segundo volumen EBS. Este archivo se utilizará para comprobar si se han recuperado todos los datos tras restaurar el volumen a partir de la instantánea de EBS. Por este motivo, crearemos una partición, crearemos un sistema de archivos y montaremos el sistema de archivos en el SO Linux invitado que se ejecuta en la instancia EC2.
Aunque nos centramos en las operaciones con instantáneas de EBS y no en las operaciones en el SO invitado Linux que se ejecuta en la instancia EC2, enumeramos los comandos utilizados para comprender mejor las operaciones con volúmenes.
Gestión del almacenamiento
- Utilice lsblk para mostrar detalles sobre los dispositivos de bloque en Linux.
- Utilice df -h para comprobar el espacio de almacenamiento en los discos montados.
- Utiliza mount para comprobar los discos montados.
Crear y montar una partición
Creación y formateo de una partición en el segundo volumen EBS en parted:
sudo parted -l
parted /dev/xvdf
(parted) mklabel msdos
(parted) print
(parted) mkpart primary ext4 1MB 955MB
(parted) print
(parted) quit
Crear un sistema de archivos en la partición preparada:
mkfs.ext4 /dev/xvdf1
Crear el directorio a utilizar como punto de montaje:
mkdir disk2
Montar la partición con el sistema de archivos en el directorio creado:
mount /dev/xvdf1 /disk2/
Ir al directorio de la partición montada:
cd /disk2
Escritura de cambios en los 2 volúmenes EBS
- Cree el archivo en la partición ubicada en el segundo volumen EBS conectado a la instancia EC2 que ejecuta Linux:
echo “EBS snapshot for disk 2” > /disk2/d2-file01.txt
- Realice cambios en el primer disco para crear una nueva instantánea de EBS del primer volumen utilizado por la instancia de EC2. Ambos volúmenes deben contener cambios con respecto al estado en el que se tomó la instantánea anterior.
Creamos el archivo snapshot02.txt en el primer volumen para detectar más cómodamente los cambios guardados en la nueva instantánea del primer volumen.
Una vez que los dos volúmenes EBS con los nuevos datos están conectados a la instancia EC2, podemos crear instantáneas multivolumen.
Creación de la instantánea multivolumen
- Vaya a Elastic Block Store > Snapshots en el panel de navegación de la página de gestión de instancias EC2. Haga clic en Create Snapshot.
- Seleccione el tipo de recurso: Instance.
- Introduzca el ID de instancia de la instancia EC2 necesaria de cuyos volúmenes desea hacer backup de mediante instantáneas de EBS.
Todos los volúmenes adjuntos a la instancia seleccionada se seleccionan automáticamente.
- Introduzca una descripción que le ayude a encontrar la instantánea de EBS en AWS cuando sea necesario. En nuestro ejemplo, la descripción es EBS snapshot blog 02.
- Seleccione la casilla Copy tags from volume si desea utilizar las etiquetas asignadas a los volúmenes EBS.
- Una vez pulsado Create Snapshot, se crean instantáneas para todos los volúmenes seleccionados.
Si el proceso tiene éxito, verás el siguiente mensaje:
Create Snapshot Request Succeeded
Se muestran dos identificadores de instantáneas de Amazon: snap-0f95000000000de71 y snap-0a91000000000769b en nuestro caso.
Puede guardar estos valores de ID y hacer clic en uno de ellos para comprobar el estado de creación de la instantánea. Justo después de iniciar la creación de la instantánea, el estado de la operación es pending y cambia a completed una vez que el proceso finaliza.
Se ha creado una nueva instantánea para cada volumen.
Uso de la CLI de AWS para crear instantáneas
Puede utilizar la CLI de AWS como alternativa a la consola de administración de AWS si prefiere la interfaz de línea de comandos o si necesita automatizar la creación de instantáneas.
El comando para crear una instantánea de EBS en la CLI de AWS es:
aws ec2 create-snapshot --volume-id vol-0b4a51e1cea333d01 --description "This is a test snapshot for the blog"
El resultado debería ser el siguiente:
{
"Description": "This is a test snapshot for the blog",
"Tags": [],
"Encrypted": false,
"VolumeId": "vol-0b4a51e1cea333d01",
"State": "pending",
"VolumeSize": 8,
"StartTime": "2021-08-28T21:06:01.000Z",
"Progress":