Come acquisire un snapshot dell’istanza di EC2 per la protezione dei dati AWS EC2
Se utilizzi Amazon Web Services (AWS) per eseguire istanze di EC2 (VM) in Elastic Compute Cloud, hai a disposizione diversi modi per proteggere i tuoi carichi di lavoro dalla perdita di dati causata da guasti software, infezioni da malware, cancellazioni accidentali e altro ancora. Una delle opzioni disponibili è la funzione di backup integrata di AWSper le istanze di EC2 chiamata EBS snapshot. Questo post del blog spiega come creare uno snapshot di un’istanza di EC2 utilizzando gli snapshot del volume EBS con esempi dettagliati del processo di configurazione.
Cosa sono gli EBS snapshot?
Gli snapshot EBS sono copie incrementali di un volume Elastic Block Store (EBS) archiviate in Amazon S3. Ciò significa che quando si crea uno snapshot EBS per la prima volta, viene creato un backup completo e solo i dati modificati vengono copiati per gli snapshot EBS successivi. I volumi EBS sono dischi virtuali collegati alle istanze di EC2.
Sebbene gli snapshot EBS siano archiviati in Amazon S3, non è possibile accedere manualmente agli snapshot nell’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 riferirsi agli snapshot EBS.
Come funzionano gli snapshot EBS
Gli snapshot EBS sono backup a livello di blocco dei dati delle istanze di EC2 che rappresentano il volume EBS in un determinato momento in cui è stato emesso il comando di snapshot. Ciò significa che se l’istanza è in esecuzione, i blocchi di dati scritti sui volumi EBS dopo l’avvio dell’acquisizione dello snapshot non vengono salvati nello snapshot. Di conseguenza, gli snapshot EBS sono backup crash-consistent e non application-consistent.
Si noti che gli snapshot EBS non sono uguali agli 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, esistono alcune limitazioni agli snapshot EBS, tra cui la mancanza di opzioni di pianificazione e conservazione, l’impossibilità di creare copie on-premise e la complessità della creazione di uno snapshot EC2 coerente con l’applicazione per semplificare il ripristino.
Come creare uno snapshot nella console AWS per le istanze di EC2
La console di gestione AWS è l’interfaccia web GUI utilizzata per gestire tutte le risorse di elaborazione, storage e altre risorse AWS, inclusa la creazione di snapshot EBS.
Per accedere all’istanza EC2 per la quale si desidera creare uno snapshot:
- Accedere alla console di gestione AWS utilizzando un account che dispone delle autorizzazioni necessarie per creare istanze di EC2, volumi EBS e snapshot EBS.
- Fare clic su Servizi e nella sezione Compute , fare clic su EC2 per aprire la console di gestione delle istanze di EC2, dei volumi EBS e di altre funzioni di EC2.
Abbiamo preparato un’istanza di EC2 per illustrare i passaggi necessari per creare snapshot EBS. I parametri della nostra istanza di EC2, di cui eseguiremo il backup e il ripristino utilizzando gli 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 di EC2 è Ubuntu Server (Linux).
Scrittura di file sul volume EBS
Creiamo due file sul disco virtuale collegato all’istanza di EC2 prima di creare uno snapshot. In questo modo, potremo 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
Arrestare l’istanza di EC2 per assicurarsi che lo snapshot contenga dati coerenti. Il motivo è che i volumi EBS funzionano a livello di blocco. Quando viene acquisita una snapshot EBS, viene salvato lo stato del volume EBS in quel momento. I blocchi di storage vengono salvati così come sono. Il sistema non è a conoscenza delle operazioni eseguite con i file a livello di file system in quel momento. Se durante l’acquisizione di una snapshot vengono scritti dei file su un volume EBS, la snapshot conterrà dati incoerenti. L’effetto è simile a quello che si ottiene scollegando il cavo di alimentazione da un computer fisico mentre sono in corso operazioni di scrittura dei file.
Se si desidera acquisire uno snapshot di un volume EBS non di sistema, è possibile smontare il file system dal sistema operativo per assicurarsi che non vi siano operazioni di scrittura dei file sul volume. Per acquisire uno snapshot, è necessario disabilitare la modalità di ibernazione per l’istanza di EC2.
Per preparare l’istanza EC2 all’acquisizione di un snapshot:
- Aprire la pagina con l’elenco delle istanze di EC2 nella console di gestione EC2. Fare clic con il pulsante destro del mouse sul nome dell’istanza e, nel menu contestuale, fare clic su Stop instance.
- Individuare il volume utilizzato dall’istanza di EC2. Fare clic sulla scheda Storage e fare clic sull’ID del volume EBS appropriato (vol-0617000000000763c nel nostro caso).
Acquisizione di un snapshot
Siamo pronti per creare un snapshot dell’istanza di EC2:
- Selezionare il volume EBS (fare clic sulla casella di controllo a sinistra della riga) e fare clic su Azioni > Crea snapshot.
- Inserisci una descrizione, imposta le impostazioni di crittografia e aggiungi un tag. Io utilizzo i seguenti parametri:
- Descrizione: Blog snapshot EBS 01
- Crittografia: Non crittografato
Clicca Crea snapshot.
Nota:Utilizziamo il volume non crittografato e creiamo uno snapshot non crittografato. In questo caso, le impostazioni di crittografia per lo snapshot possono essere configurate manualmente. Quando si esegue uno snapshot di un volume crittografato, lo snapshot viene crittografato automaticamente.
- Dovrebbe essere visualizzato il seguente messaggio e l’ID dello snapshot:
Richiesta di creazione dello snapshot riuscita
snap-0778000000000ab40
Fare clic sull’ID del snapshot per aprire una pagina con le opzioni e lo stato del snapshot.
- Lo stato dello snapshot in sospeso indica che i dati dal volume EBS sono in fase di trasferimento su Amazon S3. Attendere il completamento della creazione dello snapshot (lo stato passerà a completato). Il tempo necessario dipende dalla dimensione dei dati salvati nello snapshot.
Come acquisire snapshot multi-volume
È comune trovare un’istanza di EC2 che utilizza più volumi EBS. In questo caso, è possibile creare uno snapshot multi-volume per tutti i volumi EBS collegati a tale istanza di Amazon EC2 per un backup di Amazon EC2.
In questa sezione tratteremo:
- Creazione di un secondo volume EBS
- Scrittura dei dati sul volume
- Creazione di un snapshot EBS multi-volume
Creazione di un secondo volume EBS per l’istanza EC2
Aggiungiamo innanzitutto un secondo volume EBS alla nostra istanza EC2, che stiamo utilizzando a scopo dimostrativo:
- Nel riquadro di navigazione della console di gestione EC2, vai a Elastic Block Store > Volumi. Fare clic su Crea volume.
- Per Availability Zone, la regione deve essere la stessa della regione dell’istanza (eu-central-1c nel nostro caso).
Inserisci il tipo/dimensione del volume, imposta le opzioni di crittografia e inserisci i tag. I tag aiutano a trovare il volume nell’elenco dei volumi. Impostiamo la dimensione del volume a 1 GiB e utilizziamo i seguenti tag:
-
Key: blog
-
Valore: volume temporaneo 2
Clicca Crea volume.
- Ricordare (o annotare) l’ID del volume (vol-0b4a0000000003d01 nel nostro caso). Fare clic sull’ID del volume per aprire le proprietà del volume.
- Collega il volume all’istanza di EC2. Fai clic con il pulsante destro del mouse sul volume o fai clic su Azioni e, nel menu che si apre, fai clic su Collega volume.
- Seleziona l’istanza a cui devi collegare il volume EBS. È necessario selezionare l’ID dell’istanza di EC2. Nel nostro caso, l’ID dell’istanza è i-0071290000000cb84.
È possibile selezionare il dispositivo nel sistema operativo guest utilizzato per accedere al volume collegato. Nel nostro caso /dev/sdf viene utilizzato.
Fare clic su Allega per allegare il nuovo volume all’istanza di EC2.
Nota: Nella nota sono riportate informazioni utili sulla ridenominazione dei dispositivi disco. Nel nostro caso /dev/sdf viene rinominato /def/xvdf nel sistema operativo guest.

