Não tenho certeza se o rsync verdadeiro é adequado para a Amazon.
Pelo que entendi, o algoritmo rsync padrão significa que o cliente calcula hashes para cada bloco de um arquivo e o servidor calcula hashes para sua cópia e envia esses hashes para o cliente, o que significa que o cliente pode determinar quais blocos foram alterados e precisam fazendo o upload.
Isso causa dois problemas para a Amazon, uma vez que muitos hashes têm que ser enviados pela internet e também é preciso ter poder de processamento para calcular todos os hashes que aumentariam os custos da Amazon - o que provavelmente o deixa para terceiros. provedores que podem cobrar extra por esse recurso.
Quanto aos clones, eles estão obviamente armazenando os hashes em algum lugar e o lugar pode variar dependendo do clone. Seria possível para eles armazenar os hashes como um objeto separado por arquivo na Amazon ou como um banco de dados armazenado na Amazon ou eles podem armazená-los local e remotamente.
Existem vantagens e desvantagens de se fazer isso de qualquer forma. Se os hashes forem armazenados remotamente em arquivos individuais, pode ser caro recuperá-los continuamente. Se os hashes são armazenados em um banco de dados remotamente, esse banco de dados pode se tornar grande e pode ser caro recuperá-los e atualizá-los continuamente. Se os hashes são armazenados localmente, isso ajuda a reduzir custos, mas apresenta outras complicações e problemas.
(Claro que a Amazon tem outros serviços, então seria possível manter um banco de dados no Amazon DB)
Como exemplo, experimentei um clone rsync antigo há muitos anos. Isso não foi escrito para levar em conta a estrutura de preços da Amazon e estava emitindo muitos http para recuperar o hash de cada bloco e desde que a Amazon cobrava por cada get, isso significava que enquanto a parte de armazenamento da minha conta caía drasticamente, a parte de transferência com balão.
What do I lose by using duplicity + s3 instead of rsync + s3rsync + s3?
Você perde o fato de que, com o rsync, você sabe que está comparando os arquivos de origem com seus arquivos de backup. Com duplicidade e outros clones, você está comparando seus arquivos de origem com um hash que foi obtido quando o backup foi realizado. Por exemplo, pode ser possível acessar o S3 diretamente e substituir um de seus arquivos sem recomputar o hash ou atualizar o banco de dados de hash.