Por Mateus Pereira, Arquiteto de Soluções Sênior de Parceiros na AWS.
No universo tecnológico, garantir a transferência segura e eficiente de dados é essencial para as operações de negócios críticos. À medida que a infraestrutura de TI das empresas se expande, aumenta a necessidade de gerenciar grandes volumes de dados distribuídos em diferentes locais, bem como a demanda por mantê-los sincronizados. Nesse cenário, quando surge a necessidade de automatizar e acelerar as transferências de dados entre o armazenamento local e os serviços de nuvem da AWS, utilizar o AWS DataSync se destaca como uma solução eficaz.
Entendendo o AWS DataSync
O AWS DataSync é um serviço totalmente gerenciado projetado para automatizar transferências de dados entre armazenamento local e a AWS. Seja para mover grandes volumes de dados para o Amazon S3, Amazon EFS ou Amazon FSx, o DataSync facilita a migração e a sincronização de dados de forma mais rápida e econômica. Ele simplifica o movimento de dados para casos de uso como backups na nuvem, archiving, recuperação de desastres e migrações de dados em grande escala.
Desafios das Sincronizações com Intervalos Curtos
Muitas empresas lidam com requisitos de dados que exigem atualizações sub-horárias. Por exemplo, se seus dados mudam a cada poucos minutos — como em uma plataforma de e-commerce ou sistema de IoT — esperar uma hora por uma sincronização pode resultar em dados desatualizados ou inconsistentes.
Embora o DataSync tenha, nativamente, um período de sincronização mínimo de 1 hora, a automação combinada com outras ferramentas da AWS pode permitir que você agende tarefas para sincronizar seus dados em intervalos menores. Neste post, vamos ver como usar serviços como Amazon EventBridge, AWS Lambda e AWS Step Functions para criar fluxos de trabalho personalizados que possibilitam sincronizações de dados sub-horárias utilizando o AWS DataSync.
Benefícios de Automatizar Tarefas do DataSync em Intervalos Sub-Horários
Maior Eficiência e Consistência dos Dados: Sincronizações frequentes garantem que seus dados na AWS estejam sempre atualizados, proporcionando uma representação mais precisa dos dados mais recentes. Isso leva a uma melhor tomada de decisões, acesso mais rápido aos dados e menos inconsistências em aplicativos críticos para os negócios.
Redução da Latência no Acesso aos Dados: Com sincronizações mais frequentes, aplicativos que dependem de dados em tempo real terão uma latência menor. Seja executando análises ou fornecendo conteúdo dinâmico, a automação das sincronizações sub-horárias garante que seus usuários acessem dados frescos.
Redução do Esforço Operacional: Ao automatizar o agendamento das tarefas sub-horárias do DataSync, você elimina a necessidade de intervenção manual. Com essa automação, sua equipe pode se concentrar em tarefas mais valiosas, em vez de monitorar sincronizações ou lidar com falhas.
Automatizando o Agendamento de Tasks do DataSync
Configurando o AWS DataSync
Antes de detalharmos na automação, verifique se você configurou corretamente o AWS DataSync para gerenciar suas tarefas de transferência de dados.
Criando uma Tarefa no DataSync
- Faça login no Console de Gerenciamento da AWS e acesse o console do AWS DataSync.
- Crie uma Nova Task: Configure os locais de origem e destino. A origem pode ser um servidor NFS local, e o destino pode ser o Amazon S3 ou EFS.
- Configure as Configurações da Task: Escolha suas opções desejadas, como filtragem de dados, verificação e configurações de largura de banda.
- Teste a Task: Certifique-se de que a tarefa está sendo executada com sucesso antes de automatizá-la.
Automatizando Sincronizações de Tasks com AWS EventBridge
O Amazon EventBridge permite a criação de regras que acionam eventos e serviços em intervalos de tempo. Combinadas com funções do AWS Lambda, é possível automatizar tasks do DataSync em períodos específicos, sem depender dos intervalos pré-definidos pelo serviço.
Configurando o EventBridge para acionar tasks do AWS DataSync
- Acesse o Console do EventBridge: No Console de Gerenciamento da AWS, vá para o console do EventBridge.
- Crie uma nova regra (rule): Selecione “Criar regra” (create rule) no painel do EventBridge.
- Defina o Agendamento: Em “Tipo de regra” (rule type), escolha “Agendado” (Schedule) e selecione “Continuar no EventBridge Scheduler” (Continue in EventBridge Scheduler):
- A cada 30 minutos: cron(0,30 * * * ? *)
- A cada 15 minutos: cron(0,15,30,45 * * * ? *)
- Escolha o Alvo: Na seção “Alvos”, escolha o AWS Lambda (explicado abaixo) como o alvo a ser executado
- Salve a Regra: Após a configuração, salve e habilite a regra.
Criando a função Lambda para ser acionada pela regra do CloudWatch Events
No código da função Lambda a ser criada, você irá detalhar qual task deve ser acionada sempre que a função entrar em execução. Dessa forma o EventBridge definirá qual será a frequência e o Lambda definrá quais serão as tasks a serem executadas. No console do Lambda, crie uma função que inicie a tarefa do DataSync usando o SDK da AWS para Python (boto3):
import boto3
def lambda_handler(event, context):
client = boto3.client('datasync')
# Substitua pelo ARN da sua Tarefa do DataSync
task_arn = 'arn:aws:datasync:region:account-id:task/task-id'
# Inicie a execução da tarefa do DataSync
response = client.start_task_execution(
TaskArn=task_arn
)
return response
Implemente a Função Lambda: Salve e implemente a função, garantindo que ela tenha as permissões adequadas para interagir com o AWS DataSync. Uma vez criada a função Lambda e o evento no CloudWatch, a execução da task do DataSync será acionada na frequência desejada, permitindo assim sincronizações sub-horárias dos dados.
Monitorando e Gerenciando Tarefas Automatizadas Sub-Horárias com o CloudWatch
Após automatizar suas tarefas, é importante monitorar sua execução e desempenho:
- Monitore os Logs: Verifique os Logs do CloudWatch para os detalhes da execução da função Lambda e verifique o sucesso ou falha de cada task do DataSync.
- Configure Alarmes: Configure Alarmes do CloudWatch para notificá-lo se alguma task do DataSync falhar ou apresentar atrasos. Por exemplo, você pode monitorar se a execução de uma tarefa levar mais tempo do que o esperado ou falhar ao iniciar.
Melhores Práticas para Gerenciar Sincronizações:
- Otimize os Intervalos de Sincronização: Embora as sincronizações sub-horárias sejam úteis, evite intervalos excessivamente frequentes, que podem gerar custos desnecessários. Avalie seu caso de uso para determinar o intervalo de sincronização ideal.
- Tratamento de Erros: Incorpore lógica de tratamento de erros na função Lambda para gerenciar problemas como falhas de transferência ou interrupções de rede.
Conclusão
Embora o AWS DataSync não ofereça suporte nativo para sincronizações em períodos menores que 1 hora, a combinação do AWS EventBridge e AWS Lambda permite automatizar essas tarefas, garantindo que seus dados estejam sempre sincronizados. Com esse nível de automação, sua organização pode melhorar a eficiência, reduzir os custos operacionais e otimizar o gerenciamento de dados. Implementar esses métodos de sincronização vai garantir que você mantenha seus dados sempre atualizados e acessíveis com mínimo esforço operacional, aproveitando ao máximo os recursos da AWS.
Autor
![]() | Mateus Pereira é um Arquiteto de Soluções Sênior de Parceiros na AWS, atuando na região de LATAM. Sua experiência profissional anterior inclui desenvolvimento de software, arquitetura de aplicações em núvem com foco em virtualização, armazenamento e proteção de dados. Bacharel em Sistemas de Informação e MBA em Arquitetura de Soluções. |