¿Cuál es una forma práctica de reflejar un bucket de Amazon S3?


9

Quiero reflejar mis cubos de Amazon S3. Quiero hacer esto porque 1) No quiero que todos mis datos solo existan con un proveedor; y 2) en caso de error de software o violación de la seguridad, quiero hacer una copia de seguridad de los datos.

Puedo duplicar en un disco local con la función de sincronización s3cmd, pero eso no escala para depósitos muy grandes y no es útil para restauraciones rápidas de copias de seguridad. Prefiero que mis datos se reflejen en un competidor como Rackspace Cloud Files.

¿Alguien tiene algunas sugerencias sobre una forma simple y robusta para facilitar este tipo de duplicación de forma automatizada en una caja de Linux?


¿Estoy en lo cierto al suponer que ninguna de las respuestas realmente resuelve "1) No quiero que todos mis datos solo existan con un proveedor", porque todos ellos simplemente reflejan los cubos dentro del mismo proveedor?
Chris

Respuestas:


6

Puede usar la utilidad " s3cmd " con la opción "sincronización", aunque me topé con su pregunta porque estoy tratando de averiguar si este mecanismo de sincronización está arruinando mis copias de seguridad de duplicidad.


esta es la mejor solución que he encontrado s3tools.org/s3cmd-sync
John Bachir

5

Estaba teniendo el mismo problema, así que preparé un pequeño programa específicamente diseñado para reflejar un cubo S3 en otro; Lo llamo s3s3mirror.

Primero probé el enfoque de "sincronización s3cmd", pero tenía un cubo con cientos de miles de objetos, y la "sincronización s3cmd" simplemente se quedó allí, sin hacer nada más que consumir más y más memoria hasta que mi sistema se apagó. Diseñé s3s3mirror para comenzar de inmediato, usar 100 hilos concurrentes (configurables) y hacer un uso modesto de la CPU y la memoria. Si lo digo yo mismo, es bastante rápido.

He puesto esto a disposición en github bajo una licencia de Apache. Si decides darle un giro, avísame qué piensas y si hay algo que pueda mejorarse.

Aquí está el enlace: https://github.com/cobbzilla/s3s3mirror

¡Gracias!

  • Jonathan.

Gracias por su trabajo, he hecho un contenedor acoplable ejecutable con esto y ya lo uso en producción: github.com/pmoust/s3s3mirror-docker
Panagiotis Moustafellos

4

Amazon ahora tiene una herramienta compatible para hacer esto, aws cli .

Puede reflejarse en cualquier dirección entre local y remoto, o entre dos ubicaciones s3.

Desafortunadamente, no tiene soporte directo para ubicaciones que no sean S3 como el espacio en rack, pero pensé que esta sería una respuesta útil para algunos que encuentren esta pregunta. Como yo, antes de encontrarlo.

En particular,

aws s3 sync s3://some/s3/path /some/local/path

2

Echa un vistazo a Jungle Disk Server . Funciona con Amazon S3 y Rackspace Cloud Files. Puede montar S3 y CF en diferentes ubicaciones en su sistema de archivos y luego usar rsync entre los dos.


Gracias, pero debería haber mencionado que estoy buscando una solución que pueda ejecutar como un trabajo cron en una caja de Linux. He actualizado la pregunta.
Ben

2

Puede intentar montar los cubos con fusible usando s3fs . Una vez hecho esto, puede rsync desde el punto de montaje a su disco local.


1
+1 para s3fs, acabo de enviar un parche para admitir archivos de hasta 5 TB de tamaño.
ben lemasurier

1

Puede configurar el servidor Minio , el código abierto y la API compatible con S3. Puede configurarlo en EC2 o en cualquier proveedor de la nube como su servidor alternativo y usar el comando de clientes Minio mc mirror tomar el espejo de S3 periódicamente. Puede automatizar lo mismo escribiendo un script cron simple.

Espero eso ayude. Descargo de responsabilidad: trabajo para Minio


1

Para la sincronización en línea de los depósitos, puede usar la replicación entre regiones. De esta forma, todas las actualizaciones del depósito original se sincronizarán automáticamente con el depósito S3 en otra región: https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html

Tenga en cuenta que requiere versiones habilitadas para el depósito, por lo que si realiza actualizaciones / eliminaciones de objetos en los depósitos mucho, querrá habilitar la política de ciclo de vida para eliminar objetos antiguos.


Esto es lo que elegimos usar, pero tenga en cuenta que la replicación no es lo mismo que duplicar. La gran diferencia es que las eliminaciones no se propagan entre el origen y el destino (el destino actualizará los archivos que cambian, pero parece que nunca los eliminará).
Scott Gartner
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.