Nozioni fondamentali sulla protezione dei dati: come eseguire il backup di un bucket Amazon S3

Amazon S3 è un servizio di storage sul cloud affidabile fornito da Amazon Web Services (AWS). I file vengono archiviati come oggetti nei bucket di Amazon S3. Questo servizio è ampiamente utilizzato per conservare i backup dei dati grazie all’elevata affidabilità di Amazon S3. A differenza di Amazon Elastic Block Storage (EBS), in cui i dati ridondanti vengono archiviati in un’unica zona di disponibilità, in Amazon S3 i dati ridondanti sono distribuiti su più zone di disponibilità.

Se un data center in una zona diventa indisponibile, è possibile accedere ai dati in un’altra zona. In alcuni casi, potrebbe essere necessario eseguire il backup dei dati archiviati nei bucket di Amazon S3 per evitare la perdita di dati causata da errori umani o malfunzionamenti del software. I dati possono essere cancellati o danneggiati se un utente che ha accesso a un bucket S3 cancella i dati o li danneggia apportando modifiche indesiderate. Anche un malfunzionamento del software può causare risultati simili.

Backup diretto su AWS S3 | NAKIVO

Backup diretto su AWS S3 | NAKIVO

Evita i punti di guasto singoli grazie alla semplice integrazione con Amazon S3 e alle opzioni di immutabilità anti-ransomware. Funzionalità di suddivisione in livelli dei backup e di ripristino istantaneo.

Versioni di Amazon S3

Il controllo delle versioni degli oggetti è una funzione efficace di Amazon S3 che protegge i dati presenti in un bucket da danneggiamento, modifiche indesiderate e cancellazione. Quando vengono apportate modifiche a un file (archiviato come oggetto in S3), viene creata una nuova versione dell’oggetto. In un bucket vengono archiviate più versioni dello stesso oggetto. È possibile accedere e ripristinare le versioni precedenti dell’oggetto. Se l’oggetto viene eliminato, viene applicato un “indicatore di eliminazione”, ma è possibile annullare questa azione e recuperare una versione precedente dell’oggetto precedente all’eliminazione. Il controllo delle versioni di Amazon S3 può essere utilizzato senza software di backup S3 aggiuntivo.

È possibile utilizzare il criterio del ciclo di vita per definire per quanto tempo le versioni debbano essere conservate in un bucket S3, ottenendo così una forma di backup in Amazon S3. I costi aggiuntivi per l’archiviazione di versioni aggiuntive non dovrebbero essere elevati se si configura correttamente il criterio del ciclo di vita e le nuove versioni sostituiscono quelle più vecchie. Le vecchie versioni possono essere eliminate o spostate in uno spazio di storage più conveniente (ad esempio, l’archiviazione a freddo) per ottimizzare i costi.

Come abilitare il controllo delle versioni di AWS S3

Accedere alla Console di gestione AWS utilizzando l’account con autorizzazioni sufficienti. Fare clic su Services e quindi selezionare S3 nella categoria Storage .

Backup to Amazon S3 – opening the S3 storage page in AWS Management Console

Nel riquadro di navigazione, fare clic su Buckets e selezionare il bucket S3 per il quale si desidera abilitare il controllo delle versioni. In questo esempio, seleziono il bucket denominato blog-bucket01 . Fare clic sul nome del bucket per aprirne i dettagli.

Backup to Amazon S3 – selecting a bucket

Aprire la scheda Properties relativa al bucket selezionato.

Nella sezione Bucket Versioning , fare clic su Edit.

How to enable AWS S3 versioning

Il controllo delle versioni del bucket è disabilitato per impostazione predefinita.

Fare clic su Enable per attivare il controllo delle versioni del bucket.

Fare clic su Save Changes.

Viene visualizzato un suggerimento che indica che potrebbe essere necessario aggiornare le regole del ciclo di vita. Questo è il passo successivo.

Editing Amazon S3 versioning settings

Se sono state applicate modifiche alla configurazione, nella parte superiore della pagina viene visualizzato il messaggio: Modifica del controllo delle versioni del bucket completata con successo .

Regole del ciclo di vita

Per configurare le regole del ciclo di vita per il controllo delle versioni di Amazon S3, accedere alla scheda Management nella pagina del bucket selezionato. Nella sezione Regole del ciclo di vita , fare clic su Create lifecycle rule.

How to create a lifecycle rule for a bucket when AWS S3 versioning is enabled

Si apre la pagina Crea regola del ciclo di vita .

Lifecycle Rule configuration. Immettere il nome della regola del ciclo di vita, ad esempio, Ciclo di vita del blog 01 .

Scegliere l’ambito della regola. È possibile applicare filtri per applicare le regole del ciclo di vita a oggetti specifici oppure applicare la regola a tutti gli oggetti nel bucket. Definire i tag degli oggetti per indicare gli oggetti a cui devono essere applicate le azioni del ciclo di vita. Inserire una chiave e un valore nei campi appropriati e fare clic sul pulsante Add tag per aggiungere il tag oppure sul pulsante Remove per rimuoverlo.

