Cloud & Infraestrutura

AWS Backup: Políticas Centralizadas e Recuperação de Desastres: Do Básico ao Avançado

7 min de leitura

AWS Backup: Políticas Centralizadas e Recuperação de Desastres: Do Básico ao Avançado

Fundamentos do AWS Backup O AWS Backup é um serviço centralizado que simplifica a proteção de dados em múltiplos serviços AWS. Ao invés de configurar soluções individuais para EC2, RDS, EFS e outros, você gerencia tudo em um único painel. Uma política de backup define o quê, quando e por quanto tempo fazer backup automaticamente, eliminando a necessidade de scripts manuais e reduzindo significativamente o risco de perda de dados. A estratégia começa com a definição clara de seus Objetivos de Ponto de Recuperação (RPO) e Objetivo de Tempo de Recuperação (RTO). RPO é quanto tempo de dados você pode perder (ex: 24 horas), enquanto RTO é quanto tempo pode ficar sem o serviço (ex: 4 horas). Essas métricas guiam toda a configuração de backups, frequência e retenção. Para começar, acesse o console AWS Backup e explore os planos de backup pré-configurados. Configuração de Políticas Centralizadas Criando um Plano de Backup Você configurará um plano que especifica regras de backup

<h2>Fundamentos do AWS Backup</h2>

<p>O AWS Backup é um serviço centralizado que simplifica a proteção de dados em múltiplos serviços AWS. Ao invés de configurar soluções individuais para EC2, RDS, EFS e outros, você gerencia tudo em um único painel. Uma política de backup define <em>o quê</em>, <em>quando</em> e <em>por quanto tempo</em> fazer backup automaticamente, eliminando a necessidade de scripts manuais e reduzindo significativamente o risco de perda de dados.</p>

<p>A estratégia começa com a definição clara de seus Objetivos de Ponto de Recuperação (RPO) e Objetivo de Tempo de Recuperação (RTO). RPO é quanto tempo de dados você pode perder (ex: 24 horas), enquanto RTO é quanto tempo pode ficar sem o serviço (ex: 4 horas). Essas métricas guiam toda a configuração de backups, frequência e retenção. Para começar, acesse o console AWS Backup e explore os planos de backup pré-configurados.</p>

<h2>Configuração de Políticas Centralizadas</h2>

<h3>Criando um Plano de Backup</h3>

<p>Você configurará um plano que especifica regras de backup para múltiplos recursos. Cada regra define frequência, janela de tempo e política de retenção. O exemplo abaixo usa Boto3, o SDK Python da AWS:</p>

<pre><code class="language-python">import boto3

from datetime import datetime, timedelta

backup_client = boto3.client(&#039;backup&#039;, region_name=&#039;us-east-1&#039;)

Criar um plano de backup centralizado

response = backup_client.create_backup_plan(

BackupPlan={

&#039;BackupPlanName&#039;: &#039;plano-critico-producao&#039;,

&#039;BackupPlanRule&#039;: [

{

&#039;RuleName&#039;: &#039;backup-diario-retenção-30-dias&#039;,

&#039;TargetBackupVaultName&#039;: &#039;cofre-backup-central&#039;,

&#039;ScheduleExpression&#039;: &#039;cron(0 2 ? *)&#039;, # 2h da manhã todo dia

&#039;StartWindowMinutes&#039;: 60,

&#039;CompletionWindowMinutes&#039;: 120,

&#039;Lifecycle&#039;: {

&#039;DeleteAfterDays&#039;: 30,

&#039;MoveToColdStorageAfterDays&#039;: 7 # Move para storage frio após 7 dias

},

&#039;RecoveryPointTags&#039;: {

&#039;Ambiente&#039;: &#039;producao&#039;,

&#039;Criticidade&#039;: &#039;alta&#039;

}

},

{

&#039;RuleName&#039;: &#039;backup-semanal-retenção-90-dias&#039;,

&#039;TargetBackupVaultName&#039;: &#039;cofre-backup-central&#039;,

&#039;ScheduleExpression&#039;: &#039;cron(0 3 ? 1 )&#039;, # Domingo 3h da manhã

&#039;Lifecycle&#039;: {

&#039;DeleteAfterDays&#039;: 90

}

}

]

}

)

