Estratégia de backup simples para instâncias / volumes do Amazon EC2?

13

Você inseriu os backups introdutórios para as imagens do Windows suportadas pelo EBS do Amazon EC2 010 ...

Eu tenho procurado meu cérebro para encontrar uma estratégia simples de backup para o nosso único servidor windows 2008 que executa o SharePoint Services. Esta é uma imagem de um servidor apoiada pelo EBS com um volume de dados. Eu não preciso de nada exótico. Eu só preciso de um backup "diário" (perder um dia de dados não é catastrófico).

Nós criamos e salvamos uma imagem AMI com suporte a EBS (Windows 2008) que estamos confortáveis usando. Começamos fazendo backups simplesmente criando uma nova imagem de EBS AMI. Isso é realmente simples, mas o servidor em execução é colocado offline durante os primeiros 10 a 15 minutos da criação da imagem - o que não é o ideal.

A maneira padrão de criar backups parece estar criando instantâneos de volumes anexados a uma instância em execução. Novamente, é bem simples e o servidor permanece utilizável durante a geração de instantâneos. O aparente Catch-22 é que você não pode simplesmente lançar uma nova instância diretamente de um instantâneo.

Eu sei como empacotar uma instância em execução para o armazenamento do S3 e, em seguida, registrar a AMI do bucket do S3. Isso me permite capturar um backup de uma instância em execução e, se a instância em execução for perdida, registrar a AMI do bucket do S3 e iniciar a nova AMI para recuperar a instância, mas isso parece realmente complicado e parece ridículo ter que Faça um malabarismo entre o AWS Console e o plug-in do S3 Organizer para que o Firefox consiga isso. (Por favor, não mencione a abordagem da linha de comando, este é um curso de nível 010).

Ao brincar com as imagens com suporte do EBS, a abordagem a seguir parece funcionar para mim (tudo feito no AWS Console):

1.Para seus backups, simplesmente tire um instantâneo do volume do sistema (/ dev / sda1) conforme necessário. 2.Se você perder sua instância em execução, faça o seguinte:    a.Criar um novo volume a partir do último backup de captura instantânea    b.Lançar uma outra instância da sua AMI inicial (deve ser apoiada pelo EBS)    c.Teste esta instância.    d.Detenha o volume do sistema existente da nova instância interrompida e descarte-o.    Coloque o volume recém-criado como volume do sistema (/ dev / sda1) na instância interrompida.    f.Re-start a nova instância. Eu testei isso algumas vezes e parece funcionar para mim.

Pergunta: Há algo de errado com essa abordagem?

    
por John Miner 27.04.2010 / 22:47

3 respostas

9

Sua abordagem parece muito boa - mas posso pensar em uma maneira possível de melhorá-la.

Para reduzir o impacto da perda de dados desde o último backup e a falha do volume EBS (improvável, mas ainda possível), você pode armazenar seus dados em um volume EBS separado dos arquivos do sistema e fazer backup do volume de dados com mais freqüência o volume do sistema.

Com sua estratégia atual, você perderá todos os dados que foram criados entre a hora do último backup e a hora em que sua instância falhou. Com a nova abordagem, o volume de dados será gravado até a falha da instância, para que você possa anexá-lo novamente à sua nova instância assim que estiver em funcionamento.

    
por 11.05.2010 / 22:32
4

Eu gero um instantâneo para cada volume da minha conta usando um 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
    
por 05.01.2011 / 22:43
0

Aqui está o script que irá criar backup de AMI para todas as instâncias do ec2 dentro do seu 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
    
por 20.08.2015 / 15:07