回答:
別のアプローチは、バケットでS3バージョン管理を有効にすることです。その後、削除されたファイルなどを復元できます。これを有効にする方法については、S3のドキュメントを参照してください。
BucketExplorerなどのサードパーティツールを使用すると、バージョニングの操作が非常に簡単になります(APIを直接呼び出すのとは対照的です)。
S3バケットの多要素認証削除を有効にすることもできます。これにより、「偶発的な削除」が少し難しくなります;)
s3cmd http://s3tools.org/s3cmdを使用できます
mybucketというバケットをバックアップするには
s3cmd mb s3://mybucket_backup
s3cmd --recursive cp s3://mybucket s3://mybucket_backup
これは安価なソリューションではありませんが、バケットが本当に重要な場合は、次のようにします。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ボリュームに同期し、そのボリュームのスナップショットを作成してシャットダウンするEC2 AMIを作成します。
ボリュームを単独で実行し続けることもできますが、スナップショットを作成するだけでバックアップに十分です。カスタムAMIがこれをすべて実行した後(完了後に自動的にシャットダウンすることも含む)、「バックアップ」スクリプトで必要なのは「ec2run -n 1 -t m1.small ami-」と「fire-and-forget」だけです。