사용자가 업로드 한 파일을 S3에 저장하는 웹 서버를 실행하는 EC2 인스턴스가 있습니다. 파일은 한 번 작성되고 변경되지 않지만 때때로 사용자가 검색합니다. 우리는 매년 약 200-500GB의 데이터를 축적 할 것입니다. 우리는이 데이터가 특히 실수로 삭제되는 것을 방지하고 이유와 상관없이 삭제 된 파일을 복원 할 수 있기를 원합니다.
S3 버킷의 버전 관리 기능에 대해 읽었지만 수정 기록이없는 파일의 복구가 가능한지 알 수 없습니다. 버전 관리에 대한 AWS 문서는 여기를 참조하십시오.
http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html
이 예에서는 데이터가 업로드되었지만 수정 된 후 삭제되지 않은 시나리오를 보여주지 않습니다. 이 시나리오에서 삭제 된 파일은 복구 가능합니까?
그런 다음 객체 수명주기 관리를 사용하여 S3 파일을 Glacier에 백업 할 수 있다고 생각했습니다.
http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
그러나 파일 객체가 Glacier로 복사되지 않고 Glacier로 이동했기 때문에 이것이 작동하지 않는 것 같습니다 (보다 정확하게는 변경된 객체 속성 인 것처럼 보이지만 어쨌든 ...).
따라서 S3 데이터를 백업하는 직접적인 방법이없는 것 같으며 S3에서 로컬 서버로 데이터를 전송하는 데 시간이 오래 걸리고 시간이 지남에 따라 상당한 전송 비용이 발생할 수 있습니다.
마지막으로, 매월 전체 백업으로 사용할 새 버킷을 만들고 1 일에 원래 버킷의 데이터를 새 버킷에 복사한다고 생각했습니다. 그런 다음 duplicity ( http://duplicity.nongnu.org/ ) 매일 밤 백업 버킷을 동기화합니다. 월말에 백업 버킷의 내용을 Glacier 스토리지에 저장하고 기존 버킷의 새 사본을 사용하여 새 백업 버킷을 생성하고이 과정을 반복합니다. 이것은 작동하고 스토리지 / 전송 비용을 최소화하는 것처럼 보이지만 데이터를 제어 클라이언트로 먼저 가져 가지 않고 이중화로 버킷 간 전송을 직접 허용하는지 확실하지 않습니다.
여기 몇 가지 질문이 있습니다. 첫째, S3 버전 관리를 통해 수정되지 않은 파일을 복구 할 수 있습니까? 내가 놓친 S3에서 Glacier로 파일을 "복사"할 수있는 방법이 있습니까? 전송 비용을 피하기 위해 이중성 또는 기타 도구가 S3 버킷간에 파일을 직접 전송할 수 있습니까? 마지막으로 S3 데이터 백업에 대한 접근 방식에서 벗어나지 않습니까?
당신이 제공 할 수있는 통찰력에 미리 감사드립니다!