Como agendar snapshots automáticos (diários) da instância do AWS EC2 Windows?

12

Eu tenho alguns servidores Windows hospedados no Amazon EC2. Alguns executam o Windows Server 2003 e outros executam o Windows Server 2008. Essas são instâncias apoiadas pelo EBS. A maioria das instâncias também tem alguns volumes adicionais do EBS conectados.

Queremos agendar um snapshot diário das máquinas Windows (e também dos volumes EBS anexados) para o S3, para que tenhamos backups diários disponíveis.

Alguém poderia pensar que esse é um requisito muito comum e que seria disponibilizado por meio do AWS Management Console, mas, infelizmente, não é. Quais abordagens estão disponíveis? Como faço para agendar instantâneos diários em nossos servidores Windows?

Existem vários exemplos de scripts disponíveis on-line para o Linux, mas não tanto para o Windows. Eu dei uma olhada no link , além de link . Alguém já usou uma dessas abordagens e isso funciona?

Eu também considerei um serviço como Skeddly que parece barato à primeira vista, mas quando você olha para usá-lo para vários servidores, o preço logo se torna um ponto em que parece ser uma opção melhor criar sua própria solução, já que você pode aplicá-la a novos servidores no futuro. Com o Skeddly, pagamos por cada servidor.

Como podemos agendar instantâneos diários de nossas instâncias do Windows?

    
por Stanley 13.11.2012 / 10:54

8 respostas

9

Amazon Web Services recentemente anunciado Ferramentas de linha de comando do PowerShell para Windows e são fornecidas junto com o AWS Tools para .NET SDK .

As ferramentas AWS Powershell facilitam bastante a criação de um instantâneo:

New-EC2Snapshot "vol-371acd04" -Description "My Snapshot"

E você pode consultar seus instantâneos assim:

PS C:\Program Files (x86)\AWS Tools\PowerShell> Get-EC2Snapshot | more


SnapshotId  : snap-18be2b28
VolumeId    : vol-371acd04
Status      : completed
StartTime   : 2012-12-28T08:17:00.000Z
Progress    : 100%
OwnerId     : 383816850479
VolumeSize  : 30
Description : My Snapshot
OwnerAlias  :
Tag         : {}

Verifique se você tem as ferramentas do AWS Powershell instaladas e crie uma tarefa agendada que use um script do PowerShell semelhante ao snippet acima para agendar seus snapshots e você deve ser bom.

Atualizado para consultar volumes anexados do EBS:

Para consultar os volumes do EBS anexados à sua instância e, em seguida, tirar um instantâneo de cada um deles, você pode fazer algo assim:

# Find my instance ID from the EC2 metadata
$myInstanceID = (New-Object System.Net.WebClient).DownloadString("http://169.254.169.254/latest/meta-data/instance-id")

# Query for volumes that are attached to my Instance Id
$volumes = (Get-EC2Volume).Attachment | where {$_.InstanceId -eq $myInstanceID } | Select VolumeId

# Iterate through these volumes and snapshot each of them
foreach ($volume in $volumes)
{
    New-EC2Snapshot $volume.VolumeId -Description "My Snapshot"
}
    
por 28.12.2012 / 09:23
4

Atualização 2018 No final de 2018, há duas maneiras adicionais de automatizar os snapshots do EBS. Eu ainda uso o método original dos eventos do CloudWatch, pois funcionou bem durante anos e não vejo sentido em mudar.

Ops Automator (OA)

Ops Automator é um conjunto muito flexível de scripts lambda fornecido pela AWS. Ele é implantado com um modelo do CloudWatch, que está na página acima.

Suas etapas de configuração são

  1. O modelo AWS CloudFormation lança a estrutura principal, que inclui um conjunto de microsserviços (funções do AWS Lambda) que gerenciam eventos de acionamento, seleção de recursos, execução de tarefas, controle de simultaneidade e conclusão.
  2. Dados de configuração de tarefas, que definem o evento de acionamento, como a tarefa deve ser executada, quais recursos serão selecionados pelas ações e onde esses recursos estão localizados, são armazenados em uma tabela do Amazon DynamoDB.
  3. Os modelos do AWS CloudFormation gerados por solução configuram as tarefas com base nos parâmetros que você define e as funções necessárias para executar ações nas contas.
  4. A solução rastreia todas as etapas do processo, os recursos selecionados e os resultados das ações, incluindo possíveis erros, em uma tabela do DynamoDB.
  5. A solução também aproveita os Registros do Amazon CloudWatch para registro. As mensagens de aviso e erro são publicadas em um tópico do Amazon Simple Notification Service (Amazon SNS) criado pela solução, que envia mensagens para um endereço de e-mail inscrito.

Gerenciador de ciclo de vida de dados (DLM)

Documentação DLM . Esta é uma solução mais simples, mas menos flexível, que pode fazer o backup de volumes a cada 12 ou 24 horas. Estou intrigado porque a AWS colocou essa limitação no DLM - semanalmente, mensalmente, ou uma frequência variável teria sido fácil de implementar.

