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.

NAKIVO for AWS EC2 Backup

NAKIVO for AWS EC2 Backup

Backup of Amazon EC2 instances to EC2, AWS S3 and onsite. Anti-ransomware options. Fast recovery of instances and application objects.

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:

  1. Accedere alla console di gestione AWS utilizzando un account che dispone delle autorizzazioni necessarie per creare istanze di EC2, volumi EBS e snapshot EBS.
  2. 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.

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

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

Creating files on an instance before taking snapshot of EC2 instance

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:

  1. 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.

Stopping the EC2 instance before creating a new snapshot in AWS

  1. 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).

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

Acquisizione di un snapshot

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

  1. Selezionare il volume EBS (fare clic sulla casella di controllo a sinistra della riga) e fare clic su Azioni > Crea snapshot.

Selecting the Create Snapshot option in the Actions menu

  1. 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.

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

  1. 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.

EC2 Create snapshot request succeeded

  1. 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.

The create ebs snapshot process is in progress

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 per l’istanza EC2

Aggiungiamo innanzitutto un secondo volume EBS alla nostra istanza EC2, che stiamo utilizzando a scopo dimostrativo:

  1. Nel riquadro di navigazione della console di gestione EC2, vai a Elastic Block Store > Volumi. Fare clic su Crea volume.

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

  1. 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.

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

Attaching the EBS volume to the EC2 instance

  1. 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.
Options to attach the EBS volume to the EC2 instance

Ora due volumi sono allegati 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.

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

  1. 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

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

  1. 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.

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 multi-volume.

Creazione dello snapshot multi-volume

  1. Vai a Elastic Block Store > Snapshots nel riquadro 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. Seleziona il tipo di risorsa: Istanza.
  2. 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.

  1. Inserisci una descrizione che ti aiuti a trovare lo snapshot EBS in AWS quando necessario. Nel nostro esempio, la descrizione è EBS snapshot blog 02.
  2. Seleziona la casella di controllo Copia i tag dal volume casella di controllo se desideri utilizzare i tag assegnati ai volumi EBS.
  3. Una volta premuto Crea snapshot, vengono creati gli snapshot per tutti i volumi selezionati.

How to take snapshot in AWS for multiple EBS volumes

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 snap0a91000000000769b 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.

The EC2 create snapshot operation is started for multiple EBS volumes

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

Le persone leggono anche