사용자가 업로드 한 파일을 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 데이터 백업에 대한 접근 방식에서 벗어나지 않습니까?
당신이 제공 할 수있는 통찰력에 미리 감사드립니다!
최신 정보
아마존은 최근 버전 관리가 수명주기 규칙과 함께 작동한다고 발표했다
답변
S3 버킷의 버전 관리 기능에 대해 읽었지만 수정 기록이없는 파일에 대해> 복구가 가능한지 찾을 수 없습니다. > versioning에서 AWS 문서를 참조하십시오.
방금 시도했습니다. 예, 원래 버전에서 복원 할 수 있습니다. 파일을 삭제하면 삭제 마커가 만들어지고 그 이전 버전, 즉 단일 버전 만 복원 할 수 있습니다.
그런 다음 객체 수명주기> 관리를 사용하여 S3 파일을 Glacier에 백업 할 수 있다고 생각했습니다.
그러나 파일 객체가 Glacier로 복사되지 않고 Glacier로 이동 되었기 때문에 이것이 작동하지 않는 것 같습니다 (보다 정확하게는 변경된 객체 속성이지만> 어쨌든 …).
Glacier는 실제로 장기 저장을위한 것으로, 매우 드물게 액세스됩니다. 많은 양의 데이터를 특정 시점으로 복원하기위한 것이 아니기 때문에 한 번에 많은 양의 데이터를 검색하는 데 비용이 많이 듭니다.
마지막으로, 매월 전체> 백업으로 사용할 새 버킷을 생성하고 1 일에 원래 버킷의 데이터를 새 버킷에 복사한다고 생각했습니다. 그런 다음> like duplicity ( http : //duplicity.nongnu. org / )> 밤마다 백업 버킷을 동기화합니다.
이 작업을 수행하지 마십시오. 계정 당 버킷 수는 100 개뿐이므로 3 년 안에 백업만으로 버킷 수당의 3 분의 1을 차지하게됩니다.
여기 몇 가지 질문이 있습니다. 첫째, S3 버전 관리를 통해 수정되지 않은 파일을 복구 할 수 있습니까?
예
내가 놓친 S3에서 Glacier로 파일을 “복사”할 수있는 방법이 있습니까?
내가 아는 한에서는 아니다
답변
나는 s3을 마운트하는 것을 좋아하지 않습니다. 왜냐하면 느리고 멈추고 구식 nfs처럼 수행 할 수 있기 때문입니다. 필요에 따라 위 / 아래로하는 것이 좋습니다.
스크립트하기 쉬운 … ~ / .s3cfg 파일을 잊지 마십시오
답변
기본적으로 S3 버킷을 로컬 파일 시스템 인 것처럼 마운트하는 S3FS가 필요할 수 있습니다.
http://code.google.com/p/s3fs/wiki/FuseOverAmazon
이 포크 버전은 Amazon S3의 웹 제어판에서 생성 된 폴더 구조와 동일한 폴더 구조를 유지하므로 선호합니다.
https://github.com/tongwang/s3fs-c
그런 다음 기본적으로 rsync
데이터를 로컬 설정과 동기화하는 데 사용하는 쉘 스크립트가 있습니다.
일반적으로 S3FS는 Amazon S3 버킷에 배치 된 컨텐츠를 읽는 데 가장 적합합니다. 글쓰기는 일관성이 없습니다. 그러나 S3 버킷을 백업하기 위해 S3FS의 Tony Wang 포크가 훌륭하게 작동합니다.