O DLM está integrado ao console da AWS. Eu não vou copiar e colar a documentação, pois a AWS mantém as coisas bem atualizadas, e os links raramente quebram.

Atualização de 2017

A partir de 2017, há outra maneira de criar snapshots regulares usando Cloudwatch Events .

Isso permite agendar instantâneos, mas não resolve o problema do volume em uso, portanto, é apenas uma solução parcial. Pode haver uma maneira de usar o CloudWatch Events para acionar algo que faz quiesce do volume.

  1. Abra o console do CloudWatch no link .

  2. No painel de navegação, escolha Eventos.

  3. Escolha Criar regra.

  4. Para a fonte de eventos, faça o seguinte:

    - > Escolha o horário.

    - > Escolha Taxa fixa e especifique o intervalo de programação (por exemplo, 5 minutos). Como alternativa, escolha a expressão Cron e especifique uma expressão Cron (por exemplo, a cada 15 minutos de segunda a sexta-feira, iniciando no horário atual).

  5. Para os destinos, escolha Adicionar destino e, em seguida, selecione EC2 Criar chamada da API de instantâneo.

  6. Para o ID do volume, escolha um volume do EBS.

  7. Escolha Configurar detalhes.

  8. Para a definição de regra, digite um nome e uma descrição para a regra.

  9. Para permissões da AWS, escolha a opção para criar uma nova função. Isso abre o console do IAM em uma nova guia. A nova função concede a permissão de destino interna para acessar recursos em seu nome. Escolha Permitir. A guia com a janela do IAM é fechada.

  10. Escolha Criar regra.

por 09.08.2017 / 20:54
3

Analisando uma resposta antiga que me iniciou na minha pesquisa. Parabéns a Ameer Deen acima pelos scripts, btw.

Encontrou esta postagem que mergulha muito mais profundamente nos scripts do PowerShell para automatizar totalmente o processo de coleta de dados e de instantâneos do EBS:

link

Então, é claro, descobri que todas elas foram escritas para a v1.0 do AWS SDK, agora depreciada, então passei o último dia consertando isso e conseguindo que todas trabalhassem com v2.0:

link

Aproveite!

    
por 03.07.2014 / 03:28
3

O AutomatiCloud faz exatamente o que você precisa. É uma ferramenta do Windows fácil de usar, na qual você pode agendar backups para suas instâncias do RDS ou Volumes do EBS: www.automaticoud.net

Você pode

  • crie instantâneos e AMIs com base em IDs ou tags de instâncias
  • crie tags dinâmicas usando macros
  • define três níveis de períodos de retenção (backup GFS)
  • enviar notificações por e-mail
  • adicione o agente do VSS para instâncias do Windows
  • executar scripts antes / depois do backup
  • e muito mais ...
por 04.07.2015 / 13:36
1

Agora você pode usar o AWS Lambda para criar AMIs automaticamente . Toda a configuração deve ser concluída em cerca de 10 minutos, juntamente com o cronograma que você gosta. Veja o repositório do Github para contribuir também. Execute o script sozinho e evite dar permissões a terceiros.

    
por 15.02.2017 / 18:05
0

Você pode escrever um script que converse com a API do EC2 para agendar esses instantâneos. Ele pode ser executado em uma das instâncias existentes ou você pode configurar uma pequena instância do Linux para essa finalidade em um t1.micro cuja única função é lançar os instantâneos dos hosts do Windows. O script pode ser colocado no host linux como um cron job para ser executado diariamente no horário que você escolher.

O primeiro link é um exemplo de script de um host Windows e pode ser facilmente automatizado com Tarefas Agendadas no Windows.

Eu não usei o aplicativo vinculado em seu segundo link.

    
por 26.11.2012 / 13:49
0

Os recursos atuais de snapshot do EBS para instâncias do Windows são explicados aqui: link

Para obter um instantâneo consistente, você deve pausar as gravações no volume por tempo suficiente para que o instantâneo seja concluído. Normalmente, isso significa que você precisa desmontar o volume. O documento da AWS não discute como fazer isso via linha de comando no Windows, mas você pode descobrir isso neste thread de superusuário: link

Para obter um instantâneo do volume de inicialização do sistema, você precisa interromper sua instância.

Espero que ajude.

    
por 01.04.2015 / 20:39
0

Sei que essa é uma pergunta antiga, mas compartilharei nossa solução.

Usamos um serviço chamado Ylastic . Seu plano Pro (US $ 50 / mês) inclui o agendamento de snapshots do EBS, não limitando o número de servidores ou discos. Ele também removerá backups mais antigos, se desejar. Você pode criar vários agendamentos (por exemplo, diariamente, semanalmente, etc.), cada um com suas próprias políticas de retenção.

A interface também permite criar novas instâncias a partir de backups.

Funcionou de maneira confiável para nós por anos, com cerca de vinte instâncias e quarenta volumes de EBS. Existem provavelmente métodos mais baratos, mas o preço é baixo o suficiente para que nós mesmos não tenhamos nos preocupado em construir e manter algo.

Veja link para obter detalhes sobre esse recurso.

    
por 24.11.2016 / 10:00