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