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


43

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

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

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

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


다음은 내가 쓴 S3 백업 전략 안내서입니다. eladnava.com/backing-up-your-amazon-s3-buckets-to-ec2
Elad Nava

답변:


23

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

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

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

다중 요소 인증 에 대한 추가 정보 객체 삭제에 대한
추가 정보 삭제


2
문제는 버전을 지정하지 않고 이것을 달성하는 것입니다.
Anuruddha 2019 년

13

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

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

s3cmd mb s3://mybucket_backup
s3cmd --recursive cp s3://mybucket s3://mybucket_backup

3
더 빠른 방법이 있습니까? 버킷에 n 개의 키가있는 경우 복사에 대한 요청이 n 개 이상 있고 목록에 대한 요청이 있고 결과를 확인할 수도 있습니다. 큰 버킷의 경우 상당한 시간이 걸릴 수 있습니다.
Kariem

1
mybucket이 손상되어 mybucket_backup을 복원해야 할 때 백업 작업을 자세히 설명해 주시겠습니까?
Augustin Riedinger

7

저렴한 솔루션은 아니지만 버킷이 매우 중요한 경우 Amazon EC2 인스턴스를 부팅하고 주기적으로 컨텐츠를 동기화하는 방법이 여기에 있습니다 .

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

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

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


마이크로 인스턴스를 사용하고 필요한만큼 EBS (Elastic Block Storage)를 추가 할 수 있다고 생각합니다. 더 저렴한 옵션 일 수 있습니다.
Shawn Vader

실제로 S3와의 전용 대역폭은 EC2 인스턴스의 크기에 따라 달라 지므로 권장하지 않습니다. 큰 처리량을 원하면 큰 (= $$$$) 인스턴스가 필요합니다. 저의 전 고용주는 이것이 어려운 방법임을 알게되었습니다.
John Cowan

6

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

또한, 나는 당신이해야하기 때문에 실수로 삭제가 진짜 문제가있는 경우 아니에요 실수로 당신이 버킷을 삭제하기 전에 모든 버킷 키를 삭제합니다.


+1은 버킷의 모든 항목을 "실수로"삭제 한 다음 버킷도 삭제하기가 어렵 기 때문에 +1입니다.

10
s3cmd와 같은 도구를 사용하는 경우 다음을 사용하여 전체 디렉토리 트리를 삭제하는 것보다 어렵지 않습니다.rm -rf
jberryman

Amazon Glacier는 어떻습니까? 옵션입니까?
Tony

6

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


1
버킷 복제는 훌륭한 옵션입니다. 추가 보호 계층의 경우 교차 계정 복제를 사용하여 소스 계정이 위반 되어도 데이터가 손실되지 않도록하십시오.
Gareth Oakley

6

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

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


나는이 아이디어가 다른 사람들보다 더 합리적이고 저렴한 솔루션이라는 것을 좋아합니다.
BMW
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.