Configuring a lifecycle rule to meet the AWS backup strategy

Lifecycle rule actions. Scegli le azioni che desideri che questa regola esegua:

  • Transizione versioni attuali degli oggetti tra classi di archiviazione
  • Transizione versioni precedenti degli oggetti tra classi di archiviazione
  • Scadenza versioni attuali degli oggetti
  • Eliminazione definitiva versioni precedenti degli oggetti
  • Elimina i marcatori di eliminazione scaduti o i caricamenti multiparte incompleti

Using Amazon S3 for backup – configuring lifecycle rule actions

Transition noncurrent versions of objects between storage classes.

Seleziona le transizioni tra classi di archiviazione e il numero di giorni dopo i quali gli oggetti diventano non attuali.

Nel mio esempio, gli oggetti vengono spostati dall’attuale classe di storage S3 a Standard-IA dopo 35 giorni.

Permanently delete previous versions of objects.

Inserisci il numero di giorni dopo i quali le versioni precedenti devono essere eliminate. Il valore deve essere superiore al numero di giorni dopo i quali gli oggetti diventano non correnti. Nel mio esempio, gli oggetti vengono eliminati definitivamente dopo 40 giorni.

Fai clic su Create Rule per creare una regola del ciclo di vita.

AWS S3 backup – configuring options for a lifecycle rule

Replica del bucket

In alternativa al backup automatico di Amazon S3, è possibile replicare il bucket tra diverse regioni. È necessario creare un secondo bucket, che fungerà da bucket di destinazione in un’altra regione, e creare una regola di replica. Dopo aver creato la regola di replica, tutte le modifiche apportate nel bucket di origine vengono automaticamente riportate nel bucket di destinazione.

Individuare la sezione Replication rules nella scheda GESTIONE del bucket di origine e fare clic su Create replication rule.

S3 bucket replication is an alternative to Amazon S3 backup

Si apre la pagina Crea regola di replica .

Inserisci un nome per la regola di replica, ad esempio “Replica del bucket S3 del blog” .

Definisci lo stato della regola al momento della creazione (enabled o disabled).

Configuring a replication rule for an S3 bucket

Bucket di origine. Il bucket di origine è già stato selezionato ( blog-bucket01 ).

Scegli un ambito di applicazione della regola. Puoi utilizzare la regola di replica per tutti gli oggetti nel bucket oppure configurare dei filtri e applicare la regola a oggetti specifici.

Destinazione. Inserire il nome del bucket di destinazione oppure fare clic su Browse S3 e selezionare un bucket dall’elenco. È possibile selezionare un bucket in questo account o in un altro account. Se il controllo delle versioni di AWS S3 è abilitato per il bucket di origine, il controllo delle versioni degli oggetti deve essere abilitato anche per il bucket di destinazione. Viene visualizzata la regione di destinazione corrispondente al bucket di destinazione selezionato. Amazon S3 bucket replication – selecting a bucket

Configurare il ruolo di gestione delle identità e degli accessi (IAM), quindi selezionare una classe di archiviazione e ulteriori opzioni di replica. Fare clic su Save per salvare la configurazione e creare una regola di replica per il bucket.

Configuring options for Amazon S3 bucket replication

Backup di AWS S3 nella CLI

AWS CLI è la potente interfaccia a riga di comando che consente di interagire con diversi servizi Amazon, tra cui Amazon S3. Esiste un utile comando `sync` che consente di eseguire il backup dei bucket Amazon S3 su una macchina Linux copiando i file dal bucket a una directory locale in Linux in esecuzione su un’istanza di EC2.

Una funzione del comando `sync` nell’AWS CLI è che i file presenti in un file system locale (destinazione del backup di Amazon S3) non vengono eliminati se tali file non sono presenti nel bucket S3 di origine e viceversa. Questo è importante per il backup di AWS S3 perché, se alcuni file venissero accidentalmente eliminati nel bucket S3, i file esistenti non verrebbero eliminati nella directory locale di una macchina Linux dopo la sincronizzazione.

Vantaggi:

  • Supporto per bucket S3 di grandi dimensioni e scalabilità
  • Supporto per thread multipli durante la sincronizzazione
  • Possibilità di sincronizzare solo i file nuovi e aggiornati
  • Elevata velocità di sincronizzazione grazie ad algoritmi intelligenti

Svantaggi:

  • Linux in esecuzione su un’istanza di EC2 consuma lo spazio di storage dei volumi EBS. I costi di storage per i volumi EBS sono più elevati rispetto a quelli dei bucket S3.

In questo tutorial vengono utilizzati i comandi per Ubuntu Server.

Innanzitutto, è necessario installare AWS CLI.

Aggiornare l’albero dei repository:

sudo apt-get update

Installare AWS CLI:

sudo apt install awscli

oppure

Installare unzip:

sudo apt install unzip

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

unzip awscli-exe-linux-x86_64.zip

sudo ./aws/install

Verificare le credenziali AWS in Linux in esecuzione sull’istanza di EC2.

aws configure list

