it-swarm-ko.tech

소스 버킷의 버전을 지정하지 않고 AWS S3 버킷을 백업하는 방법

실수로 Amazon S3 버킷을 삭제하지 못하도록 복구 할 수있는 방법이 있습니까?

버킷에 중요한 정보가 있으므로 버킷 자체의 우발적 또는 악의적 삭제 위험을 완화해야합니다.

전체 버킷을 로컬로 동기화 할 수 있지만 버킷 크기가 100GB 인 경우에는 실용적이지 않습니다.

백업 전략에 대한 아이디어가 있습니까?

44
Nikhil Gupte

다른 방법은 버킷에서 S3 버전 관리를 활성화하는 것입니다. 그런 다음 삭제 된 파일 등을 복원 할 수 있습니다. 이 기능을 활성화하는 방법은 S3 설명서를 참조하십시오

BucketExplorer 와 같은 타사 도구를 사용하면 버전 관리 작업이 간단 해집니다 (API를 직접 호출하는 것).

S3 버킷에 대해 다단계 인증 삭제를 활성화 할 수도 있습니다. "사고 삭제"가 조금 더 어려워집니다.)

다단계 인증 삭제에 대한 추가 정보
객체 삭제에 대한 추가 정보

23
snarkyboojum

S3cmd를 사용할 수 있습니다 http://s3tools.org/s3cmd

Mybucket이라는 버킷을 백업하려면

s3cmd mb s3://mybucket_backup
s3cmd --recursive cp s3://mybucket s3://mybucket_backup
13
Ian Purton

저렴한 솔루션은 아니지만 버킷이 매우 중요한 경우 다음과 같이 수행하십시오. Amazon EC2 instance 를 부팅하고 주기적으로 컨텐츠를 동기화하십시오.

Amazon EC2는 가상화 호스팅 제공 업체입니다. Linux, Windows 등의 인스턴스를 스핀하고 원하는 것을 실행할 수 있습니다. 당신은 시간 단위로 지불하고, 그 서버를 위해 로컬에 꽤 큰 저장 공간을 얻습니다. 예를 들어, 850GB의 로컬 디스크 공간과 함께 제공되는 "대형"크기 인스턴스를 사용합니다.

멋진 부분은 S3와 동일한 네트워크에 있으며 S3와 EC2간에 무제한 전송이 가능하다는 것입니다. Windows EC2 인스턴스에서 $ 20 Jungle Disk 소프트웨어를 사용하여 마치 마치 로컬 디스크 폴더 인 것처럼 S3 버킷에 액세스 할 수 있습니다. 그런 다음 예약 된 배치 파일을 사용하여 S3에서 로컬 EC2 디스크 공간으로 내용을 복사 할 수 있습니다. 원하는 경우 시간별 백업을 유지하거나 도박을하려는 경우 시간당 한 번 정도 동기화되도록 JungleDisk (또는 Linux와 동등한 기능)를 설정하십시오. 누군가 파일을 삭제하면 EC2에서 파일을 가져 오는 데 몇 분이 걸립니다. 그래도 정기적 인 스크립트 백업을 권장합니다. 850GB 볼륨으로 압축하는 경우 며칠 동안 백업을 유지하는 것이 쉽습니다.

이것은 SQL Server 로그 전달에 실제로 유용하지만 목표 달성 방법을 알 수 있습니다.

7
Brent Ozar

가능한 한 가지 해결책은 "백업 버킷"을 생성하고 민감한 정보를 복제하는 것입니다. 이론적으로 데이터는 하드 드라이브보다 S3에서 더 안전합니다.

또한 우발적 인 삭제가 실제 문제인지 확실하지 않습니다. 버킷을 삭제하기 전에 실수로 모든 버킷 키를 삭제해야하기 때문입니다.

7
JAG

브렌트 (우수)를 수정하려면 약간 대답하십시오. 인스턴스를 계속 실행하지 않아도됩니다. 데이터를 가져 와서 EBS 볼륨에 동기화하고, 해당 볼륨을 스냅 샷하고 자체 종료하는 EC2 AMI를 생성하십시오.

볼륨 자체도 계속 유지할 수 있지만 스냅 샷은 백업에 충분해야합니다. 사용자 지정 AMI가 상호 작용없이이 모든 작업 (완료된 후 자체 종료 포함)을 수행하는 경우 '백업'스크립트는 'ec2run -n 1 -t m1.small AMI-'및 실행 후 잊기 만하면됩니다.

6
Andrew Lusk

또 다른 가능한 해결책은 버킷을 S3의 유럽 영역으로 복제하는 것입니다. 실수로 삭제 한 후에도 복구 할 수있을 정도로 오랫동안 버킷이 유지 될 수 있습니다.

6
shawnswaner