O blog da AWS
Novidade — Crie snapshots application-consistent usando o Amazon Data Lifecycle Manager e scripts personalizados
Por Jeff Barr
O Amazon Data Lifecycle Manager agora oferece suporte ao uso de scripts pré-snapshot e pós-snapshot incorporados aos documentos do AWS Systems Manager. Você pode usar esses scripts para garantir que os snapshots do Amazon Elastic Block Store (Amazon EBS) criados pelo Data Lifecycle Manager sejam application-consistent. Os scripts podem pausar e retomar as operações de I/O, transferir dados armazenados em buffer para volumes do EBS e assim por diante. Como parte desse lançamento, também publicaremos um conjunto de postagens de blog detalhadas que mostram como usar esse recurso com bancos de dados relacionais autogerenciados e com o Windows Volume Shadow Copy Service (VSS).
Data Lifecycle Manager (DLM)
Uma rápida recapitulação, o Data Lifecycle Manager ajuda você a automatizar a criação, retenção e exclusão de snapshots de volume do Amazon EBS. Depois de concluir as etapas mandatórias, como integrar sua instância EC2 ao AWS Systems Manager, configurar uma função do IAM para DLM e marcar seus documentos SSM, basta criar uma política de ciclo de vida e indicar (por meio de tags) as instâncias aplicáveis do Amazon Elastic Compute Cloud (Amazon EC2), definir um modelo de retenção e deixar o DLM fazer o resto. As políticas especificam quando elas devem ser executadas, o que deve ser copiado e por quanto tempo os snapshots devem ser retidos. Para uma visão geral completa do DLM, leia minha postagem no blog de 2018, Novo — Gerenciamento do ciclo de vida para snapshots do Amazon EBS.
Snapshots application-consistent
EBS snapshots são crash-consistent, o que significa que eles representam o estado do volume associado do EBS quando o snapshot foi criado. Isso é suficiente para muitos tipos de aplicativos, inclusive aqueles que não usam snapshots para capturar o estado de um banco de dados relacional ativo. Para criar um snapshot application-consistent, é necessário levar em consideração as transações pendentes (aguardando a conclusão ou fazendo com que falhem), pausar momentaneamente outras operações de gravação, tirar o snapshot e, em seguida, retomar as operações normais.
E é aí que entra o lançamento de hoje. Agora, o DLM tem a capacidade de fazer com que a instância se prepare para um backup application-consistent. O script de pré-snapshot pode gerenciar transações pendentes, transferir dados da memória para armazenamento persistente, congelar o sistema de arquivos ou até mesmo interromper o aplicativo ou o banco de dados. Então, o script pós-snapshot pode trazer o aplicativo ou o banco de dados de volta à vida, recarregar caches na memória a partir do armazenamento persistente, descongelar o sistema de arquivos e assim por diante.
Além do suporte básico para scripts personalizados, você também pode usar esse recurso para automatizar a criação de snapshots do VSS Backup:
Pré e Pós Scripts
Os novos scripts se aplicam às políticas de DLM para instâncias. Vamos supor que eu tenha criado uma política que faz referência a documentos SSM com scripts pré-snapshots e pós-snapshots e que ela se aplica a uma única instância. Veja o que acontece quando a política é executada de acordo com sua programação:
- O script de pré-snapshot é iniciado a partir do documento SSM.
- Cada comando no script é executado e o status do script (sucesso ou falha) é capturado. Se habilitado na política, o DLM tentará novamente os scripts com falha.
- Snapshots do EBS de vários volumes são iniciados para volumes do EBS conectados à instância, com controle adicional por meio da política.
- O script pós-snapshot é iniciado a partir do documento SSM,
- Cada comando no script é executado e o status do script (sucesso ou falha) é capturado.
A política contém opções que permitem que você controle as ações que são tomadas (tentar novamente, continuar ou ignorar) quando um dos scripts atinge o tempo limite ou falha. O status é registrado, as métricas do Amazon CloudWatch são publicadas, os eventos do Amazon EventBridge são emitidos e o status também é codificado em tags que são atribuídas automaticamente a cada snapshot.
Os scripts pré e pós-snapshot podem realizar qualquer uma das ações permitidas em um documento de comando: execução de shell scripts, execução de scripts do PowerShell e assim por diante. As ações devem ser concluídas dentro do tempo limite especificado na política, com um intervalo permitido de 10 segundos a 120 segundos.
Introdução
Você precisará ter uma compreensão detalhada do seu aplicativo ou banco de dados para criar um par robusto de scripts. Além de lidar com o “caminho feliz” quando tudo corre bem, seus scripts precisam planejar vários cenários de falha. Por exemplo, um script pré-snapshot deve bifurcar uma tarefa em segundo plano que servirá como proteção contra falhas caso o script pós-snapshot não funcione conforme o esperado. Cada script deve retornar um código de status, conforme detalhado aqui.
Depois de escrever e testar meus scripts e empacotá-los como documentos SSM, abro a página do Data Lifecycle Manager na console do EC2, seleciono a política de snapshot do EBS e clico em Próxima etapa:
Eu tenho como alvo todas as minhas instâncias que estão marcadas com uma tag Mode igual Production e uso a função padrão do IAM (se você usar uma função diferente, ela deve permitir o acesso ao SSM), deixo o resto dos valores como estão e prossigo:
Na próxima página, desço até os pré e pós-scripts e expando a seção. Eu clico em Ativar pré e pós-scripts, escolho Documento SSM personalizado e seleciono meu documento SSM no menu. Também defino as opções de tempo limite e de nova tentativa e escolho usar comojeff Barr padrão um backup crash-consistent se um dos meus scripts falhar. Eu clico em Revisar política, faço uma verificação final e clico em Criar política na página a seguir:
Minha política foi criada e entrará em vigor imediatamente. Depois de ser executado pelo menos uma vez, posso inspecionar as métricas do CloudWatch para verificar se há inícios, conclusões e falhas:
Leitura adicional
Aqui está a primeira das postagens detalhadas do blog que prometi anteriormente:
- Automatizando a criação de instantâneos consistentes de aplicativos para MySQL e PostgreSQL
- Automatizando a criação de backups do VSS
Temos mais em andamento para o final deste ano e atualizarei a lista acima quando elas forem publicadas.
Você também pode ler a documentação para saber mais.
Vídeos DLM
Embora eu tenha sua atenção, gostaria de compartilhar alguns vídeos úteis com você:
- Monitore as mudanças no estado da política
- Monitore políticas com o CloudWatch Events
- Monitore ações das políticas com métricas do CloudWatch
- Gerenciando snapshots e AMIs do Amazon EBS com o Amazon Data Lifecycle Manager
Esse novo recurso já está disponível e você pode começar a usá-lo hoje mesmo!
— Jeff;
Este blog é uma tradução do contéudo original em inglês (link aqui).
Biografia do Autor
Jeff Barr é evangelista-chefe da AWS. Ele começou este blog em 2004 e tem escrito posts quase sem parar desde então. |
Biografia Tradutor e Revisor
Gustavo Lima é Arquiteto de Soluções na AWS no segmento de Partner First SP High Biller. Ele possui mais de 13 anos de experiência na área de soluções de armazenamento e proteção de dados. Juntou-se ao time da AWS em 2022. |
|
Jhennyfer Oliveira é Arquiteta de Soluções na AWS. |