Backup e recuperação do Amazon EC2 com snapshots e AMIs
Considere se é necessário criar um backup completo de uma instância do EC2 com uma imagem de máquina da Amazon (AMI) ou tire um snapshot de um volume individual.
Como utilizar AMIs ou snapshots do Amazon EBS para backups
Uma AMI inclui o seguinte:
-
Um ou mais snapshots. AMIs com armazenamento de instâncias incluem um modelo para o volume raiz da instância (por exemplo, um sistema operacional, um servidor do aplicativo e aplicativos).
-
Permissões de execução que controlam quais contas da AWS podem usar a AMI para executar instâncias.
-
Um mapeamento de dispositivos de blocos que especifica os volumes a serem anexados à instância quando ela for executada.
nota
Na maioria dos casos, as AMIs para Windows, Red Hat, SUSE e SQL Server exigem que as informações corretas de licenciamento estejam presentes na AMI. Para obter mais informações, consulte Entender as informações de faturamento da AMI. Ao criar uma AMI de um snapshot, a operação RegisterImage obtém as informações de faturamento corretas dos metadados do snapshot, mas isso exige que os metadados apropriados estejam presentes. Para verificar se as informações de cobrança corretas foram aplicadas, verifique o campo Detalhes da plataforma na nova AMI. Se o campo estiver vazio ou não corresponder ao código do sistema operacional esperado (por exemplo, Windows, Red Hat, SUSE ou SQL), a criação da AMI não foi bem-sucedida e você deve descartar a AMI e seguir as instruções em Criar uma AMI a partir de uma instância.
Você pode utilizar AMIs para iniciar novas instâncias com software e dados pré-configurados. Você pode criar AMIs quando quiser estabelecer uma linha de base, que é uma configuração reutilizável para iniciar mais instâncias. Ao criar uma AMI de uma instância EC2 existente, um snapshot será criado para todos os volumes anexados à instância. O snapshot incluirá os mapeamentos do dispositivo.
Você não poderá utilizar snapshots para iniciar uma nova instância, mas pode utilizá-los para substituir volumes em uma instância existente. Caso você tenha dados corrompidos ou uma falha de volume, poderá criar um volume a partir de um snapshot que você tirou e substituir o volume antigo. Você também poderá utilizar snapshots para provisionar novos volumes e anexá-los durante a execução de uma nova instância.
Caso você esteja utilizando AMIs de plataforma e aplicativo mantidas e publicadas pela AWS ou a partir da AWS Marketplace, considere manter volumes separados para seus dados. Você poderá fazer backup de seus volumes de dados como snapshots separados dos volumes do sistema operacional e do aplicativo. Em seguida, use os snapshots do volume de dados com AMIs recém-atualizadas publicadas por AWS ou a partir do AWS Marketplace. Essa abordagem exige testes e planejamento cuidadosos para fazer backup e restaurar todos os dados personalizados, incluindo informações de configuração, nas AMIs recém-publicadas.
O processo de restauração é afetado pela sua escolha entre backups da AMI ou backups de snapshots. Se você criar AMIs para servir como backups de instância, deverá iniciar uma instância EC2 a partir da AMI como parte do processo de restauração. Talvez você também precise desligar a instância existente para evitar possíveis colisões. Um exemplo de uma possível colisão são os identificadores de segurança (SIDs) para instâncias do Windows associadas ao domínio. O processo de restauração de instantâneos pode exigir que você desconecte o volume existente e conecte o volume recém-restaurado. Ou talvez seja necessário fazer uma alteração na configuração para direcionar seus aplicativos para o volume recém-conectado.
O AWS Backup oferece suporte a backups em nível de instância como AMIs e backups em nível de volume como snapshots separados:
-
Para um backup completo de todos os volumes do EBS na instância, crie uma AMI da instância do EC2. Quando quiser reverter, use o assistente de inicialização de instâncias para criar uma instância. No assistente de execução da instância, escolha Minhas AMIs.
-
Para fazer backup de um volume individual, crie um snapshot. Para restaurar o snapshot, consulte Criar um volume a partir de um snapshot. É possível o Console de gerenciamento da AWS ou a AWS Command Line Interface (AWS CLI).
O custo de uma AMI de instância é o armazenamento de todos os volumes na instância, mas não os metadados. O custo de um snapshot do EBS é o armazenamento do volume individual. Para obter mais informações sobre os custos de armazenamento em volume, consulte a página de preços do Amazon EBS.
Volumes do servidor
Os volumes do EBS são a principal opção de armazenamento persistente para o Amazon EC2. Você pode utilizar esse armazenamento em bloco para dados estruturados, como bancos de dados, ou dados não estruturados, como arquivos em um sistema de arquivos em um volume.
Os volumes do EBS estão colocados em uma zona de disponibilidade específica. Os volumes são replicados em vários servidores para evitar perdas de dados causadas por falha em qualquer componente único. A falha se refere a uma perda total ou parcial do volume, dependendo do tamanho e do desempenho do volume.
Os volumes do EBS foram projetados para uma taxa anual de falhas (AFR) de 0,1 a 0,2%. Isso torna os volumes do EBS 20x mais confiável do que as unidades de disco típicas, que falham com um AFR de cerca de 4%. Por exemplo, se você tiver 1.000 volumes do EBS em execução por 1 ano, você deve esperar que um ou dois volumes falhem.
O Amazon EBS também oferece suporte a um atributo de snapshot para fazer backups pontuais de seus dados. Todos os tipos de volume EBS oferecem as mesmas capacidades de snapshots duráveis e foram projetados para disponibilidade de 99,999%. Para obter mais informações, consulte o Acordo de Nível de Serviço do Amazon Compute
O Amazon EBS fornece a capacidade de criar snapshots (backups) de qualquer volume do EBS. Um snapshot é um atributo básico para criar backups de seus volumes do EBS. Um snapshot pega uma cópia do volume do EBS e o coloca no Amazon S3, onde ele é armazenado repetidamente em várias zonas de disponibilidade. O snapshot inicial é uma cópia completa do volume; os snapshots contínuos armazenam somente alterações incrementais em nível de bloco. Consulte a Documentação do Amazon EBS para obter detalhes sobre como criar snapshots do Amazon EBS.
Você pode realizar uma operação de restauração, excluir um snapshot ou atualizar os metadados do snapshot, como tags, associados ao snapshot do console do Amazon EC2 na mesma região em que você tirou o snapshot.
A restauração de um snapshot cria um novo volume do Amazon EBS com dados de volume completos. Se você precisar apenas de uma restauração parcial, poderá anexar o volume à instância em execução com um nome de dispositivo diferente. Em seguida, monte-o e use os comandos de cópia do sistema operacional para copiar os dados do volume de backup para o volume de produção.
Os snapshots do Amazon EBS também podem ser copiados entre regiões AWS usando o recurso de cópia de snapshots do Amazon EBS, conforme descrito na Documentação do Amazon EBS. Você pode utilizar esse atributo para armazenar seu backup em outra região sem precisar gerenciar a tecnologia de replicação subjacente.
Como estabelecer volumes de servidor separados
Você já pode utilizar um conjunto padrão de volumes separados para o sistema operacional, logs, aplicativos e dados. Ao estabelecer volumes de servidor separados, você poderá reduzir o escopo do impacto quando houver falhas no aplicativo ou na plataforma causadas pela exaustão do espaço em disco. Esse risco geralmente é maior com discos rígidos físicos, porque você não tem a flexibilidade de expandir volumes rapidamente. Com unidades físicas, você deverá comprar as novas unidades, fazer backup dos dados e depois restaurar os dados nas novas unidades. Com AWS, esse risco é bastante reduzido porque você pode utilizar o Amazon EBS para expandir seus volumes provisionados. Para obter mais informações, consulte a a documentação do AWS.
Mantenha volumes separados para dados de aplicativos, dados do usuário, registros e arquivos de troca para que você possa utilizar políticas separadas de backup e restauração para esses recursos. Ao separar os volumes dos seus dados, você também poderá utilizar diferentes tipos de volume com base nos requisitos de desempenho e armazenamento dos dados. Em seguida, você poderá otimizar e ajustar seus custos para diferentes workloads.
Considerações para volumes de armazenamento de instância
Um armazenamento de instâncias fornece armazenamento temporário em nível de bloco para a instância. Esse armazenamento está localizado em discos que estão anexados fisicamente ao computador host. Os armazenamentos de instância são ideais para armazenamento temporário de informações que mudam com frequência, como buffers, caches, dados temporários e outros conteúdos temporários. Eles também são preferíveis para dados replicados em toda a frota de instâncias, tal como um grupo com balanceador de carga de servidores web.
Os dados em um armazenamento de instâncias persistem apenas durante a vida útil da instância associada. Se uma instância for reiniciada (intencionalmente ou acidentalmente), dados no armazenamento de instância persistirão. Contudo, os dados no armazenamento de instâncias serão perdidos em qualquer das seguintes circunstâncias:
-
A unidade de disco subjacente falha.
-
A instância é interrompida.
-
A instância é encerrada.
Portanto, não dependa do armazenamento de instâncias para dados valiosos de longo prazo. Em vez disso, use um armazenamento físico de dados mais durável, como Amazon S3, Amazon EBS ou Amazon EFS.
Uma estratégia comum com volumes de armazenamento de instância é manter os dados necessários no Amazon S3 regularmente, conforme necessário, com base no objetivo de ponto de recuperação (RPO) e no objetivo de tempo de recuperação (RTO). Em seguida, você poderá baixar os dados do Amazon S3 para o seu armazenamento de instância quando uma nova instância for iniciada. Você também poderá fazer o upload dos dados para o Amazon S3 antes que uma instância seja interrompida. Para persistência, crie um volume do EBS, anexe-o à sua instância e copie os dados do volume de armazenamento de instância para o volume do EBS periodicamente. Para obter mais informações, consulte o Centro de Conhecimentos da AWS
Marcação e aplicação de padrões para snapshots e AMIs do EBS
Marcar todos os seus recursos AWS é uma prática importante para alocação de custos, auditoria, solução de problemas e notificação. A marcação é importante para volumes do EBS para que as informações pertinentes e necessárias para gerenciar e restaurar volumes estejam presentes. As tags não são copiadas automaticamente das instâncias do EC2 para as AMIs ou dos volumes de origem para os snapshots. Certifique-se de que seu processo de backup inclua as tags relevantes dessas fontes. Isso ajuda a definir os metadados do snapshot, como políticas de acesso, informações de anexo e alocação de custos, para usar esses back-ups futuramente. Para obter mais informações sobre como marcar seus recursos AWS, consulte o Artigo técnico sobre melhores práticas de marcação
Além das tags que você utiliza para todos os recursos AWS, use as seguintes tags específicas de backup:
-
ID da instância de origem
-
ID do volume de origem (para snapshots)
-
Descrição do ponto de recuperação
Você pode aplicar políticas de marcação usando regras AWS Config e permissões do IAM. O IAM suporta o uso forçado de tags, para que você possa escrever políticas do IAM que exijam o uso de tags específicas ao atuar em snapshots do Amazon EBS. Se uma operação CreateSnapshot for tentada sem que as tags definidas na política de permissões do IAM concedam direitos, a criação do snapshot falhará com o acesso negado. Para obter mais informações, consulte a postagem do blog sobre marcação de snapshots do Amazon EBS na criação e implementação de políticas de segurança mais fortes
Você pode usar as regras do AWS Config para avaliar automaticamente as definições de configuração de seus recursos da AWS. Para ajudá-lo a começar, o AWS Config fornece regras personalizáveis predefinidas chamadas de regras gerenciadas. Você também pode criar suas próprias regras. Enquanto o AWS Config monitora continuamente as alterações de configuração entre seus recursos, ele verifica se essas alterações violam alguma das condições em suas regras. Se um recurso viola uma regra, o AWS Config sinaliza o recurso e a regra como não compatíveis. Observe que a regra gerenciada por tags obrigatórias atualmente não oferece suporte a snapshots e AMIs.