No estoy seguro de si rsync verdadero es una buena opción para Amazon.
Según tengo entendido, el algoritmo rsync estándar significa que el cliente calcula los hashes para cada bloque de un archivo y el servidor calcula los hashes para su copia y envía esos hashes al cliente, lo que significa que el cliente puede determinar qué bloques han cambiado y necesitan cargarse.
Eso causa dos problemas para Amazon, ya que se deben enviar muchos hashes a través de Internet y también se necesita potencia de procesamiento para calcular todos los hashes que aumentarían los costos de Amazon, lo que probablemente sea la razón por la que se lo dejan a terceros proveedores que pueden cobrar extra por esa característica.
En cuanto a los clones, obviamente están almacenando los hashes en algún lugar y el lugar puede variar según el clon. Les sería posible almacenar los hashes como un objeto separado por archivo en Amazon o como una base de datos almacenada en Amazon o podrían almacenarlos local y remotamente.
Hay ventajas y desventajas de hacerlo de cualquier manera. Si los hashes se almacenan de forma remota en archivos individuales, puede ser costoso recuperarlos continuamente. Si los hash se almacenan en una base de datos de forma remota, entonces esta base de datos puede ser grande y puede ser costoso recuperarlos y actualizarlos continuamente. Si los hashes se almacenan localmente, esto ayuda a reducir los costos, pero introduce otras complicaciones y problemas.
(Por supuesto, Amazon tiene otros servicios, por lo que sería posible mantener una base de datos en Amazon DB)
Como ejemplo, probé un primer clon rsync hace muchos años. Esto no fue escrito para tener en cuenta la estructura de precios de Amazon y emitía muchos http para recuperar el hash de cada bloque y, dado que Amazon cobra por cada compra, significa que mientras la parte de almacenamiento de mi factura cayó bruscamente, la parte de transferencia globo
¿Qué pierdo al usar duplicity + s3 en lugar de rsync + s3rsync + s3?
Pierde el hecho de que con rsync sabe que está comparando archivos fuente con sus archivos de respaldo. Con duplicidad y otros clones, está comparando sus archivos de origen con un hash que se tomó cuando se realizó la copia de seguridad. Por ejemplo, puede ser posible acceder a S3 directamente y reemplazar uno de sus archivos sin volver a calcular el hash o actualizar la base de datos hash.