print(f&quot;Plano criado: {response[&#039;BackupPlanArn&#039;]}&quot;)</code></pre>

<h3>Atribuindo Recursos ao Plano</h3>

<p>Depois de criar o plano, você precisa atribuir recursos (EC2, RDS, EFS, etc.) a ele através de seleção de tags ou ARNs específicos:</p>

<pre><code class="language-python"># Atribuir todos os recursos RDS com tag &#039;Backup=Sim&#039; ao plano

backup_client.create_backup_selection(

BackupPlanId=&#039;plano-critico-producao&#039;,

BackupSelection={

&#039;SelectionName&#039;: &#039;recursos-rds-criticos&#039;,

&#039;IamRoleArn&#039;: &#039;arn:aws:iam::123456789012:role/AWSBackupServiceRole&#039;,

&#039;Resources&#039;: [], # Vazio para usar ListOfTags

&#039;ListOfTags&#039;: [

{

&#039;ConditionType&#039;: &#039;STRINGEQUALS&#039;,

&#039;ConditionKey&#039;: &#039;Backup&#039;,

&#039;ConditionValue&#039;: &#039;Sim&#039;

}

]

}

)

print(&quot;Seleção de recursos criada com sucesso&quot;)</code></pre>

<h2>Recuperação de Desastres Avançada</h2>

<h3>Restauração Granular e em Larga Escala</h3>

<p>A verdadeira força do AWS Backup surge quando você precisa recuperar dados. O serviço oferece desde restauração completa de instâncias até recuperação de tabelas individuais em bancos de dados RDS. Para uma estratégia robusta de DR, configure vaults em regiões distintas:</p>

<pre><code class="language-python"># Copiar backups para outra região automaticamente

backup_client.create_backup_vault(

BackupVaultName=&#039;cofre-dr-us-west-2&#039;,

EncryptionKeyArn=&#039;arn:aws:kms:us-west-2:123456789012:key/12345678-1234-...&#039;

)

Adicionar uma regra de cópia na política de backup

backup_client.update_backup_plan(

BackupPlanId=&#039;plano-critico-producao&#039;,

BackupPlan={

&#039;BackupPlanName&#039;: &#039;plano-critico-producao&#039;,

&#039;BackupPlanRule&#039;: [

{

&#039;RuleName&#039;: &#039;backup-diario-com-copia-dr&#039;,

&#039;TargetBackupVaultName&#039;: &#039;cofre-backup-central&#039;,

&#039;ScheduleExpression&#039;: &#039;cron(0 2 ? *)&#039;,

&#039;Lifecycle&#039;: {

&#039;DeleteAfterDays&#039;: 30,

&#039;MoveToColdStorageAfterDays&#039;: 7

},

&#039;CopyActions&#039;: [

{

&#039;LifecycleToDelete&#039;: {

&#039;DeleteAfterDays&#039;: 90

},

&#039;DestinationVaultArn&#039;: &#039;arn:aws:backup:us-west-2:123456789012:backup-vault:cofre-dr-us-west-2&#039;

}

]

}

]

}

)</code></pre>

<h3>Testando Recuperação</h3>

<p>Nunca assuma que seus backups funcionam — teste regularmente. Crie um pipeline de testes automatizados que restaura recursos em ambiente de staging:</p>

<pre><code class="language-python"># Listar os últimos 5 pontos de recuperação de um recurso RDS

recovery_points = backup_client.list_recovery_points_by_resource(

ResourceArn=&#039;arn:aws:rds:us-east-1:123456789012:db:meu-banco&#039;,

ByBackupVaultType=&#039;AWSBACKUP&#039;

)

