Si vous utilisez Amazon Web Services (AWS) pour exécuter des instances EC2 (VM) dans Elastic Compute Cloud, vous avez plusieurs moyens de protéger vos charges de travail contre la perte de données causée par une défaillance logicielle, une infection par des logiciels malveillants, des suppressions accidentelles, entre autres. Une option disponible pour vous est la fonction de sauvegarde intégrée à AWS pour les instances EC2 appelée instantanés EBS. Cet article de blog explique comment créer un instantané d’une instance EC2 en utilisant des instantanés de volumes EBS avec des exemples détaillés du processus de configuration.
Qu’est-ce que les instantanés EBS ?
Les instantanés EBS sont des copies incrémentielles d’un volume Elastic Block Store (EBS) qui sont stockées dans Amazon S3. Cela signifie que lors de la création d’un instantané EBS pour la première fois, une sauvegarde complète est créée, et seules les données modifiées sont copiées pour les instantanés EBS ultérieurs. Les volumes EBS sont des disques virtuels attachés aux instances EC2.
Même si les instantanés EBS sont stockés dans Amazon S3, vous ne pouvez pas accéder manuellement aux instantanés dans le stockage S3. Vous pouvez gérer ces instantanés dans la console de gestion EC2.
Remarque : Les termes instantané AWS EC2 et instantané Amazon sont parfois également utilisés pour faire référence aux instantanés EBS.
Comment fonctionnent les instantanés EBS
Les instantanés EBS sont des sauvegardes au niveau des blocs des données des instances EC2 qui représentent le volume EBS à un moment précis où la commande d’instantané a été émise. Cela signifie que si l’instance est en cours d’exécution, les blocs de données écrits sur les volumes EBS après le démarrage de la prise d’instantané ne sont pas enregistrés dans l’instantané. Par conséquent, les instantanés EBS sont cohérents en cas de panne et ne sont pas des sauvegardes cohérentes avec l’application.
Notez que les instantanés EBS ne sont pas les mêmes que les instantanés dans le contexte de VMware vSphere et de Microsoft Hyper-V. Les instantanés Hyper-V et VMware ne sont pas des sauvegardes et ne peuvent pas remplacer les sauvegardes appropriées.
Cependant, il existe des limitations aux instantanés EBS, notamment l’absence d’options de planification et de rétention, aucune possibilité de créer des copies sur site, ainsi que la complexité de la création d’un instantané EC2 cohérent avec l’application pour simplifier la récupération.
Comment créer un instantané dans la console AWS pour les instances EC2
La console de gestion AWS est l’interface web GUI utilisée pour gérer toutes les ressources de calcul, de stockage et autres d’AWS, y compris la création d’instantanés EBS.
Pour accéder à l’instance EC2 pour laquelle vous souhaitez créer un instantané :
- Connectez-vous à la console de gestion AWS en utilisant un compte disposant des autorisations nécessaires pour créer des instances EC2, des volumes EBS et des instantanés EBS.
- Cliquez sur Services et dans la section Compute, cliquez sur EC2 pour ouvrir la console de gestion des instances EC2, des volumes EBS et d’autres fonctionnalités EC2.
Nous avons préparé une instance EC2 pour démontrer les étapes de création de snapshots EBS. Les paramètres de notre instance EC2, que nous allons sauvegarder et récupérer à l’aide de snapshots EBS, sont les suivants :
Nom : blog-temp
ID de l’instance EC2 : i-0071290000000cb84
Type d’instance : t2.micro
Zone de disponibilité : eu-central-1c
Volume EBS 1 : vol-0617000000000763c
Type de volume : gp2
Taille du volume : 8 Go
Le système d’exploitation invité (OS) exécuté sur l’instance EC2 est Ubuntu Server (Linux).
Écriture de fichiers sur le volume EBS
Créons deux fichiers sur le disque virtuel attaché à l’instance EC2 avant de créer un snapshot. De cette façon, nous pouvons vérifier si ces fichiers sont récupérés après la restauration de l’instance à partir du snapshot EBS. Nous créons deux fichiers dans le répertoire personnel de l’utilisateur :
lspci > file01.txt
echo "test EC2 snapshot 01" > snapshot01.txt
Préparation de l’instance
Arrêtez l’instance EC2 pour vous assurer que la snapshot contient des données cohérentes. La raison en est que les volumes EBS fonctionnent au niveau du bloc. Lorsqu’une snapshot EBS est prise, l’état du volume EBS à ce moment précis est enregistré. Les blocs de stockage sont enregistrés tels quels. Le système n’est pas conscient des opérations effectuées avec des fichiers au niveau du système de fichiers à ce moment-là. Si des fichiers sont en train d’être écrits sur un volume EBS lorsqu’une snapshot est prise, la snapshot contiendra des données incohérentes. L’effet est similaire à celui de débrancher un câble d’alimentation d’un ordinateur physique pendant que des fichiers sont en cours d’écriture.
Si vous souhaitez prendre une snapshot d’un volume EBS non système, vous pouvez démonter le système de fichiers du système d’exploitation pour vous assurer qu’il n’y a pas d’opérations d’écriture de fichiers sur le volume. La mise en veille doit être désactivée pour que l’instance EC2 puisse prendre une snapshot.
Pour préparer votre instance EC2 à la prise d’une snapshot:
- Ouvrez la page avec la liste des instances EC2 dans la console de gestion EC2. Cliquez avec le bouton droit sur le nom de l’instance et, dans le menu contextuel, cliquez sur Arrêter l’instance.
- Localisez le volume utilisé par l’instance EC2. Cliquez sur l’onglet Stockage et cliquez sur l’ID du volume du volume EBS approprié (vol-0617000000000763c dans notre cas).
Prise d’une snapshot
Nous sommes prêts à créer une snapshot de l’instance EC2:
- Sélectionnez le volume EBS (cliquez sur la case à cocher sur le côté gauche de la ligne) et cliquez sur Actions > Créer une snapshot.
- Entrez une description, définissez les paramètres de chiffrement et ajoutez une balise. J’utilise les paramètres suivants:
- Description: Snapshot EBS blog 01
- Chiffrement: Non crypté
Cliquez sur Créer une capture instantanée.
Note: Nous utilisons le volume non chiffré et créons une capture instantanée non chiffrée. Dans ce cas, les paramètres de chiffrement pour la capture instantanée peuvent être définis manuellement. Lorsque vous prenez une capture instantanée d’un volume chiffré, la capture instantanée est automatiquement chiffrée.
- Vous devriez voir le message suivant et l’ID de la capture instantanée:
Demande de création de capture instantanée réussie
snap-0778000000000ab40
Cliquez sur l’ID de la capture instantanée pour ouvrir une page avec les options et le statut de la capture instantanée.
- Le statut de la capture instantanée en attente signifie que les données du volume EBS sont en cours de transfert vers Amazon S3. Attendez que la création de la capture instantanée soit terminée (le statut passe à terminé). Le temps dépend de la taille des données sauvegardées dans la capture instantanée.
Comment prendre des captures instantanées de plusieurs volumes
Il est courant de trouver une instance EC2 utilisant plusieurs volumes EBS. Dans ce cas, vous pouvez créer une capture instantanée multi-volume pour tous les volumes EBS attachés à cette instance EC2 pour une sauvegarde Amazon EC2.
Dans cette section, nous couvrirons:
- Création d’un deuxième volume EBS
- Écriture de données sur le volume
- Création d’une capture instantanée EBS multi-volume
Création d’un deuxième volume EBS pour l’instance EC2
Commençons par ajouter un deuxième volume EBS à notre instance EC2, que nous utilisons à des fins de démonstration :
- Dans le volet de navigation de la console de gestion EC2, allez à Stockage de blocs élastiques > Volumes. Cliquez sur Créer un volume.
- Pour la zone de disponibilité, la région doit être la même que celle de l’instance (eu-central-1c dans notre cas).
Entrez le type/taille du volume, configurez les options de chiffrement et ajoutez des tags. Les tags aident à trouver le volume dans la liste des volumes. Nous avons défini la taille du volume à 1 Gio et utilisons les tags suivants :
-
Clé : blog
-
Valeur : temp volume 2
Cliquez sur Créer le volume.
- Retenez (ou notez) l’ID du volume (vol-0b4a0000000003d01 dans notre cas). Cliquez sur l’ID du volume pour ouvrir les propriétés du volume.
- Attachez le volume à l’instance EC2. Cliquez avec le bouton droit sur le volume ou cliquez sur Actions et, dans le menu qui s’ouvre, cliquez sur Attacher le volume.
- Sélectionnez l’instance à laquelle vous souhaitez attacher le volume EBS. Vous devez sélectionner l’ID de l’instance EC2. Dans notre cas, l’ID de l’instance est i-0071290000000cb84.
Vous pouvez sélectionner le périphérique dans le système d’exploitation invité utilisé pour accéder au volume attaché. Dans notre cas, /dev/sdf est utilisé.
Cliquez sur Attacher pour attacher le nouveau volume à l’instance EC2.
Remarque: Les informations utiles sur le renommage des périphériques de disque s’affichent dans la note. Dans notre cas, /dev/sdf est renommé en /def/xvdf dans le système d’exploitation invité.
Désormais, deux volumes sont attachés à notre instance EC2 (blog-temp):
vol-0617000000000763c
vol-0b4a0000000003d01
Écriture de données sur le deuxième volume EBS
Ensuite, nous allons créer un fichier sur le deuxième volume EBS. Ce fichier servira à vérifier si toutes les données sont récupérées après la restauration du volume à partir de la snapshot EBS. Pour cette raison, nous allons créer une partition, créer un système de fichiers et monter le système de fichiers sur le système d’exploitation Linux invité s’exécutant sur l’instance EC2.
Même si nous nous concentrons sur les opérations avec les snapshots EBS plutôt que sur les opérations dans le système d’exploitation Linux invité s’exécutant sur l’instance EC2, nous répertorions les commandes utilisées pour mieux comprendre les opérations avec les volumes.
Gestion du stockage
- Utilisez lsblk pour afficher les détails sur les périphériques de blocs dans Linux.
- Utilisez df -h pour vérifier l’espace de stockage sur les disques montés.
- Utilisez mount pour vérifier les disques montés.
Création et montage d’une partition
Création et formatage d’une partition sur le deuxième volume EBS dans parted:
sudo parted -l
parted /dev/xvdf
(parted) mklabel msdos
(parted) print
(parted) mkpart primary ext4 1MB 955MB
(parted) print
(parted) quit
Création d’un système de fichiers sur la partition préparée:
mkfs.ext4 /dev/xvdf1
Création du répertoire à utiliser comme point de montage:
mkdir disk2
Montage de la partition avec le système de fichiers sur le répertoire créé:
mount /dev/xvdf1 /disk2/
Aller dans le répertoire de la partition montée:
cd /disk2
Écriture des modifications sur les 2 volumes EBS
- Créer le fichier sur la partition située sur le deuxième volume EBS attaché à l’instance EC2 exécutant Linux:
echo “Snapshot EBS pour le disque 2” > /disk2/d2-file01.txt
- Faire des modifications sur le premier disque pour créer un nouveau snapshot EBS du premier volume utilisé par l’instance EC2. Les deux volumes doivent contenir des modifications à partir de l’état où le snapshot précédent a été pris.
Nous créons le fichier snapshot02.txt sur le premier volume pour détecter plus facilement les modifications enregistrées dans le nouveau snapshot du premier volume.
Une fois les deux volumes EBS avec de nouvelles données attachés à l’instance EC2, nous pouvons créer des snapshots multi-volumes.
Création de la capture d’écran multi-volume
- Allez dans Elastic Block Store > Snapshots dans le volet de navigation de la page de gestion des instances EC2. Cliquez sur Créer une capture.
- Sélectionnez le type de ressource : Instance.
- Entrez l’ID de l’instance EC2 nécessaire dont vous souhaitez sauvegarder les volumes à l’aide des snapshots EBS.
Tous les volumes attachés à l’instance sélectionnée sont automatiquement sélectionnés.
- Entrez une description pour vous aider à trouver le snapshot EBS dans AWS en cas de besoin. Dans notre exemple, la description est Snapshot EBS blog 02.
- Sélectionnez la case à cocher Copier les balises depuis le volume si vous souhaitez utiliser les balises attribuées aux volumes EBS.
- Une fois que vous avez cliqué sur Créer un snapshot, des snapshots pour tous les volumes sélectionnés sont créés.
Si le processus réussit, vous verrez le message suivant :
Demande de création de snapshot réussie
Deux identifiants de snapshot Amazon sont affichés : snap-0f95000000000de71 et snap–0a91000000000769b dans notre cas.
Vous pouvez enregistrer ces valeurs d’ID et cliquer sur l’un d’eux pour vérifier l’état de création du snapshot. Juste après avoir initié la création du snapshot, l’état de l’opération est en cours et passe à terminé une fois le processus terminé.
A new snapshot for each volume has been created.
Utilisation d’AWS CLI pour créer des snapshots
Vous pouvez utiliser AWS CLI comme alternative à la Console de gestion AWS si vous préférez l’interface en ligne de commande ou si vous devez automatiser la création de snapshots.
La commande pour créer un instantané EBS dans AWS CLI est :
aws ec2 create-snapshot --volume-id vol-0b4a51e1cea333d01 --description "Ceci est un instantané de test pour le blog"
La sortie devrait ressembler à ceci :
{
"Description": "Ceci est un instantané de test pour le blog",
"Tags": [],
"Encrypted": false,
"VolumeId": "vol-0b4a51e1cea333d01",
"State": "pending",
"VolumeSize": 8,
"StartTime": "2021-08-28T21:06:01.000Z",
"Progress": "",
"OwnerId": "012345678910",
"SnapshotId": "snap-0689749a39a7b822b"
}
La commande pour créer un instantané avec des balises est :
aws ec2 create-snapshot --volume-id vol-0b4a51e1cea333d01 --description 'Sauvegarde de Prod' --tag-specifications
'ResourceType=snapshot,Tags=[{Key=Blog,Value=Test},{Key=AWS,Value=EC2-snapshot}]'
Comment restaurer une instance EC2 en utilisant des instantanés EBS
Nous avons créé des instantanés des volumes EBS attachés à l’instance Amazon EC2. Ces instantanés sont une forme de sauvegarde de données dans AWS. Maintenant, voyons comment créer une instance EC2 à partir d’un instantané en restaurant :
- des volumes EBS particuliers dans AWS
- l’ensemble de l’instance EC2
Restauration du deuxième volume EBS
Rétablissons le deuxième volume EBS (de taille 1 GiB) à partir de l’instantané. Ce volume est utilisé pour stocker des fichiers et le système d’exploitation n’est pas installé sur ce volume.
- Dans la navigation de la console de gestion EC2, allez à Elastic Block Store > Snapshots.
Nous entrons « blog » dans le champ de recherche pour afficher tous les instantanés créés pour les volumes EBS de l’instance EC2 utilisée pour écrire ce blog. C’est un exemple de l’utilité d’ajouter des descriptions et des balises.
- Sélectionnez l’instantané du volume de 1 GiB et créez un nouveau volume à partir de l’instantané. Faites un clic droit sur l’instantané et, dans le menu qui s’ouvre, cliquez sur Créer un volume.
- Définissez les paramètres de volume nécessaires sur la page Créer un volume: sélectionnez le type de volume et définissez la taille du volume, la zone de disponibilité, les options d’encryption, les clés de balises et les valeurs.
La zone de disponibilité doit être la même que celle de l’instance EC2 (eu-central-1c dans notre cas).
La taille du volume est la même que celle du volume original sauvegardé (1 GiB) dans notre exemple.
La clé de balise est blog et la valeur est volume récupéré 1.
- Cliquez sur Créer un volume pour terminer et créer le volume EBS à l’aide de l’instantané EBS.
Vous verrez le message suivant :
La demande de création de volume a réussi
Vous pouvez enregistrer l’ID du volume. Le nouvel ID de volume est vol-09cd000000000b502 dans notre cas.
Restauration d’un volume système
Pour restaurer une instance EC2, vous devez restaurer le volume EBS sur lequel le système d’exploitation est installé. Dans ce cas, vous pouvez créer une image à partir de l’instantané du volume EBS utilisé par le système d’exploitation invité et lancer l’instance à l’aide de cette image (l’instance EC2 restaurée).
Création de l’image
- Dans la console de gestion EC2, allez à Elastic Block Store > Snapshots et sélectionnez l’instantané nécessaire du volume EBS sur lequel le système d’exploitation invité est installé.
Nous sélectionnons le dernier instantané du volume de 8-gigaoctets utilisé par le système d’exploitation invité (Ubuntu Server). Cet instantané de volume EBS a été créé lorsque nous avons créé l’instantané multivolume pour l’instance EC2.
Faites un clic droit sur l’instantané et, dans le menu qui s’ouvre, cliquez sur Créer une image.
- Dans la fenêtre qui s’ouvre, entrez les informations nécessaires et sélectionnez les options pour créer une image à partir de l’instantané EBS. Nous utilisons les paramètres suivants.
Nom : blog-restauration
Description : Restauré à partir d’un instantané EBS (blog)
Les autres paramètres sont laissés par défaut.
Cliquez sur Créer.
- La boîte de dialogue Demande de création d’image reçue s’ouvre. Cliquez sur l’ID de l’image pour consulter des informations sur l’image (ami-08ed800000000872a dans notre cas). Attendez que la création de l’image soit terminée.
Lancement de l’image
Une fois l’image créée, faites un clic droit sur l’image et cliquez sur Lancer.
Le nouveau assistant de création d’instance EC2 s’ouvre. Vous devez sélectionner les options de l’instance. Vous pouvez sélectionner les options identiques à celles choisies pour la machine virtuelle originale qui a été sauvegardée. Vous pouvez également restaurer l’instance vers une nouvelle instance EC2 plus puissante.
Note: Nous sommes redirigés vers Étape 2de l’assistant (au lieu de Étape 1. Choisissez une AMI) car nous avons déjà sélectionné l’AMI blog-recovered dans la page avec la liste des AMIs.
Étape 2: Choisissez un type d’instance. Nous sélectionnons t2.micro comme type d’instance. Cliquez sur Suivant à chaque étape de l’assistant pour continuer.
Étape 3: Configurez l’instance. Configurez les détails en fonction de vos besoins, y compris les paramètres réseau, les rôles IAM, le comportement de l’arrêt, etc.
Étape 4: Ajouter du stockage est important lorsque vous récupérez une instance EC2 en utilisant des instantanés EBS. Cliquez sur Ajouter un nouveau volume. Une nouvelle ligne avec des options de volume est ajoutée sur cette page. Entrez l’ID de l’instantané de volume nécessaire dans le champ Instantané.
Nous saisissons snap-0a91000000000769b, qui est l’ID de notre instantané du volume de 1 GiB. La taille de 8 GiB du volume est sélectionnée par défaut dans notre exemple. Nous pouvons définir la taille du volume à 1 GiB comme configuré pour le volume EBS original. Vous pouvez également sélectionner le périphérique de stockage, le type de volume, le chiffrement et les options de suppression à la terminaison.
Étape 5 : Ajouter des balises. Assurez-vous que les balises sont utiles à des fins de recherche. Les balises sont appliquées à tous les volumes et instances. Dans cet exemple, la clé de la balise est blog et la valeur est VM récupérée 01.
Étape 6 : Configurer le groupe de sécurité. Modifiez les paramètres pour contrôler le trafic réseau de votre instance EC2.
Étape 7 : Examiner le lancement de l’instance. Examinez les détails du lancement de votre instance et appuyez sur Lancer pour terminer. Vous devez sélectionner une paire de clés ou en créer une nouvelle pour accéder à l’instance EC2.
- La page de Statut du lancement est maintenant affichée. Cliquez sur Afficher les instances.
- Entrez un nom pour l’instance récupérée (blog-recovered dans notre cas). Le statut de l’instance E2 récupérée est en cours d’exécution. Les deux volumes EBS récupérés à partir des instantanés EBS sont attachés à l’instance EC2 (voir la capture d’écran ci-dessous).
Vérification des fichiers restaurés
Vérifions si les fichiers créés avant la prise du dernier instantané ont été récupérés:
Listez les périphériques de bloc attachés:
lsblk
Listez les fichiers du répertoire actuel (home) de l’utilisateur:
ls -al
Les fichiers snapshot01.txt et snapshot2.txt créés avant la prise du premier et du deuxième instantané du volume EBS sur lequel le système d’exploitation est installé sont présents.
Montez la partition située sur le deuxième disque (volume EBS):
sudo mount /dev/xvdb1 /disk2/
Le nom de la partition a été changé en /dev/xvdb1. Gardez à l’esprit que vous devrez peut-être modifier /etc/fstab après avoir restauré l’instance pour le montage automatique.
ls -al /disk2/
d2-file01.txt est présent sur le système de fichiers stocké sur le deuxième volume EBS après la restauration.
L’instance AWS EC2, avec tous les volumes EBS attachés, a été restaurée avec succès à partir des instantanés EBS. Toutes les données nécessaires sont préservées.
Conclusion
Vous pouvez sauvegarder un seul volume ou sauvegarder tous les volumes en utilisant des instantanés multi-volumes. Il s’agit d’une fonctionnalité AWS native très pratique pour la protection des données et la reprise après sinistre. Notez cependant que des coûts supplémentaires sont engagés lors du stockage des instantanés EBS dans le cloud Amazon car un stockage cloud supplémentaire est utilisé. De plus, il existe d’autres limitations à l’utilisation des instantanés EBS pour les sauvegardes, telles que le système de création d’instantanés n’étant pas conscient des fichiers écrits au moment de la prise de l’instantané. Par conséquent, les sauvegardes effectuées avec des instantanés EBS sont cohérentes avec les crashs et non avec les applications.
NAKIVO Backup & Replication est une solution de protection des données qui prend en charge la création de sauvegardes conscientes des applications et de répliques des instances Amazon EC2. Vous pouvez également utiliser la solution pour simplifier et automatiser considérablement le processus de sauvegarde et de récupération. Récupérez rapidement l’ensemble de l’instance EC2 à partir d’une sauvegarde sans avoir besoin de récupérer les volumes EBS, de créer une instance EC2 et d’attacher manuellement les volumes à une instance EC2 créée.
Source:
https://www.nakivo.com/blog/how-to-create-snapshots-of-ec2-instance/