Ora due volumi sono allegati alla nostra istanza di EC2 (blog-temp):
vol-0617000000000763c
vol-0b4a0000000003d01
Scrittura dei dati sul secondo volume EBS
Avanti, creeremo un file sul secondo volume EBS. Questo file verrà utilizzato per verificare se tutti i dati sono stati ripristinati dopo il ripristino del volume dallo snapshot EBS. Per questo motivo, creeremo una partizione, creeremo un file system e monteremo il file system sul sistema operativo Linux guest in esecuzione sull’istanza di EC2.
Sebbene ci concentriamo sulle operazioni con gli snapshot EBS piuttosto che sulle operazioni nel sistema operativo Linux guest in esecuzione sull’istanza di 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 storage 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 file system sulla partizione preparata:
mkfs.ext4 /dev/xvdf1
Creazione della directory da utilizzare come punto di montaggio:
mkdir disk2
Montaggio della partizione con il file system nella directory creata:
mount /dev/xvdf1 /disk2/
Passaggio alla directory della partizione montata:
cd /disk2
Scrittura delle modifiche sui 2 volumi EBS
- Creazione del file sulla partizione con l’ubicazione sul secondo volume EBS collegato all’istanza di EC2 che esegue Linux:
echo “EBS snapshot for disk 2” > /disk2/d2-file01.txt
- Apportare modifiche al primo disco per creare una nuova istantanea EBS del primo volume utilizzato dall’istanza di EC2. Entrambi i volumi devono contenere le modifiche rispetto allo stato in cui si trovava al momento della creazione dell’istantanea precedente.
Creiamo il file snapshot02.txt sul primo volume per rilevare più comodamente le modifiche salvate nella nuova snapshot del primo volume.
Una volta che i due volumi EBS con i nuovi dati sono collegati all’istanza di EC2, possiamo creare snapshot multi-volume.
Creazione dello snapshot multi-volume
- Vai a Elastic Block Store > Snapshots nel riquadro di navigazione della pagina di gestione delle istanze di EC2. Fare clic su Create Snapshot.
- Seleziona il tipo di risorsa: Istanza.
- Immettere l’ID dell’istanza di EC2 necessaria di cui si desidera eseguire il backup dei volumi utilizzando gli snapshot EBS.
Tutti i volumi collegati all’istanza selezionata vengono selezionati automaticamente.
- Inserisci una descrizione che ti aiuti a trovare lo snapshot EBS in AWS quando necessario. Nel nostro esempio, la descrizione è EBS snapshot blog 02.
- Seleziona la casella di controllo Copia i tag dal volume casella di controllo se desideri utilizzare i tag assegnati ai volumi EBS.
- Una volta premuto Crea snapshot, vengono creati gli snapshot per tutti i volumi selezionati.
Se il processo ha esito positivo, verrà visualizzato il seguente messaggio:
Richiesta di creazione snapshot riuscita
Vengono visualizzati due identificatori di snapshot Amazon: snap-0f95000000000de71 e snap–0a91000000000769b nel nostro caso.
È possibile salvare questi valori ID e fare clic su uno di essi per verificare lo stato di creazione del snapshot. Subito dopo aver avviato la creazione del snapshot, lo stato dell’operazione è in sospeso e cambia in completato una volta terminato il processo.
È stata creata una nuova snapshot per ogni volume.
Utilizzo di AWS CLI per creare snapshot
È possibile utilizzare AWS CLI in alternativa alla console di gestione AWS se si preferisce l’interfaccia della riga di comando o se è necessario automatizzare la creazione di snapshot.
Il comando per creare un snapshot EBS in AWS CLI è:
aws ec2 create-snapshot --volume-id vol-0b4a51e1cea333d01 --description "This is a test snapshot for the blog"
Il risultato dovrebbe essere simile al seguente:
{
"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":

