if recovery_points[&#039;RecoveryPoints&#039;]:

latest_rp = recovery_points[&#039;RecoveryPoints&#039;][0]

Restaurar em uma instância RDS de teste

rds_client = boto3.client(&#039;rds&#039;, region_name=&#039;us-east-1&#039;)

restore_response = backup_client.start_restore_job(

RecoveryPointArn=latest_rp[&#039;RecoveryPointArn&#039;],

IamRoleArn=&#039;arn:aws:iam::123456789012:role/AWSBackupServiceRole&#039;,

Metadata={

&#039;availabilityZone&#039;: &#039;us-east-1a&#039;,

&#039;dbInstanceIdentifier&#039;: &#039;meu-banco-teste-restore&#039;

}

)

print(f&quot;Restauração iniciada: Job ID {restore_response[&#039;RestoreJobId&#039;]}&quot;)</code></pre>

<h2>Monitoramento e Otimização</h2>

<p>Configurar backups é apenas o começo. Monitore continuamente a saúde dos backups e otimize custos. Use o CloudWatch para alertas em caso de falhas:</p>

<pre><code class="language-python">cloudwatch = boto3.client(&#039;cloudwatch&#039;, region_name=&#039;us-east-1&#039;)

Criar alarme para falhas de backup

cloudwatch.put_metric_alarm(

AlarmName=&#039;backup-jobs-falhando&#039;,

MetricName=&#039;FailedBackupJobs&#039;,

Namespace=&#039;AWS/Backup&#039;,

Statistic=&#039;Sum&#039;,

Period=3600,

EvaluationPeriods=1,

Threshold=1,

ComparisonOperator=&#039;GreaterThanOrEqualToThreshold&#039;,

AlarmActions=[&#039;arn:aws:sns:us-east-1:123456789012:topic-alertas-criticos&#039;]

)

Monitore também o tamanho total de backups para controlar custos

storage_usage = backup_client.describe_backup_vault(

BackupVaultName=&#039;cofre-backup-central&#039;

)

print(f&quot;Espaço utilizado: {storage_usage[&#039;EncryptionKeyArn&#039;]}&quot;)</code></pre>

<p>Além disso, use AWS Backup Audit Manager para validar conformidade com políticas corporativas e regulatórias. Configure relatórios automáticos que mostrem RPO/RTO alcançados versus planejados.</p>

<h2>Conclusão</h2>

<p>Três pontos críticos para dominar AWS Backup: Primeiro, <strong>defina RPO e RTO antes de qualquer configuração</strong> — essas métricas devem guiar sua estratégia de retenção e frequência. Segundo, <strong>automatize tudo através de políticas centralizadas</strong>, eliminando manual work e inconsistências. Terceiro, <strong>teste continuamente suas recuperações</strong> — um backup que nunca foi testado é apenas um arquivo que ocupa espaço. Combine AWS Backup com multi-região replication e você terá uma estratégia de DR verdadeiramente robusta.</p>

<h2>Referências</h2>

<ul>

<li><a href="https://docs.aws.amazon.com/aws-backup/" target="_blank" rel="noopener noreferrer">AWS Backup Official Documentation</a></li>

<li><a href="https://docs.aws.amazon.com/aws-backup/latest/devguide/best-practices.html" target="_blank" rel="noopener noreferrer">AWS Backup Best Practices Guide</a></li>

<li><a href="https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/backup.html" target="_blank" rel="noopener noreferrer">Boto3 AWS Backup Client Reference</a></li>

<li><a href="https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/welcome.html" target="_blank" rel="noopener noreferrer">AWS Well-Architected Framework - Reliability Pillar</a></li>

<li><a href="https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/" target="_blank" rel="noopener noreferrer">Disaster Recovery of Workloads on AWS - White Paper</a></li>

</ul>

Comentários

Mais em Cloud & Infraestrutura

Como Usar API Gateway: REST API, HTTP API e WebSocket API na Prática em Produção
Como Usar API Gateway: REST API, HTTP API e WebSocket API na Prática em Produção

Entendendo as Três Arquiteturas do API Gateway O AWS API Gateway oferece três...

Guia Completo de Migração para AWS: Estratégias 6R, MGN e Database Migration Service
Guia Completo de Migração para AWS: Estratégias 6R, MGN e Database Migration Service

As Estratégias 6R: Entendendo o Framework As estratégias 6R (Rehost, Replatfo...

EC2 Auto Scaling: Launch Templates, Policies e Predictive Scaling: Do Básico ao Avançado
EC2 Auto Scaling: Launch Templates, Policies e Predictive Scaling: Do Básico ao Avançado

Launch Templates: Fundação do Auto Scaling Um Launch Template é um blueprint...