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": "",
"OwnerId": "012345678910",
"SnapshotId": "snap-0689749a39a7b822b"
}
El comando para crear una instantánea con etiquetas:
aws ec2 create-snapshot --volume-id vol-0b4a51e1cea333d01 --description 'Prod backup' --tag-specifications
'ResourceType=snapshot,Tags=[{Key=Blog,Value=Test},{Key=AWS,Value=EC2-snapshot}]'
Cómo restaurar una instancia EC2 utilizando instantáneas EBS
Hemos creado instantáneas de los volúmenes EBS adjuntos a la instancia de Amazon EC2. Estas instantáneas son una forma de hacer backups de datos en AWS. Ahora vamos a ver cómo crear una instancia EC2 a partir de una instantánea mediante restauración:
- volúmenes EBS particulares en AWS
- toda la instancia EC2
Restauración del segundo volumen EBS
Vamos a restaurar el segundo volumen EBS (tamaño 1 GiB) desde la instantánea. Este volumen se utiliza para almacenar archivos, y el sistema operativo no está instalado en este volumen.
- En el panel de navegación de la consola de gestión de EC2, vaya a Elastic Block Store > Snapshots.
Introducimos «blog» en el campo de búsqueda para mostrar todas las instantáneas creadas para los volúmenes EBS de la instancia EC2 utilizada para escribir esta entrada de blog. Este es un ejemplo de por qué merece la pena añadir descripciones y etiquetas.
- Selecciona la instantánea del volumen de 1-GiB y crea un nuevo volumen a partir de la instantánea. Haz clic con el botón derecho en la instantánea y, en el menú que se abre, pulsa Create Volume.
- Define los parámetros necesarios del volumen en la página Create Volume: selecciona el tipo de volumen y define el tamaño del volumen, la zona de disponibilidad, las opciones de cifrado, las claves de etiquetas y los valores.
La zona de disponibilidad debe ser la misma que la de la instancia EC2 (eu-central-1c en nuestro caso).
El tamaño del volumen es el mismo que el del volumen original del que se ha hecho la copia de seguridad (1 GiB) en nuestro ejemplo.
La clave de la etiqueta es blog y el valor es recovered volume 1.
- Pulse Create Volume para finalizar y crear el volumen EBS utilizando la instantánea EBS.
Verá el siguiente mensaje:
Create Volume Request Succeeded
Puede guardar el ID del volumen. En nuestro caso, el nuevo identificador de volumen es vol-09cd000000000b502.
Restaurar un volumen de sistema
Para restaurar una instancia EC2, es necesario restaurar el volumen EBS en el que está instalado el sistema operativo. En este caso, puede crear una imagen a partir de la instantánea del volumen EBS utilizado por el sistema operativo invitado y lanzar la instancia utilizando esta imagen (la instancia EC2 restaurada).
Creación de la imagen
- En la consola de gestión de EC2, vaya a Elastic Block Store > Snapshots y seleccione la instantánea necesaria del volumen EBS en el que está instalado el SO invitado.
Seleccionamos la última instantánea del volumen de 8 GiB utilizado por el SO invitado (Ubuntu Server). Esta instantánea de volumen EBS se creó cuando creamos la instantánea multivolumen para la instancia EC2.
Haz clic con el botón derecho en la instantánea y, en el menú que se abre, pulsa Create Image.
- En la ventana que se abre, introduzca la información necesaria y seleccione las opciones para crear una imagen a partir de la instantánea de EBS. Utilizamos los siguientes parámetros.
Nombre: blog-recovered
Descripción: Restored from an EBS snapshot (blog)
Los demás ajustes se dejan en sus valores predeterminados.
Pulsa Crear.
- Se abre el cuadro de diálogo Create Image request received. Haga clic en el ID de la imagen para ver información sobre ella (ami-08ed800000000872a en nuestro caso). Espere hasta que finalice la creación de la imagen.
Lanzamiento de la imagen
Una vez creada la imagen, haz clic con el botón derecho en ella y pulsa Launch.
Se abre el asistente de creación de nuevas instancias EC2. Debe seleccionar las opciones de instancia. Puede seleccionar las mismas opciones que las seleccionadas para la máquina virtual original de la que se hizo la copia de seguridad. También puede restaurar la instancia en una nueva instancia EC2 más potente.
Nota: Se nos redirige al Step 2 del asistente (en lugar de Step 1. Choose AMI) puesto que ya hemos seleccionado la AMI blog-recovered en la página con la lista de AMIs.
Step 2: Choose an Instance Type. Seleccionamos t2.micro como tipo de instancia. Haga clic en Next en cada paso del asistente para continuar.
Step 3: Configure Instance. Configure los detalles en función de sus requisitos, incluidos los ajustes de red, las funciones de IAM, el comportamiento de apagado, etc.
Step 4: Add Storage es importante cuando se recupera una instancia EC2 utilizando instantáneas de EBS. Haz clic en Add New Volume. En esta página se añade una nueva línea con opciones de volumen. Introduzca el ID de la instantánea de volumen necesaria en el campo Snapshots.
Introducimos snap-0a91000000000769b, que es el ID de nuestra instantánea del volumen de 1-GiB. El tamaño de 8-GiB del volumen está seleccionado por defecto en nuestro ejemplo. Podemos establecer el tamaño del volumen en 1 GiB tal y como está configurado para el volumen EBS original. También puede seleccionar el dispositivo de almacenamiento, el tipo de volumen, el cifrado y las opciones de eliminación al terminar.
Step 5: Add Tags. Asegúrese de que las etiquetas útiles para fines de búsqueda. Las etiquetas se aplican a todos los volúmenes e instancias. En este ejemplo, la clave de la etiqueta es blog y el valor es recovered VM 01.
Step 6: Configure Security Group. Edite los parámetros para controlar el tráfico de red de su instancia EC2.
Step 7: Review Instance Launch. Revise los detalles de lanzamiento de su instancia y pulse Launch para finalizar. Debe seleccionar un par de claves o crear uno nuevo para acceder a la instancia EC2.
- Aparecerá la página Launch Status. Haz clic en View instances.
- Introduzca un nombre para la instancia recuperada (blog-recovered en nuestro caso). El estado de la instancia E2 recuperada es running. Ambos volúmenes EBS recuperados de las instantáneas EBS se adjuntan a la instancia EC2 (véase la captura de pantalla siguiente).
Comprobación de los archivos restaurados
Comprobemos si se han recuperado los archivos creados antes de tomar la última instantánea:
Listar los dispositivos de bloque conectados:
lsblk
Listar los archivos del directorio actual (home) del usuario:
ls -al
Los archivos snapshot01.txt y snapshot2.txt creados antes de tomar la primera y segunda instantánea del volumen EBS en el que está instalado el SO están presentes.
Monte la partición situada en el segundo disco (volumen EBS):
sudo mount /dev/xvdb1 /disk2/
El nombre de la partición se ha cambiado a /dev/xvdb1. Tenga en cuenta que puede necesitar editar /etc/fstab después de restaurar la instancia para el auto-montaje.
ls -al /disk2/
d2-archivo01.txt está presente en el sistema de archivos almacenado en el segundo volumen EBS después de la restauración.
La instancia de AWS EC2, con todos los volúmenes de EBS adjuntos, se ha restaurado correctamente a partir de instantáneas de EBS. Se conservan todos los datos necesarios.
Conclusión
Puedes hacer backup de un solo volumen o de todos los volúmenes mediante instantáneas multivolumen. Se trata de una función nativa de AWS muy práctica para la protección de datos y la recuperación ante desastres. Tenga en cuenta, sin embargo, que se incurre en costes adicionales al almacenar instantáneas de EBS en la nube de Amazon porque se utiliza almacenamiento en la nube adicional. Además, existen otras limitaciones a la hora de hacer backups con instantáneas de EBS, como que el sistema de creación de instantáneas no es consciente de los archivos que se están escribiendo en el momento en que se toma la instantánea. Como resultado, los backups hechos con instantáneas de EBS son consistentes con los fallos y no con las aplicaciones.
NAKIVO Backup & Replication es una solución de protección de datos que permite crear backups coherentes con las aplicaciones y réplicas de instancias de Amazon EC2. También puede utilizar la solución para simplificar y automatizar considerablemente el proceso de backups y recuperación. Recupere rápidamente toda la instancia EC2 a partir de un backup sin necesidad de recuperar volúmenes EBS, crear una instancia EC2 y adjuntar los volúmenes manualmente a una instancia EC2 creada.