Nossos clientes têm compartilhamentos de arquivos do Windows onde armazenam muitos documentos diferentes.
Queremos ingerir arquivos que correspondam a padrões curinga (por exemplo *.pdf
, *.xlsx
, , etc.) desses compartilhamentos de arquivos em buckets S3 para fins de construção de um data lake.
Estamos considerando várias alternativas, mas achamos que algumas pessoas poderiam ter ideias melhores sobre como fazer isso:
Execute o software agente nos servidores de arquivos Windows dos clientes.
1.a. Escreva um script do PowerShell que invoque
rclone
a cópia de arquivos novos/modificados/excluídos para o S3 e chame uma API HTTP de relatório para nos informar se foi bem-sucedido ou falhou e agende esse script para ser executado periodicamente usando o agendador de tarefas.1.b. Faça a mesma coisa, mas usando
aws s3 sync
fromaws-cli
.1.c. Homeroll nosso próprio uploader baseado no Facebook Watchman ou solução semelhante de observação de arquivos.
Configure um servidor SFTP ou WebDAV no servidor de arquivos do cliente e execute
rclone
a partir de uma instância EC2 que gerenciamos.
Queremos saber se não há outra tecnologia mais simples que possamos usar. O Amazon FSx poderia ajudar de alguma forma? Como algum tipo de mecanismo de replicação automática para espelhar nossos compartilhamentos de arquivos de clientes em sistemas de arquivos Windows do Amazon FSx?
Ou talvez exista algum outro tipo de solução "crie seu próprio Dropbox usando um back-end do Amazon S3"?
Responder1
Você poderia usar o Cloudberry Backup, é um aplicativo de sincronização unilateral. Instale-o no Windows Server, adicione a conta S3, configure o caminho do arquivo local com filtro de formato de arquivo e destino para seu bucket S3. Este aplicativo contém um agendador próprio e pode ser executado automaticamente. Até agora esta é a solução que estou usando. O AWS CLI ou outro aplicativo de código aberto como o FreeFileSync não é capaz de atender aos meus requisitos, pois esses aplicativos precisam verificar ambos os lados antes da sincronização, com o crescimento de arquivos enormes, isso causou problemas. Mas, no caminho da sincronização, resolvo isso, apenas mantenho os arquivos mais recentes no servidor Windows.