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 le tue carghe di lavoro dalla perdita di dati causata, tra l’altro, da guasti del software, infezioni da malware o cancellazioni accidentali. Una delle opzioni a vostra disposizione è la funzione di backup integrata di AWS per le istanze di EC2, denominata “snapshot EBS”. Questo articolo del blog spiega come creare uno snapshot di un’istanza di EC2 utilizzando gli snapshot dei volumi EBS, con esempi dettagliati del processo di configurazione.

NAKIVO per il backup di AWS EC2

NAKIVO per il backup di AWS EC2

Backup delle istanze di Amazon EC2 su EC2, AWS S3 e onsite. Opzioni anti-ransomware. Ripristino rapido delle istanze e degli oggetti delle applicazioni.

Cosa sono gli snapshot EBS?

Gli snapshot EBS sono copie incrementali di un volume Elastic Block Store (EBS) archiviati in Amazon S3. Ciò significa che quando si crea uno snapshot EBS per la prima volta, viene eseguito un backup completo, mentre per gli snapshot EBS successivi vengono copiati solo i dati modificati. 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 presenti nell’archivio S3. È possibile gestire questi snapshot nella console di gestione EC2.

Nota: I termini “snapshot AWS EC2” e “snapshot Amazon” vengono 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 Amazon EC2 che rappresentano il volume EBS in un momento specifico in cui è stato emesso il comando di creazione dello snapshot. Ciò significa che, se l’istanza è in esecuzione, i blocchi di dati scritti sui volumi EBS dopo l’avvio della creazione dello snapshot non vengono salvati nello snapshot. Di conseguenza, gli snapshot EBS sono backup coerenti con i crash e non coerenti con le applicazioni.

Si noti che gli snapshot EBS non sono equivalenti agli snapshot nel contesto di VMware vSphere e Microsoft Hyper-V. Hyper-V e Gli snapshot di VMware non sono backup e non possono sostituire i backup adeguati.

Tuttavia, vi sono Limiti degli snapshot EBS, tra cui la mancanza di opzioni di pianificazione e conservazione, l’impossibilità di creare copie on-premise, nonché la complessità nella creazione di uno snapshot EC2 coerente a livello di 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 di altro tipo di AWS, inclusa la creazione di snapshot EBS.

Per accedere all’istanza di EC2 per la quale si desidera creare uno snapshot:

  1. Accedere alla console di gestione AWS utilizzando un account che disponga delle autorizzazioni obbligatorie per la creazione di istanze di EC2, volumi EBS e snapshot EBS.
  2. Fare clic su Services 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.

Using AWS Management Console to create snapshot of EC2 instance (EBS snapshot)

Abbiamo preparato un’istanza di EC2 per illustrare i passaggi necessari alla creazione di 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 di 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 (OS) guest 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 un 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

Creating files on an instance before taking snapshot of EC2 instance

Preparazione dell’istanza

Arrestiamo l’istanza di EC2 per assicurarci che lo snapshot contenga dati coerenti. Il motivo è che i volumi EBS funzionano a livello di blocco. Quando viene acquisito uno snapshot EBS, viene salvato lo stato del volume EBS in quel preciso momento. I blocchi di storage vengono salvati così come sono. Il sistema non è a conoscenza delle operazioni effettuate sui file a livello di file system in quel momento. Se durante l’acquisizione di uno snapshot vengono scritti dei file su un volume EBS, lo snapshot conterrà dati incoerenti. L’effetto è simile a quello che si verifica quando si scollega il cavo di alimentazione da un computer fisico mentre sono in corso operazioni di scrittura sui file.

Se si desidera acquisire uno snapshot di un volume EBS non di sistema, è possibile smontare il file system dal sistema operativo per garantire che non vi siano operazioni di scrittura sui file in corso sul volume. Per acquisire uno snapshot dell’istanza EC2, è necessario disabilitare la modalità di ibernazione.

