Se stai utilizzando Amazon Web Services (AWS) per eseguire istanze EC2 (VM) in Elastic Compute Cloud, hai diverse modalità per proteggere i tuoi carichi di lavoro contro la perdita di dati causata da guasti software, infezioni da malware, cancellazioni accidentali, tra le altre cose. Una opzione disponibile è la funzionalità di backup integrata di AWS per le istanze EC2 chiamata snapshot EBS. Questo post del blog spiega come creare uno snapshot di un’istanza EC2 utilizzando snapshot del volume EBS con esempi dettagliati del processo di configurazione.
Cos’è uno snapshot EBS?
Gli snapshot EBS sono copie incrementali di un volume Elastic Block Store (EBS) che sono memorizzati in Amazon S3. Ciò significa che quando crei uno snapshot EBS per la prima volta, viene creato un backup completo e solo i dati modificati vengono copiati per gli snapshot successivi di EBS. I volumi EBS sono dischi virtuali collegati alle istanze EC2.
Anche se gli snapshot EBS sono memorizzati in Amazon S3, non è possibile accedere manualmente agli snapshot nello storage S3. È possibile gestire questi snapshot nella Console di gestione EC2.
Nota: I termini snapshot AWS EC2 e snapshot Amazon sono talvolta utilizzati anche per fare riferimento agli snapshot EBS.
Come funzionano gli snapshot EBS
Gli snapshot EBS sono backup a livello di blocco dei dati dell’istanza EC2 che rappresentano il volume EBS al momento specifico in cui è stata emessa il comando di snapshot. Questo significa che se l’istanza è in esecuzione, i blocchi di dati scritti sui volumi EBS dopo l’inizio del processo di creazione dello snapshot non vengono salvati nello snapshot. Di conseguenza, gli snapshot EBS sono coerenti con le interruzioni e non con le applicazioni di backup.
Nota che gli snapshot EBS non sono gli stessi degli snapshot nel contesto di VMware vSphere e Microsoft Hyper-V. Gli snapshot Hyper-V e VMware non sono backup e non possono sostituire i backup adeguati.
Tuttavia, ci sono limitazioni agli snapshot EBS, che includono la mancanza di opzioni di pianificazione e conservazione, l’impossibilità di creare copie locali, così come la complessità di creare uno snapshot EC2 coerente con l’applicazione per semplificare il ripristino.
Come Creare uno Snapshot nella Console AWS per le Istanze EC2
La Console di Gestione AWS è l’interfaccia web GUI utilizzata per gestire tutte le risorse di calcolo, archiviazione e altre risorse AWS, inclusa la creazione di snapshot EBS.
Per accedere all’istanza EC2 per cui si desidera creare uno snapshot:
- Accedi alla Console di Gestione AWS utilizzando un account che abbia le autorizzazioni necessarie per creare istanze EC2, volumi EBS e snapshot EBS.
- Clicca su Servizi e nella sezione Compute, clicca su EC2 per aprire la console di gestione delle istanze EC2, dei volumi EBS e di altre funzionalità EC2.
Abbiamo preparato un’istanza EC2 per mostrare i passaggi per creare snapshot di EBS. I parametri della nostra istanza EC2, che stiamo per eseguire il backup e il ripristino utilizzando snapshot EBS, sono i seguenti:
Nome: blog-temp
ID istanza EC2: i-0071290000000cb84
Tipo di istanza: t2.micro
Zona di disponibilità: eu-central-1c
Volume EBS 1: vol-0617000000000763c
Tipo di volume: gp2
Dimensione del volume: 8 GB
Il sistema operativo guest (OS) in esecuzione sull’istanza EC2 è Ubuntu Server (Linux).
Scrittura di file sul volume EBS
Creiamo due file sul disco virtuale collegato all’istanza EC2 prima di creare uno snapshot. In questo modo, possiamo verificare se questi file vengono ripristinati dopo il ripristino dell’istanza dallo snapshot EBS. Creiamo due file nella directory home dell’utente:
lspci > file01.txt
echo "test EC2 snapshot 01" > snapshot01.txt
Preparazione dell’istanza
Interrompere l’istanza EC2 per assicurarsi che lo snapshot contenga dati consistenti. Il motivo di ciò è che i volumi EBS funzionano a livello di blocco. Quando viene eseguito uno snapshot EBS, viene salvato lo stato del volume EBS in quel preciso momento. I blocchi di archiviazione vengono salvati così come sono. Il sistema non è consapevole delle operazioni effettuate con i file a livello di sistema di file in quel momento. Se i file vengono scritti su un volume EBS quando viene eseguito uno snapshot, lo snapshot conterrà dati inconsistenti. L’effetto è simile a staccare un cavo di alimentazione da un computer fisico mentre vengono scritti dei file.
Se si desidera eseguire uno snapshot di un volume EBS non di sistema, è possibile smontare il sistema di file dal sistema operativo per garantire che non ci siano operazioni di scrittura di file sul volume. L’ibernazione deve essere disabilitata per l’istanza EC2 per eseguire uno snapshot.
Per preparare la tua istanza EC2 per eseguire uno snapshot:
- Apri la pagina con l’elenco delle istanze EC2 nella console di gestione EC2. Fai clic con il tasto destro sul nome dell’istanza e, nel menu contestuale, fai clic su Arresta istanza.
- Trova il volume utilizzato dall’istanza EC2. Fai clic sulla scheda Archiviazione e fai clic sull’ID del volume del volume EBS appropriato (vol-0617000000000763c nel nostro caso).
Eseguire uno snapshot
Siamo pronti per creare uno snapshot dell’istanza EC2:
- Seleziona il volume EBS (fai clic sulla casella di controllo sul lato sinistro della riga) e fai clic su Azioni > Crea snapshot.
- Inserisci una descrizione, imposta le impostazioni di crittografia e aggiungi un tag. Utilizzo i seguenti parametri:
- Descrizione: Snapshot EBS blog 01
- Non criptato
Clicca su Crea Snapshot.
Nota: Utilizziamo il volume non criptato e creiamo uno snapshot non criptato. In questo caso, le impostazioni di crittografia per lo snapshot possono essere impostate manualmente. Quando si crea uno snapshot di un volume criptato, lo snapshot viene automaticamente criptato.
- Dovresti vedere il seguente messaggio e l’ID dello snapshot:
Richiesta di Creazione Snapshot Eseguita
snap-0778000000000ab40
Clicca sull’ID dello snapshot per aprire una pagina con le opzioni dello snapshot e lo stato.
- Lo stato dello snapshot in sospeso significa che i dati del volume EBS stanno ora venendo trasferiti su Amazon S3. Attendi il completamento della creazione dello snapshot (lo stato viene cambiato in completato). Il tempo dipende dalla dimensione dei dati salvati nello snapshot.
Come Effettuare Snapshot Multi-Volume
È comune trovare un’istanza EC2 che utilizza più volumi EBS. In questo caso, è possibile creare uno snapshot multi-volume per tutti i volumi EBS collegati a quella istanza EC2 per un backup di Amazon EC2.
In questa sezione, tratteremo:
- Creazione di un secondo volume EBS
- Scrittura di dati sul volume
- Creazione di uno snapshot multi-volume EBS
Creazione di un secondo volume EBS per l’istanza EC2
Cominciamo aggiungendo un secondo volume EBS alla nostra istanza EC2, che stiamo utilizzando a scopo dimostrativo:
- Nel riquadro di navigazione della console di gestione di EC2, vai su Elastic Block Store > Volumi. Clicca su Crea Volume.
- Per la Zona di disponibilità, la regione deve essere la stessa della istanza (eu-central-1c nel nostro caso).
Inserisci il tipo/dimensione del volume, imposta le opzioni di crittografia e inserisci dei tag. I tag aiutano a trovare il volume nell’elenco dei volumi. Abbiamo impostato la dimensione del volume su 1 GiB e utilizzato i seguenti tag:
-
Chiave: blog
-
Valore: volume temporaneo 2
Clicca su Crea Volume.
- Ricorda (o annota) l’id del volume (vol-0b4a0000000003d01 nel nostro caso). Clicca sull’id del volume per aprire le proprietà del volume.
- Allega il volume all’istanza EC2. Fai clic con il tasto destro sul volume o clicca su Azioni e, nel menu che si apre, fai clic su Allega Volume.
- Seleziona l’istanza a cui è necessario allegare il volume EBS. Devi selezionare l’id dell’istanza EC2. Nel nostro caso, l’id dell’istanza è i-0071290000000cb84.
Puoi selezionare il dispositivo nel sistema operativo guest utilizzato per accedere al volume allegato. Nel nostro caso, viene utilizzato /dev/sdf.
Fai clic su Allega per allegare il nuovo volume all’istanza EC2.
Nota: Informazioni utili sulla rinomina dei dispositivi di disco vengono visualizzate nella nota. Nel nostro caso /dev/sdf viene rinominato in /def/xvdf nel sistema operativo guest.
Attualmente sono collegati due volumi alla nostra istanza EC2 (blog-temp):
vol-0617000000000763c
vol-0b4a0000000003d01
Scrittura dei dati sul secondo volume EBS
Successivamente, creeremo un file sul secondo volume EBS. Questo file verrà utilizzato per verificare se tutti i dati sono recuperati dopo il ripristino del volume dallo snapshot EBS. Per questo motivo, creeremo una partizione, creeremo un filesystem e montiamo il filesystem nel sistema operativo Linux guest in esecuzione sull’istanza EC2.
Anche se ci concentriamo sulle operazioni con gli snapshot EBS piuttosto che sulle operazioni nel sistema operativo Linux guest in esecuzione sull’istanza EC2, elenchiamo i comandi utilizzati per comprendere meglio le operazioni con i volumi.
Gestione dello storage
- Utilizzare lsblk per visualizzare i dettagli sui dispositivi a blocchi in Linux.
- Utilizzare df -h per controllare lo spazio di archiviazione sui dischi montati.
- Utilizzare mount per controllare i dischi montati.
Creazione e montaggio di una partizione
Creazione e formattazione di una partizione sul secondo volume EBS in parted:
sudo parted -l
parted /dev/xvdf
(parted) mklabel msdos
(parted) print
(parted) mkpart primary ext4 1MB 955MB
(parted) print
(parted) quit
Creazione di un sistema di file sulla partizione preparata:
mkfs.ext4 /dev/xvdf1
Creazione della directory da utilizzare come punto di mount:
mkdir disk2
Montaggio della partizione con il sistema di file nella directory creata:
mount /dev/xvdf1 /disk2/
Accesso alla directory della partizione montata:
cd /disk2
Scrittura delle modifiche sui 2 volumi EBS
- Creazione del file sulla partizione situata sul secondo volume EBS collegato all’istanza EC2 in esecuzione su Linux:
echo “Snapshot EBS per disco 2” > /disk2/d2-file01.txt
- Effettuare modifiche sul primo disco per creare un nuovo snapshot EBS del primo volume utilizzato dall’istanza EC2. Entrambi i volumi dovrebbero contenere modifiche rispetto allo stato in cui è stato preso lo snapshot precedente.
Creiamo il file snapshot02.txt sul primo volume per rilevare più comodamente le modifiche salvate nel nuovo snapshot del primo volume.
Una volta che i due volumi EBS con nuovi dati sono collegati all’istanza EC2, è possibile creare snapshot multi-volume.
Creare lo snapshot multi-volume
- Vai su Elastic Block Store > Snapshot nel riquadro di navigazione della pagina di gestione delle istanze EC2. Clicca su Crea Snapshot.
- Seleziona il tipo di risorsa: Istanza.
- Inserisci l’ID dell’istanza EC2 necessaria di cui desideri eseguire il backup dei volumi utilizzando gli snapshot EBS.
Tutti i volumi collegati all’istanza selezionata vengono selezionati automaticamente.
- Inserisci una descrizione per aiutarti a trovare lo snapshot EBS in AWS quando necessario. Nel nostro esempio, la descrizione è Snapshot EBS blog 02.
- Seleziona la casella di controllo Copia i tag dal volume se desideri utilizzare i tag assegnati ai volumi EBS.
- Una volta premuto Crea Snapshot, vengono creati snapshot per tutti i volumi selezionati.
Se il processo ha successo, vedrai il seguente messaggio:
Richiesta di creazione dello snapshot riuscita
Vengono visualizzati due identificatori di snapshot Amazon: snap-0f95000000000de71 e snap–0a91000000000769b nel nostro caso.
Puoi salvare questi valori di ID e fare clic su uno di essi per controllare lo stato di creazione dello snapshot. Subito dopo l’inizio della creazione dello snapshot, lo stato dell’operazione è in attesa e cambia in completato una volta che il processo è terminato.
A new snapshot for each volume has been created.
Utilizzare AWS CLI per creare gli snapshot
Puoi utilizzare AWS CLI come alternativa alla Console di Gestione AWS se preferisci l’interfaccia a riga di comando o se hai bisogno di automatizzare la creazione dello snapshot.
Il comando per creare uno snapshot di EBS in AWS CLI è:
aws ec2 create-snapshot --volume-id vol-0b4a51e1cea333d01 --description "Questo è uno snapshot di prova per il blog"
L’output dovrebbe apparire così:
{
"Description": "Questo è uno snapshot di prova per il blog",
"Tags": [],
"Encrypted": false,
"VolumeId": "vol-0b4a51e1cea333d01",
"State": "pending",
"VolumeSize": 8,
"StartTime": "2021-08-28T21:06:01.000Z",
"Progress": "",
"OwnerId": "012345678910",
"SnapshotId": "snap-0689749a39a7b822b"
}
Il comando per creare uno snapshot con tag è:
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}]'
Come ripristinare un’istanza EC2 utilizzando gli snapshot di EBS
Abbiamo creato degli snapshot dei volumi EBS collegati all’istanza Amazon EC2. Questi snapshot sono una forma di backup dei dati in AWS. Ora vediamo come creare un’istanza EC2 da uno snapshot ripristinando:
- particolari volumi EBS in AWS
- l’intera istanza EC2
Ripristino del secondo volume EBS
Ripristiniamo il secondo volume EBS (dimensione di1 GiB) dal snapshot. Questo volume viene utilizzato per memorizzare i file e il sistema operativo non è installato su questo volume.
- Nella barra di navigazione del console di gestione EC2, vai a Elastic Block Store > Snapshots.
Inseriamo “blog” nel campo di ricerca per visualizzare tutti i snapshot creati per i volumi EBS dell’istanza EC2 utilizzata per scrivere questo post sul blog. Questo è un esempio del motivo per cui vale la pena aggiungere descrizioni e tag.
- Seleziona lo snapshot del volume da1 GiB e crea un nuovo volume dal snapshot. Fai clic con il tasto destro sullo snapshot e, nel menu che si apre, premi Create Volume.
- Definisci i parametri del volume necessari sulla pagina Create Volume: seleziona il tipo di volume e definisci la dimensione del volume, la zona di disponibilità, le opzioni di crittografia, le chiavi dei tag e i valori.
La zona di disponibilità deve essere la stessa dell’istanza EC2 (eu-central-1c nel nostro caso).
La dimensione del volume è la stessa della dimensione del volume originale sottoposto a backup (1 GiB) nel nostro esempio.
La chiave del tag è blog e il valore è recovered volume1.
- Premi Create Volume per finire e creare il volume EBS utilizzando lo snapshot EBS.
Vedrai il seguente messaggio:
Create Volume Request Succeeded
Puoi salvare l’ID del volume. Il nuovo ID del volume è vol-09cd000000000b502 nel nostro caso.
Ripristino di un volume di sistema
Per ripristinare un’istanza EC2, è necessario ripristinare il volume EBS su cui è installato il sistema operativo. In questo caso, è possibile creare un’immagine dallo snapshot del volume EBS utilizzato dal sistema operativo guest e avviare l’istanza utilizzando questa immagine (l’istanza EC2 ripristinata).
Creazione dell’immagine
- Nella console di gestione EC2, vai a Elastic Block Store > Snapshots e seleziona lo snapshot necessario del volume EBS su cui è installato il sistema operativo guest.
Selezioniamo lo snapshot più recente del volume da8 GiB utilizzato dal sistema operativo guest (Ubuntu Server). Questo snapshot del volume EBS è stato creato quando abbiamo creato lo snapshot multi-volume per l’istanza EC2.
Fare clic con il pulsante destro del mouse sullo snapshot e, nel menu che si apre, fare clic su Create Image.
- Nella finestra che si apre, inserire le informazioni necessarie e selezionare le opzioni per creare un’immagine dallo snapshot EBS. Utilizziamo i seguenti parametri.
Nome: blog-recovered
Descrizione: Ripristinato da uno snapshot EBS (blog)
Le altre impostazioni vengono lasciate ai loro valori predefiniti.
Fare clic su Create.
- Viene aperta la finestra di dialogo Create Image request received. Fare clic sull’ID dell’immagine per visualizzare informazioni sull’immagine (ami-08ed800000000872a nel nostro caso). Attendere che la creazione dell’immagine sia completata.
Avvio dell’immagine
Una volta creata l’immagine, fare clic con il pulsante destro del mouse sull’immagine e fare clic su Launch.
Il nuovo assistente alla creazione di istanze EC2 si apre. È necessario selezionare le opzioni dell’istanza. È possibile selezionare le opzioni che sono uguali alle opzioni selezionate per la VM originale che è stata copiata. È anche possibile ripristinare l’istanza su una nuova istanza EC2 più potente.
Nota: Siamo reindirizzati al Passo 2 del wizard (anziché al Passo 1. Scegli AMI) poiché abbiamo già selezionato l’AMI blog-recovered dalla pagina con l’elenco delle AMI.
Passo 2: Scegliere un Tipo di Istanza. Selezioniamo t2.micro come tipo di istanza. Fare clic su Avanti in ogni passaggio del wizard per continuare.
Passo 3: Configurare l’Istanza. Configurare i dettagli in base alle proprie esigenze, inclusi le impostazioni di rete, i ruoli IAM, il comportamento di spegnimento, ecc.
Passo 4: Aggiungere Archiviazione è importante quando si recupera un’istanza EC2 utilizzando snapshot EBS. Fare clic su Aggiungi Nuovo Volume. Viene aggiunta una nuova riga con opzioni di volume in questa pagina. Inserire l’ID dello snapshot del volume necessario nel campo Snapshot.
Inseriamo snap-0a91000000000769b, che è l’ID del nostro snapshot del volume da 1 GiB. La dimensione del volume di 8 GiB è selezionata per impostazione predefinita nel nostro esempio. Possiamo impostare la dimensione del volume su 1 GiB come configurato per il volume EBS originale. È possibile selezionare anche il dispositivo di archiviazione, il tipo di volume, la crittografia e le opzioni di eliminazione alla terminazione.
Passaggio 5: Aggiungere Tag. Assicurarsi che i tag siano utili per scopi di ricerca. I tag vengono applicati a tutti i volumi e le istanze. In questo esempio, la chiave del tag è blog e il valore è VM 01 recuperato.
Passaggio 6: Configurare il Gruppo di Sicurezza. Modificare i parametri per controllare il traffico di rete per la tua istanza EC2.
Passaggio 7: Revisione del Lancio dell’Istanza. Controllare i dettagli del lancio dell’istanza e fare clic su Lancio per completare. È necessario selezionare una coppia di chiavi o crearne una nuova per accedere all’istanza EC2.
- La pagina Stato di Lancio è ora visualizzata. Fare clic su Visualizza istanze.
- Inserire un nome per l’istanza recuperata (blog-recuperato nel nostro caso). Lo stato dell’istanza E2 recuperata è in esecuzione. Entrambi i volumi EBS recuperati dagli snapshot EBS sono collegati all’istanza EC2 (vedere lo screenshot qui sotto).
Controllo dei file ripristinati
Verifichiamo se i file creati prima di fare l’ultimo snapshot sono stati ripristinati:
Elenca i dispositivi di blocco collegati:
lsblk
Elenca i file della directory corrente (home) dell’utente:
ls -al
I file snapshot01.txt e snapshot2.txt creati prima di fare il primo e il secondo snapshot del volume EBS su cui è installato il sistema operativo sono presenti.
Montare la partizione situata sul secondo disco (volume EBS):
sudo mount /dev/xvdb1 /disk2/
Il nome della partizione è stato cambiato in /dev/xvdb1. Tieni presente che potresti dover modificare /etc/fstab dopo il ripristino dell’istanza per il montaggio automatico.
ls -al /disk2/
d2-file01.txt è presente nel file system memorizzato sul secondo volume EBS dopo il ripristino.
L’istanza AWS EC2, con tutti i volumi EBS collegati, è stata ripristinata con successo dai snapshot EBS. Tutti i dati necessari sono stati preservati.
Conclusioni
Puoi eseguire il backup di un singolo volume o di tutti i volumi utilizzando snapshot multi-volume. Questa è una funzionalità nativa molto utile di AWS per la protezione dei dati e il ripristino in caso di disastro. Tuttavia, tieni presente che sono previsti costi aggiuntivi per l’archiviazione degli snapshot EBS nel cloud di Amazon poiché viene utilizzato ulteriore spazio di archiviazione cloud. Inoltre, ci sono altre limitazioni nell’utilizzo degli snapshot EBS per i backup, come il sistema di creazione snapshot che non è consapevole dei file che vengono scritti nel momento in cui viene eseguito lo snapshot. Di conseguenza, i backup realizzati con gli snapshot EBS sono coerenti con il crash e non con le applicazioni.
NAKIVO Backup & Replication è una soluzione di protezione dei dati che supporta la creazione di backup e repliche consapevoli delle applicazioni delle istanze Amazon EC2. Puoi anche utilizzare la soluzione per semplificare e automatizzare notevolmente il processo di backup e ripristino. Recupera rapidamente l’intera istanza EC2 da un backup senza la necessità di ripristinare i volumi EBS, creare un’istanza EC2 e collegare manualmente i volumi a un’istanza EC2 creata.
Source:
https://www.nakivo.com/blog/how-to-create-snapshots-of-ec2-instance/