Aggiungere le credenziali per accedere ad AWS con AWS CLI dall’istanza Linux, se non sono ancora state configurate:

aws configure

Inserire i seguenti parametri:

ID chiave di accesso AWS

Chiave segreta di accesso AWS

Nome della regione predefinita

Formato di output predefinito

Creare una directory in cui archiviare il backup in Amazon S3. Nel mio esempio, creo la ~/s3/ directory per archiviare i backup S3 e una sottodirectory con un nome identico a quello del bucket. I file archiviati nel bucket S3 devono essere copiati in questa directory locale sulla macchina Linux. ~ è la directory home di un utente, che nel mio caso è /home/ubuntu .

mkdir -p ~/s3/your_bucket_name

Sostituisci your_bucket_name con il nome del tuo bucket ( blog-bucket01 nel nostro esempio). mkdir -p ~/s3/blog-bucket01

Sincronizza il contenuto del bucket con la tua directory locale sull’istanza di Amazon EC2 con sistema operativo Linux:

aws s3 sync s3:// blog-bucket01 /home/ubuntu/s3/ blog-bucket01/

Se la configurazione delle credenziali, il nome del bucket e il percorso di destinazione sono corretti, i dati dovrebbero iniziare a essere scaricati dal bucket S3. Il tempo necessario per completare l’operazione dipende dalle dimensioni dei file presenti nel bucket e dalla velocità della tua connessione Internet.

Backup automatico di Amazon S3

È possibile configurare i processi di backup automatico di Amazon S3 con AWS CLI sync. Creare un file di script sync.sh per eseguire il backup su AWS S3 (sincronizzare i file da un bucket S3 a una directory locale sull’istanza Linux), quindi eseguire questo script secondo la pianificazione.

nano /home/ubuntu/s3/sync.sh

#!/bin/sh

# Display the current date and time

echo '-----------------------------'

date

echo '-----------------------------'

echo ''

# Display the script initialization message

echo 'Syncing remote S3 bucket...'

# Running the sync command

/usr/bin/aws s3 sync s3://{BUCKET_NAME} /home/ubuntu/s3/{BUCKET_NAME}/

# Echo "Script execution is completed"

echo 'Sync complete'

Sostituire il {BUCKET_NAME} con il nome del bucket S3 di cui si desidera eseguire il backup.

Il percorso completo verso aws (binario AWS CLI) è definito per consentire a crontab di eseguire correttamente l’applicazione aws nell’ambiente shell utilizzato da crontab.

Rendere lo script eseguibile:

sudo chmod +x /home/ubuntu/s3/sync.sh

Eseguire lo script per verificare che funzioni:

/home/ubuntu/s3/sync.sh

Modifica crontab (uno scheduler in Linux) dell’utente corrente per pianificare l’esecuzione dello script di backup in Amazon S3.

crontab -e

Potrebbe essere necessario selezionare un editor di testo per modificare la configurazione di crontab.

Il formato di crontab per la pianificazione delle attività è il seguente:

m h dom mon dow command

Dove: m – minuti; h – ore; dom – giorno del mese; dow – giorno della settimana.

Aggiungiamo una riga di configurazione affinché l’attività esegua la sincronizzazione ogni ora e salvi i risultati del backup su AWS S3 nel file di log. Aggiungete questa riga in fondo alla configurazione di crontab.

0 * * * * /home/ubuntu/s3/sync.sh > /home/ubuntu/s3/sync.log

Il backup automatico su Amazon S3 è configurato. Il file di log può essere utilizzato per verificare l’esecuzione delle attività di sincronizzazione.

Conclusione

Esistono diversi metodi per eseguire il backup in Amazon S3 e due di essi sono stati trattati in questo post del blog. È possibile abilitare il controllo delle versioni degli oggetti per un bucket al fine di conservare le versioni precedenti degli oggetti; ciò consente di recuperare i file qualora fossero state apportate modifiche indesiderate. La replica di Amazon S3 è un altro strumento nativo che permette di creare una copia dei file archiviati in un bucket Amazon S3 sotto forma di oggetti. In questo caso, gli oggetti vengono replicati da un bucket a un altro. È inoltre possibile creare un backup di un bucket Amazon S3 utilizzando lo strumento di sincronizzazione in AWS CLI, che consente di sincronizzare i file in un bucket con una directory locale di una macchina Linux in esecuzione su un’istanza di EC2. È possibile pianificare il backup automatico su Amazon S3 utilizzando uno script e crontab.

In generale, lo storage sul cloud Amazon S3 è molto affidabile e il backup in Amazon S3 è una pratica comune. Se disponete di una strategia di protezione dei dati di codice e di una strategia di backup AWS, dovreste disporre di una copia di backup. In questo caso, si consiglia di eseguire il backup dei dati su Amazon S3 e su un’altra ubicazione. Utilizzate NAKIVO Backup & Replication per proteggere i vostri dati su macchine fisiche e virtuali. NAKIVO Backup & Replication è un solido software di backup per ambienti virtualizzati che può essere utilizzato per proteggere le VM, nonché le istanze di Amazon EC2 e le macchine fisiche.

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