Per preparare l’istanza EC2 all’acquisizione di uno snapshot:

  1. Aprire la pagina con l’elenco delle istanze di EC2 nella console di gestione EC2. Fare clic con il tasto destro del mouse sul nome dell’istanza e, nel menu contestuale, selezionare Stop instance.

Stopping the EC2 instance before creating a new snapshot in AWS

  1. Individuare il volume utilizzato dall’istanza EC2. Fare clic sulla scheda Storage e selezionare l’ID del volume EBS appropriato ( vol-0617000000000763c nel nostro caso).

Selecting the EBS volume attached to the EC2 instance to create snapshot of EC2 instance

Creazione di un snapshot

Siamo pronti a creare un snapshot dell’istanza di EC2:

  1. Selezionare il volume EBS (spuntare la casella di controllo a sinistra della riga) e fare clic su Actions > Create Snapshot.

Selecting the Create Snapshot option in the Actions menu

  1. Inserire una descrizione, configurare le impostazioni di crittografia e aggiungere un tag. Io utilizzo i seguenti parametri:
  • Descrizione: Snapshot EBS blog 01
  • Crittografia: Non crittografato

Fare clic su Create 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 crea uno snapshot di un volume crittografato, lo snapshot viene crittografato automaticamente.

Setting description, encryption, and tags in the Create Snapshot window

  1. Dovrebbe apparire il seguente messaggio e l’ID dello snapshot:

Richiesta di creazione dello snapshot riuscita
snap-0778000000000ab40

Fare clic sull’ID dello snapshot per aprire una pagina con le opzioni e lo stato dello snapshot.

EC2 Create snapshot request succeeded

  1. Lo stato dello snapshot in sospeso indica che i dati dal volume EBS sono attualmente in fase di trasferimento su Amazon S3. Attendere il completamento della creazione dello snapshot (lo stato passerà a completato ). Il tempo richiesto dipende dalla dimensione dei dati salvati nello snapshot.

The create ebs snapshot process is in progress

Come eseguire snapshot multivolume

È comune che un’istanza di Amazon EC2 utilizzi più volumi EBS. In questo caso, è possibile creare uno snapshot multivolume per tutti i volumi EBS collegati a tale istanza di Amazon EC2 ai fini di un backup di Amazon EC2.

In questa sezione tratteremo:

Creazione di un secondo volume EBS per l’istanza di Amazon EC2

Aggiungiamo innanzitutto un secondo volume EBS alla nostra istanza di Amazon EC2, che utilizzeremo a scopo dimostrativo:

  1. Nel pannello di navigazione della console di gestione di Amazon EC2, vai su Elastic Block Store > Volumes. Fai clic su Create Volume.

Adding a volume for steps on how to take snapshots in aws of multiple EBS volumes

  1. Per la zona di disponibilità , la regione deve essere la stessa di quella dell’istanza ( eu-central-1c nel nostro caso).

Inserisci il tipo e la dimensione del volume, imposta le opzioni di crittografia e inserisci i tag. I tag aiutano a individuare il volume nell’elenco dei volumi. Impostiamo la dimensione del volume a 1 GiB e utilizziamo i seguenti tag:

  • Chiave: blog

  • Valore: temp volume 2

Fare clic su Create Volume.

Options to create an EBS volume

  1. Ricordare (o annotare) l’ID del volume (vol-0b4a0000000003d01 nel nostro caso). Fare clic sull’ID del volume per aprire le proprietà del volume.

The ebs volume has been created

  1. Collegare il volume all’istanza di EC2. Fare clic con il tasto destro del mouse sul volume oppure fare clic su Actions e, nel menu che si apre, fare clic su Attach Volume.

Attaching the EBS volume to the EC2 instance

  1. Selezionare l’istanza a cui si desidera 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 Attach per collegare 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 in /def/xvdf nel sistema operativo guest.
Options to attach the EBS volume to the EC2 instance

Ora sono allegati due volumi alla nostra istanza di EC2 ( blog-temp ):

vol-0617000000000763c

vol-0b4a0000000003d01

Two EBS volumes are attached to instance to create snapshot of EC2 instance

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.

Anche se ci stiamo concentrando 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.

