ソースバケットをバージョニングせずにAWS S3バケットをバックアップする方法[終了]


43

Amazon S3バケットの誤った削除から回復する方法はありますか?

バケットに重要な情報があります。バケット自体の偶発的または悪意のある削除のリスクを軽減する必要があります。

バケット全体をローカルで同期できることは知っていますが、バケットサイズが100GBの場合、これはあまり実用的ではありません。

バックアップ戦略に関するアイデアはありますか?


これが私が書いたS3バックアップ戦略ガイドです。eladnava.com
Elad Nava

回答:


23

別のアプローチは、バケットでS3バージョン管理を有効にすることです。その後、削除されたファイルなど復元できます。これを有効にする方法については、S3のドキュメントを参照してください

BucketExplorerなどのサードパーティツールを使用すると、バージョニングの操作が非常に簡単になります(APIを直接呼び出すのとは対照的です)。

S3バケットの多要素認証削除を有効にすることもできます。これにより、「偶発的な削除」が少し難しくなります;)

多要素認証の詳細オブジェクトの削除の
詳細


2
問題は、バージョニングなしでこれを達成することです。
アヌルダ

13

s3cmd http://s3tools.org/s3cmdを使用できます

mybucketというバケットをバックアップするには

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

3
これを行うより速い方法はありますか?バケットにn個のキーがある場合、少なくともn個のコピー要求とリスト用の要求(そしておそらく結果の確認)があります。大きなバケットの場合、これにはかなり時間がかかる場合があります。
カリーム

1
mybucketが破損していて、mybucket_backupを復元する必要がある場合のバックアップ操作の詳細を教えてください。
オーガスティンリーディンガー

7

これは安価なソリューションではありませんが、バケットが本当に重要な場合は、次のようにします。AmazonEC2インスタンスを起動して、定期的にコンテンツを同期します。

Amazon EC2は、仮想化ホスティングプロバイダーです。Linux、Windowsなどのインスタンスを起動して、必要なものを実行できます。時間単位で支払い、そのサーバー用にかなり大きなストレージスペースをローカルで取得します。たとえば、850 GBのローカルディスク領域が付属する「大」サイズのインスタンスを使用します。

クールな部分は、S3と同じネットワーク上にあり、S3とEC2の間で無制限の転送が行われることです。Windows EC2インスタンスで20ドルのJungle Diskソフトウェアを使用しています。これにより、S3バケットにローカルディスクフォルダーであるかのようにアクセスできます。次に、スケジュールされたバッチファイルを実行して、S3からローカルEC2ディスクスペースにコピーします。必要に応じて1時間ごとのバックアップを保持するように自動化することも、ギャンブルを行う場合は、JungleDisk(またはLinuxに相当するもの)を1時間ごとに同期するように設定することもできます。誰かがファイルを削除した場合、EC2からファイルを取り戻すまでに少なくとも数分かかります。ただし、通常のスクリプト化されたバックアップをお勧めします-850GBのボリュームに圧縮する場合、数日間のバックアップを保持するのは簡単です。

これはSQL Serverのログ配布に非常に役立ちますが、目的をどのように達成できるかを確認できます。


マイクロインスタンスを使用して、必要なだけEBS(Elastic Block Storage)を追加できると思います。安価なオプションの場合があります。
ショーンベイダー

S3との間の専用帯域幅はEC2インスタンスのサイズに依存するため、実際にはそうすべきではありません。大きなスループットが必要な場合は、大きな(= $$$$)インスタンスが必要です。私の前の雇用主はこれを困難な方法で見つけました。
ジョン・コーワン

6

考えられる解決策の1つは、「バックアップバケット」を作成し、そこに機密情報を複製することです。理論的には、S3のデータはハードドライブよりも安全です。

また、バケットを削除する前に、すべてのバケットキーを誤って削除する必要があるため、誤って削除することが本当の問題であるかどうかはわかりません。


バケット内のすべてを「誤って」削除してからバケットも削除するのはかなり難しいため、+ 1。

10
あなたはs3cmdなどのツールを使用している場合、それがでディレクトリツリー全体を削除するよりも、何も難しいませんrm -rf
jberryman

Amazon Glacierはどうですか?オプションですか?
トニー

6

別の可能な解決策は、バケットをS3のヨーロッパゾーンに複製することです。これにより、誤って削除した後、回復するのに十分な時間バケットを保持できます。


1
バケット複製は素晴らしいオプションです。保護を強化するために、クロスアカウントレプリケーションを使用して、ソースアカウントの違反がデータ損失にならないようにします。
ガレスオークリー

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.