Semplice strategia di backup per istanze / volumi Amazon EC2?


13

Hai inserito Backup introduttivi per immagini di Windows 010 supportate da Amazon EC2 EBS ...

Ho esplorato il mio cervello per trovare una semplice strategia di backup per il nostro singolo server Windows 2008 con SharePoint Services. Questa è un'immagine supportata da EBS di un server con un volume di dati. Non ho bisogno di niente di esotico. Ho solo bisogno di un backup "quotidiano" (perdere un giorno di dati non è catastrofico).

Abbiamo creato e salvato un'immagine AMI supportata da EBS (Windows 2008) che possiamo usare. Abbiamo iniziato a fare backup semplicemente creando una nuova immagine AMI EBS. Questo è davvero semplice, ma il server in esecuzione viene messo offline durante i primi 10-15 minuti di creazione dell'immagine - non è l'ideale.

Il modo standard di creare backup sembrerebbe creare istantanee di volumi collegati a un'istanza in esecuzione. Ancora una volta è piuttosto semplice e il server rimane utilizzabile durante la generazione dell'istantanea. L'apparente Catch-22 è che non puoi semplicemente avviare una nuova istanza direttamente da un'istantanea.

So come raggruppare un'istanza in esecuzione nello storage S3 e quindi registrare l'AMI dal bucket S3. Questo mi consente di acquisire un backup di un'istanza in esecuzione e, se l'istanza in esecuzione viene persa, registrare l'AMI dal bucket S3 e avviare la nuova AMI per ripristinare l'istanza, ma questo sembra davvero contorto e sembra ridicolo dover destreggiarsi tra AWS Console e il plug-in S3 Organizer per Firefox per ottenere questo risultato. (Si prega di non menzionare l'approccio da riga di comando, questo è un corso di livello 010).

Dal giocare con le immagini supportate da EBS, il seguente approccio sembra funzionare per me (tutto fatto all'interno della Console AWS):

1.Per i backup, è sufficiente eseguire l'istantanea del volume di sistema (/ dev / sda1) secondo necessità. 2. Se perdi l'istanza in esecuzione, procedi come segue: a. Crea un nuovo volume dall'ultimo backup dell'istantanea b. Avvia un'altra istanza dell'AMI iniziale (deve essere supportato da EBS) c. Interrompi questa istanza. d. Scollegare il volume di sistema esistente dalla nuova istanza arrestata ed eliminarlo. e. Collegare il volume appena creato come volume di sistema (/ dev / sda1) all'istanza arrestata. f.Riavvia la nuova istanza. L'ho provato un paio di volte e sembra funzionare per me.

Domanda: c'è qualcosa di sbagliato in questo approccio?

Risposte:


9

Il tuo approccio suona molto bene, ma posso pensare a un modo possibile per migliorarlo.

Per ridurre l'impatto della perdita di dati dall'ultimo backup e l'errore del volume EBS (improbabile, ma ancora possibile) è possibile archiviare i dati su un volume EBS separato rispetto ai file di sistema e eseguire il backup del volume di dati più frequentemente rispetto al volume di sistema .

Con la tua strategia attuale, perderai tutti i dati che sono stati creati tra il momento dell'ultimo backup e il momento in cui l'istanza ha avuto esito negativo. Con il nuovo approccio, il volume dei dati verrà scritto fino all'errore dell'istanza, quindi puoi semplicemente ricollegarlo alla nuova istanza una volta che è attivo e funzionante.


Punto eccellente.
John Miner,

4

Genero un'istantanea per ogni volume nel mio account usando uno script bash

#!/bin/bash

ec2-describe-volumes | awk '{ print $2 }' | sort -u >  /tmp/ebs_volumes

for i in $(cat /tmp/ebs_volumes); do
   echo $i;
   ec2-create-snapshot $i;
done

3
come potate le vecchie istantanee?
rmalayter

1
+1 per l'ispirazione. (Ho scritto alcuni script per scopi simili ai miei: serverfault.com/questions/275245/… )
Jonik

0

Ecco uno script che creerà il backup AMI per tutte le istanze ec2 all'interno del tuo VPC

#!/bin/bash
#Script to Automate AMI backup

echo "----------------------------------\n   `date`   \n----------------------------------"

aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-xxx |   awk '{ print $8 }' | sort -n   | grep  "i-" > /tmp/instanceid.txt

echo "Starting the Daily AMI creation: "

 #To create AMI from instance-id 

for i in $(cat /tmp/instanceid.txt); do
        echo "Creating AMI for Instance id $i ......."


echo "instance-`date +%d%b%y`-$i" > /tmp/aminame.txt

aws ec2 create-image --instance-id $i --name "`cat /tmp/aminame.txt`" --description "This is created by ami-backup.sh" --no-reboot | grep -ir ami | awk '{print $4}' > /tmp/amiID.txt

echo  "AMI Name is: `cat /tmp/aminame.txt`\n"

done

echo done
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.