Managing storage

  • Utilizzare lsblk per visualizzare i dettagli sui dispositivi a blocchi in Linux.
  • Utilizzare df -h per verificare lo spazio di storage sui dischi montati.
  • Utilizzare mount per verificare 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/

Accesso alla directory della partizione montata:

cd /disk2

Scrittura delle modifiche sui 2 volumi EBS

  1. Creazione del file sulla partizione situata sul secondo volume EBS collegato all’istanza di EC2 con sistema operativo Linux:

echo "EBS snapshot for disk 2" > /disk2/d2-file01.txt

Creating a file to be restored on the EBS volume by using a snapshot in AWS

  1. Apportare modifiche sul primo disco per creare un nuovo snapshot EBS del primo volume utilizzato dall’istanza di EC2. Entrambi i volumi dovrebbero contenere le modifiche rispetto allo stato in cui si trovavano al momento dell’acquisizione dello snapshot precedente.

Creiamo il snapshot02.txt file sul primo volume per individuare più facilmente le modifiche salvate nel nuovo snapshot del primo volume.

Adding a file to the home directory stored on the first EBS volume

Una volta che i due volumi EBS con i nuovi dati sono collegati all’istanza di EC2, possiamo creare snapshot multivolume.

Creazione dello snapshot multivolume

  1. Accedere a Elastic Block Store > Snapshots nel pannello di navigazione della pagina di gestione delle istanze di EC2. Fare clic su Create Snapshot.

Clicking the Create Snapshot button in the Amazon web interface to take EC2 snapshots in AWS

  1. Selezionare il tipo di risorsa: Istanza .
  2. Immettere l’ID dell’istanza EC2 di cui si desidera eseguire il backup dei volumi tramite snapshot EBS.

Tutti i volumi collegati all’istanza selezionata vengono selezionati automaticamente.

  1. Immettere una descrizione che consenta di individuare lo snapshot EBS in AWS quando necessario. Nel nostro esempio, la descrizione è Blog sugli snapshot EBS 02 .
  2. Selezionare la casella di controllo Copia tag dal volume se si desidera utilizzare i tag assegnati ai volumi EBS.
  3. Una volta premuto Create Snapshot, vengono create le snapshot per tutti i volumi selezionati.

How to take snapshot in AWS for multiple EBS volumes

Se il processo va a buon fine, verrà visualizzato il seguente messaggio:

Richiesta di creazione snapshot riuscita

Vengono visualizzati due identificatori di snapshot Amazon: snap-0f95000000000de71 e snapshot 0a91000000000769b nel nostro caso.

È possibile salvare questi valori ID e fare clic su uno di essi per verificare lo stato di creazione dello snapshot. Subito dopo l’avvio della creazione dello snapshot, lo stato dell’operazione è in sospeso e passa a completato una volta terminato il processo.

The EC2 create snapshot operation is started for multiple EBS volumes

È stato creato un nuovo snapshot per ciascun volume.

Utilizzo di AWS CLI per creare snapshot

È possibile utilizzare AWS CLI in alternativa alla console di gestione AWS se si preferisce l’interfaccia a riga di comando o se è necessario automatizzare la creazione degli snapshot.

Il comando per creare uno snapshot EBS in AWS CLI è:

aws ec2 create-snapshot --volume-id vol-0b4a51e1cea333d01 --description "This is a test snapshot for the blog"

L’output dovrebbe apparire così:

{

"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"

}

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 di Amazon EC2 utilizzando gli snapshot EBS

Abbiamo creato degli snapshot dei volumi EBS collegati all’istanza di Amazon EC2. Questi snapshot rappresentano una forma di backup dei dati in AWS. Ora vediamo come creare un’istanza di EC2 da uno snapshot tramite ripristino:

  • singoli volumi EBS in AWS
  • l’intera istanza di EC2

Ripristino del secondo volume EBS

Ripristiniamo il secondo volume EBS (di dimensioni pari a 1 GiB) dallo snapshot. Questo volume viene utilizzato per archiviare file e su di esso non è installato il sistema operativo.

  1. Nel riquadro di navigazione della console di gestione EC2, vai su Elastic Block Store > Snapshots.

