Backup e recuperação para o Amazon RDS - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Backup e recuperação para o Amazon RDS

O Amazon RDS inclui recursos para automatizar backups de bancos de dados. O Amazon RDS cria um snapshot do volume de armazenamento de sua instância de banco de dados, fazendo o backup de toda a instância de banco de dados, não apenas dos bancos de dados individuais. Usando o Amazon RDS, você pode estabelecer uma janela de backup para backups automatizados, criar instantâneos de instâncias de banco de dados e compartilhar e copiar instantâneos entre regiões e contas.

O Amazon RDS oferece duas opções diferentes para fazer backup e restaurar suas instâncias de banco de dados:

  • Os backups automatizados oferecem recuperação point-in-time (PITR) de sua instância de BD. Backup automatizado é ativado por padrão quando você cria uma instância de banco de dados.

    O Amazon RDS realiza um backup diário completo dos seus dados durante uma janela de backup que você define ao criar a instância de banco de dados. Você pode configurar o período de retenção de backup automático para até 35 dias. O RDS faz upload dos logs de transações de instâncias de banco de dados no Amazon S3 a cada cinco minutos. O Amazon RDS usa seus backups diários junto com seus registros de transações do banco de dados para restaurar sua instância de banco de dados. Você pode restaurar a instância a qualquer segundo durante o período de retenção, até LatestRestorableTime (normalmente, os últimos cinco minutos).

    Para descobrir o horário restaurável mais recente para suas instâncias de banco de dados, use a chamada de API do DescribeDBInstances. Ou procure na guia Descrição o banco de dados no console do Amazon RDS.

    Quando você inicia uma PITR, os registros de transações são combinados com o backup diário mais adequado para restaurar sua instância de banco de dados no horário solicitado.

  • Os snapshots de banco de dados são backups iniciados pelo usuário que você pode usar para restaurar a sua instância do BD em um estado conhecido como desejar. Em seguida, você pode restaurar esse estado a qualquer momento. Você pode usar o console do Amazon RDS ou a chamada de API do CreateDBSnapshot para criar snapshots de banco de dados. Esses instantâneos são mantidos até que você use o console ou a chamada de API do DeleteDBSnapshot para excluí-los explicitamente.

Ambas as opções de backup são suportadas pelo Amazon RDS no AWS Backup, que também fornece outros recursos. Considere usar o AWS Backup para configurar um plano de backup padrão para seus bancos de dados do Amazon RDS e use as opções de backup de instância iniciadas pelo usuário quando seus planos de backup para um banco de dados específico forem exclusivos.

O Amazon RDS impede o acesso direto ao armazenamento subjacente usado pela instância de banco de dados. Isso também impede que você exporte diretamente o banco de dados em uma instância de banco de dados do RDS para seu disco local. Em alguns casos, você pode usar funções nativas de backup e restauração usando utilitários de cliente. Por exemplo, você pode usar o comando mysqldump com um banco de dados MySQL do Amazon RDS para exportar um banco de dados para sua máquina cliente local. Em alguns casos, o Amazon RDS também fornece opções aumentadas para realizar um backup e restauração nativos de um banco de dados. Por exemplo, o Amazon RDS fornece procedimentos armazenados para exportar e importar backups de bancos de dados RDS de bancos de dados SQL Server.

Certifique-se de testar minuciosamente o processo de restauração do banco de dados e seu impacto nos clientes do banco de dados como parte de sua abordagem geral de backup e restauração.

Usando registros DNS CNAME para reduzir o impacto no cliente durante a recuperação do banco de dados

Quando você restaura um banco de dados usando PITR ou um snapshot de instância de banco de dados do RDS, uma nova instância de banco de dados com um novo endpoint é criada. Dessa forma, você pode criar várias instâncias de banco de dados a partir de um DB snapshot ou point-in-time específico. Há considerações especiais ao restaurar uma instância de banco de dados do RDS para substituir uma instância de banco de dados ativa do RDS. Por exemplo, você deve determinar como redirecionará seus clientes de banco de dados existentes para a nova instância com o mínimo de interrupção e modificação. Você também deve garantir a continuidade e a consistência dos dados no banco de dados considerando o tempo de restauração dos dados e o tempo de recuperação quando a nova instância começa a receber gravações.

Você pode criar um registro DNS CNAME separado que aponta para o endpoint da sua instância de banco de dados e fazer com que seus clientes usem esse nome DNS. Em seguida, você pode atualizar o CNAME para apontar para um novo endpoint restaurado sem precisar atualizar seus clientes de banco de dados.

Defina o tempo de vida (TTL) do seu registro CNAME com um valor apropriado. O TTL que você especifica determina por quanto tempo o registro é armazenado em cache com resolvedores de DNS antes que outra solicitação seja feita. É importante observar que alguns resolvedores ou aplicativos de DNS podem não respeitar o TTL e podem armazenar o registro em cache por mais tempo do que o TTL. Para o Amazon Route 53, se você especificar um valor mais longo (por exemplo, 172800 segundos ou dois dias), reduzirá o número de chamadas que os resolvedores recursivos de DNS devem fazer ao Route 53 para obter as informações mais recentes neste registro. Isso tem o efeito de reduzir a latência e reduzir sua fatura para o serviço do Route 53. Para obter mais informações, consulte Como o Amazon Route 53 roteia o tráfego para seu domínio.

Aplicativos e sistemas operacionais clientes também podem armazenar em cache as informações de DNS que você precisa limpar ou reiniciar para iniciar uma nova solicitação de resolução de DNS e recuperar o registro CNAME atualizado.

Ao iniciar uma restauração do banco de dados e transferir o tráfego para a instância restaurada, verifique se todos os seus clientes estão gravando na instância restaurada em vez da instância anterior. Sua arquitetura de dados pode oferecer suporte à restauração do banco de dados, à atualização do DNS para transferir o tráfego para a instância restaurada e, em seguida, à correção de quaisquer dados que ainda possam estar gravados na instância anterior. Se esse não for o caso, você pode interromper sua instância existente antes de atualizar o registro DNS CNAME. Então, todo o acesso é da sua instância recém-restaurada. Isso pode causar temporariamente problemas de conexão para alguns de seus clientes de banco de dados, que você pode manipular individualmente. Para reduzir o impacto no cliente, você pode executar a restauração do banco de dados durante uma janela de manutenção.

Escreva seus aplicativos para lidar com falhas de conexão de banco de dados normalmente com novas tentativas usando o recuo exponencial. Isso permite que seu aplicativo se recupere quando uma conexão de banco de dados fica indisponível durante uma restauração sem causar uma falha inesperada no aplicativo.

Depois de concluir o processo de restauração, você pode manter sua instância anterior em um estado interrompido. Ou você pode usar as regras do grupo de segurança para limitar o tráfego para sua instância anterior até ter certeza de que ela não é mais necessária. Para uma abordagem de descomissionamento gradual, primeiro limite o acesso a um banco de dados em execução pelo grupo de segurança. Eventualmente, você poderá interromper a instância quando ela não for mais necessária. Por fim, tire um instantâneo da instância do banco de dados e exclua-o.