Amazon S3에 저장된 데이터 백업


16

사용자가 업로드 한 파일을 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 데이터 백업에 대한 접근 방식에서 벗어나지 않습니까?

당신이 제공 할 수있는 통찰력에 미리 감사드립니다!

최신 정보

아마존은 최근 버전 관리가 수명주기 규칙과 함께 작동한다고 발표했다


aws.amazon.com/blogs/aws/archive-s3-to-glacier/... + 빙하 S3를 설명 하단에 좋은 짧은 YouTube 동영상이
equivalent8

답변:


10

S3 버킷의 버전 관리 기능에 대해 읽었지만 수정 기록이없는 파일에 대해> 복구가 가능한지 찾을 수 없습니다. > versioning에서 AWS 문서를 참조하십시오.

방금 시도했습니다. 예, 원래 버전에서 복원 할 수 있습니다. 파일을 삭제하면 삭제 마커가 만들어지고 그 이전 버전, 즉 단일 버전 만 복원 할 수 있습니다.

그런 다음 객체 수명주기> 관리를 사용하여 S3 파일을 Glacier에 백업 할 수 있다고 생각했습니다.

그러나 파일 객체가 Glacier로 복사되지 않고 Glacier로 이동 되었기 때문에 이것이 작동하지 않는 것 같습니다 (보다 정확하게는 변경된 객체 속성이지만> 어쨌든 ...).

Glacier는 실제로 장기 저장을위한 것으로, 매우 드물게 액세스됩니다. 많은 양의 데이터를 특정 시점으로 복원하기위한 것이 아니기 때문에 한 번에 많은 양의 데이터를 검색하는 데 비용이 많이 듭니다.

마지막으로, 매월 전체> 백업으로 사용할 새 버킷을 생성하고 1 일에 원래 버킷의 데이터를 새 버킷에 복사한다고 생각했습니다. 그런 다음> like duplicity ( http : //duplicity.nongnu. org / )> 밤마다 백업 버킷을 동기화합니다.

이 작업을 수행하지 마십시오. 계정 당 버킷 수는 100 개뿐이므로 3 년 안에 백업만으로 버킷 수당의 3 분의 1을 차지하게됩니다.

여기 몇 가지 질문이 있습니다. 첫째, S3 버전 관리를 통해 수정되지 않은 파일을 복구 할 수 있습니까?

내가 놓친 S3에서 Glacier로 파일을 "복사"할 수있는 방법이 있습니까?

내가 아는 한에서는 아니다


감사합니다. Sirex, 한 가지 설명 : 한 번에 하나의 백업 버킷 (현재 달) 만 보관하고 지난 달의 백업을 Glacier에 보관 한 다음 일반적인 보존 정책 (각 달에 3 개월 동안)을 삭제합니다. 분기 별 1 년). 이것이 가능하다고 생각합니까, 아니면이 전략을 방해하는 다른 AWS 제한이 있습니까?
Fiver November

흠, 나는 그것이 합리적이라고 생각합니다. 그래도 난 분노 (그 문제에 대한 또는 빙하, 우리가 시드니를 사용하고 우리가 그것으로 보았을 때 그것은 사용할 수 없음) 것을 시도하지했습니다
Sirex

3

나는 s3을 마운트하는 것을 좋아하지 않습니다. 왜냐하면 느리고 멈추고 구식 nfs처럼 수행 할 수 있기 때문입니다. 필요에 따라 위 / 아래로하는 것이 좋습니다.

http://s3tools.org/s3cmd

스크립트하기 쉬운 ... ~ / .s3cfg 파일을 잊지 마십시오


와우, 이거 근사해!
JakeGould

@nandoP +1 s3cmd를 사용하고 내 자신을 굴리는 것을 생각했습니다
Fiver

1

기본적으로 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 포크가 훌륭하게 작동합니다.


1
유용한 것 같습니다. 클라이언트로 다운로드하지 않고 버킷간에 직접 전송됩니까?
Fiver November

아마 그렇습니다. 나는 주로 로컬 서버에 마운트하고 로컬 머신에 백업하는 데 사용합니다. 그러나 쓰기 기능이 있기 때문에 버킷 간 데이터를 섞기 위해 "이동"으로 사용하지 않습니다. 기본적으로 중개 기계에서는 하나의 마운트 지점에 하나의 버킷을 마운트하십시오. 그런 다음 다른 버킷을 다른 마운트 지점으로 마운트하십시오. 그런 다음 rsync를 수행하십시오. 그러나 내가 말했듯이, 수정 시간 / 날짜는 실제로 파일 시스템이 아니기 때문에 Amazon S3에서 이상 할 수 있습니다. 그러나 실험하십시오.
JakeGould
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.