Inseriamo “ blog ” nel campo di ricerca per visualizzare tutti gli snapshot creati per i volumi EBS dell’istanza di EC2 utilizzata per scrivere questo post sul blog. Questo è un esempio del motivo per cui vale la pena aggiungere descrizioni e tag.

  1. Seleziona lo snapshot del volume da 1 GiB e crea un nuovo volume dallo snapshot. Fare clic con il tasto destro dello mouse sullo snapshot e, nel menu che si apre, selezionare Create Volume.

how to create EC2 instance from snapshot in AWS

  1. Definire i parametri necessari del volume nella pagina Crea volume : selezionare il tipo di volume e definire 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 di quella dell’istanza di EC2 ( eu-central-1c nel nostro caso).

La dimensione del volume è la stessa di quella del volume originale che è stato ripristinato (1 GiB) nel nostro esempio.

La chiave del tag è blog e il valore è recovered volume 1 .

  1. Fare clic su Create Volume per terminare e creare il volume EBS utilizzando lo snapshot EBS.

recovering the EBS volume to create EC2 instance from snapshot

Verrà visualizzato il seguente messaggio:

Richiesta di creazione del volume riuscita

È possibile salvare l’ID del volume. Il nuovo ID del volume è vol-09cd000000000b502 nel nostro caso.

successful recovery of the volume from the ebs snapshot

Ripristino di un volume di sistema

Per ripristinare un’istanza di 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 di EC2 ripristinata).

Creazione dell’immagine

  1. Nella console di gestione EC2, andare su Elastic Block Store > Snapshots e selezionare lo snapshot necessario del volume EBS su cui è installato il sistema operativo guest.

Selezioniamo lo snapshot più recente del volume da 8 GiB utilizzato dal sistema operativo guest (Ubuntu Server). Questo snapshot del volume EBS è stato creato quando abbiamo creato lo snapshot multivolume per l’istanza di EC2.

Fare clic con il tasto destro dello mouse sullo snapshot e, nel menu che si apre, selezionare Create Image.

How to create EC2 instance from snapshot – creating an image

  1. Nella finestra che si apre, inserire le informazioni richieste 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 valori predefiniti.

Fare clic su Create. How to create EC2 instance from snapshot by using AMI

  1. Si apre la finestra di dialogo relativa alla richiesta “Crea immagine” ( ) ricevuta da . Fare clic sull’ID dell’immagine per visualizzarne le informazioni ( ami-08ed800000000872a nel nostro caso). Attendere il completamento della creazione dell’immagine.

creating the image from the ec2 snapshot

Avvio dell’immagine

Una volta creata l’immagine, fare clic con il tasto destro del mouse sull’immagine e selezionare Launch.

Launching the AMI to create EC2 instance from snapshot

Si apre la procedura guidata per la creazione di una nuova istanza di EC2. È necessario selezionare le opzioni dell’istanza. È possibile selezionare le stesse opzioni scelte per la VM originale di cui è stato eseguito il backup. È anche possibile ripristinare l’istanza su una nuova istanza di EC2 più potente.

Nota: Vieniamo reindirizzati alla pagina Step 2 della procedura guidata (anziché a Step 1. Choose AMI) poiché abbiamo già selezionato l’AMI blog-recovered dalla pagina con l’elenco delle AMI.

Step 2: Choose an Instance Type.Selezioniamo t2.micro come tipo di istanza. Fare clic su Next in ogni fase della procedura guidata per continuare.

restoring the EC2 instance from ec2 snapshots

Step 3: Configure Instance. Configurare i dettagli in base ai propri requisiti, incluse le impostazioni di rete, i ruoli IAM, il comportamento allo spegnimento, ecc.

Step 4: Add Storage è importante quando si ripristina un’istanza di EC2 utilizzando snapshot EBS. Fare clic su Add New Volume. In questa pagina viene aggiunta una nuova riga con le opzioni relative al volume. Inserire l’ID dello snapshot del volume richiesto nel campo Snapshot .

