Tengo una instancia EC2 que ejecuta un servidor web que almacena los archivos cargados de los usuarios en S3. Los archivos se escriben una vez y nunca cambian, pero los usuarios los recuperan ocasionalmente. Es probable que acumulemos entre 200 y 500 GB de datos por año. Nos gustaría asegurarnos de que estos datos estén seguros, particularmente de eliminaciones accidentales y nos gustaría poder restaurar archivos que fueron eliminados independientemente de la razón.
He leído sobre la función de control de versiones para los cubos S3, pero parece que no puedo encontrar si es posible la recuperación de archivos sin historial de modificaciones. Consulte los documentos de AWS aquí sobre versiones:
http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html
En esos ejemplos, no muestran el escenario donde se cargan los datos, pero nunca se modifican y luego se eliminan. ¿Se pueden recuperar los archivos eliminados en este escenario?
Luego, pensamos que podríamos hacer una copia de seguridad de los archivos S3 en Glacier usando la gestión del ciclo de vida de los objetos:
http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
Pero, parece que esto no funcionará para nosotros, ya que el objeto de archivo no se copia en Glacier sino que se mueve a Glacier (más exactamente parece que es un atributo de objeto que se cambia, pero de todos modos ...).
Por lo tanto, parece que no hay una forma directa de hacer una copia de seguridad de los datos de S3, y transferir los datos de S3 a servidores locales puede llevar mucho tiempo y generar costos de transferencia significativos con el tiempo.
Finalmente, pensamos que crearíamos un nuevo depósito cada mes para servir como una copia de seguridad completa mensual, y copiaríamos los datos del depósito original al nuevo el Día 1. Luego, usaríamos algo como duplicidad ( http://duplicity.nongnu.org/ ) sincronizaríamos el depósito de respaldo todas las noches. Al final del mes, pondríamos el contenido del depósito de respaldo en el almacenamiento de Glacier, y crearíamos un nuevo depósito de respaldo usando una copia nueva y actual del depósito original ... y repetiríamos este proceso. Parece que funcionaría y minimizaría los costos de almacenamiento / transferencia, pero no estoy seguro de si la duplicidad permite transferencias de cubo a cubo directamente sin llevar primero los datos al cliente controlador.
Entonces, supongo que hay un par de preguntas aquí. Primero, ¿las versiones de S3 permiten la recuperación de archivos que nunca fueron modificados? ¿Hay alguna forma de "copiar" archivos de S3 a Glacier que me haya perdido? ¿La duplicidad o cualquier otra herramienta pueden transferir archivos entre cubos S3 directamente para evitar costos de transferencia? Finalmente, ¿estoy fuera de lugar en mi enfoque para hacer una copia de seguridad de los datos de S3?
Gracias de antemano por cualquier idea que pueda proporcionar!
Actualizar
Amazon anunció recientemente que el control de versiones ahora funciona con reglas de ciclo de vida
fuente
Respuestas:
Acabo de probar esto. Sí, puedes restaurar desde la versión original. Cuando elimina el archivo, se crea un marcador de eliminación y puede restaurar la versión anterior, es decir, la única revisión.
Glacier está realmente destinado al almacenamiento a largo plazo, al que se accede con muy poca frecuencia. También puede ser muy costoso recuperar una gran parte de sus datos de una sola vez, ya que no está destinado a la restauración de muchos datos en un momento dado (porcentaje porcentual).
No hagas esto, solo puedes tener 100 depósitos por cuenta, por lo que en 3 años habrás tomado un tercio de tu asignación de depósito con solo copias de seguridad.
si
No que yo sepa
fuente
no me gusta tener s3 montado, porque es lento y puede colgar y funciona como nfs de la vieja escuela. mejor simplemente subir / bajar según sea necesario.
es fácil de script ... no olvides tu archivo ~ / .s3cfg
fuente
Parece que podría necesitar S3FS, que básicamente monta sus cubos S3 como si fueran sistemas de archivos locales:
http://code.google.com/p/s3fs/wiki/FuseOverAmazon
Prefiero usar esta versión bifurcada, ya que conserva la misma estructura de carpetas que la creada en el panel de control web para Amazon S3:
https://github.com/tongwang/s3fs-c
Luego tengo algunos scripts de shell que básicamente se usan
rsync
para sincronizar los datos con mis configuraciones locales.En general, considero que S3FS funciona mejor para leer contenido colocado dentro de los cubos de Amazon S3. Escribir no es tan consistente. Pero con el propósito de hacer una copia de seguridad de los cubos S3, la horquilla Tony Wang de S3FS funciona muy bien.
fuente