Inseriamo snap-0a91000000000769b, che è l’ID del nostro snapshot del volume da 1 GiB. Nel nostro esempio, la dimensione predefinita del volume è 8 GiB. Possiamo impostare la dimensione del volume su 1 GiB, come configurato per il volume EBS originale. È inoltre possibile selezionare il dispositivo di storage, il tipo di volume, la crittografia e le opzioni di eliminazione al termine del servizio.

Attaching the EBS volume recovered from the AWS snapshot to the EC2 instance

Step 5: Add Tags. Assicurarsi che i tag siano utili ai fini della ricerca. I tag vengono applicati a tutti i volumi e a tutte le istanze. In questo esempio, la chiave del tag è blog e il valore è recuperata VM 01 .

adding tags to a recovered EC2 instance

Step 6: Configure Security Group. Modifica i parametri per controllare il traffico di rete dell’istanza di EC2.

Step 7: Review Instance Launch. Rivedere i dettagli di avvio dell’istanza e fare clic su Launch per terminare. È necessario selezionare una coppia di chiavi o crearne una nuova per accedere all’istanza di EC2.

  1. Viene ora visualizzata la pagina Stato di avvio . Fare clic su View instances.

launching ec2 instance from an EBS volume snapshot

  1. Immettere un nome per l’istanza ripristinata ( blog-recovered nel nostro caso). Lo stato dell’istanza EC2 ripristinata è in esecuzione . Entrambi i volumi EBS ripristinati dagli snapshot EBS sono collegati all’istanza di EC2 (vedere la schermata qui sotto).

the EC2 instance has been restored from ebs snapshots

Verifica dei file ripristinati

Verifichiamo se i file creati prima dell’acquisizione dell’ultimo snapshot sono stati ripristinati:

Elenco dei dispositivi a blocchi allegati:

lsblk

Elenco dei file della directory corrente (home) dell’utente:

ls -al

I file snapshot01.txt e snapshot2.txt creati prima dell’acquisizione del primo e del 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 modificato in /dev/xvdb1. Tenere presente che potrebbe essere necessario 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.

snapshots of ec2 instance were used to restore EBS volumes with files stored on them

L’istanza AWS EC2, con tutti i volumi EBS collegati, è stata ripristinata con successo dagli snapshot EBS. Tutti i dati necessari sono stati conservati.

Conclusione

È possibile eseguire il backup di un singolo volume o di tutti i volumi utilizzando snapshot multivolume. Si tratta di una funzionalità nativa di AWS molto utile per la protezione dei dati e il ripristino di emergenza. Si noti, tuttavia, che l’archiviazione degli snapshot EBS nel cloud Amazon comporta costi aggiuntivi, poiché viene utilizzato spazio di storage sul cloud supplementare. Inoltre, esistono altre limitazioni nell’uso degli snapshot EBS per i backup, come il fatto che il sistema di creazione degli snapshot non rilevi i file in fase di scrittura nel momento in cui viene eseguito lo snapshot. Di conseguenza, i backup effettuati con gli snapshot EBS sono crash-consistenti e non application-consistenti.

NAKIVO Backup & Replication è una soluzione di protezione dei dati che supporta la creazione di backup coerenti con le applicazioni e di repliche delle istanze di Amazon EC2. È inoltre possibile utilizzare la soluzione per semplificare e automatizzare in modo significativo il processo di backup e ripristino. È possibile ripristinare rapidamente l’intera istanza di EC2 da un backup senza la necessità di ripristinare i volumi EBS, creare un’istanza di EC2 e collegare manualmente i volumi a un’istanza di EC2 creata.

Prova NAKIVO Backup & Replication

Prova NAKIVO Backup & Replication

Richiedi una prova gratuita per scoprire tutte le funzionalità di protezione dei dati offerte dalla soluzione. 15 giorni gratuiti. Nessuna limitazione in termini di funzionalità o capacità. Non è obbligatoria alcuna carta di credito.

Le persone leggono anche