Amazon S3バケットをミラーリングする実際的な方法は何ですか?


9

Amazon S3バケットをミラーリングしたい。これは、1)1つのプロバイダーだけですべてのデータを存在させたくないためです。2)ソフトウェアエラーまたはセキュリティ違反が発生した場合、データをバックアップしたい。

s3cmd sync関数を使用してローカルディスクにミラーリングできますが、これは非常に大きなバケットに対応できず、迅速なバックアップリストアには役立ちません。Rackspace Cloud Filesなどの競合他社にデータをミラーリングしたい。

Linuxボックスで自動化された方法でこの種のミラーリングを容易にするためのシンプルで堅牢な方法についての提案はありますか?


すべてのデータが同じプロバイダー内のバケットをミラーリングするだけであるため、「1)すべてのデータが1つのプロバイダーにのみ存在することは望まない」という回答は実際には解決しないと想定して間違いありませんか?
クリス

回答:


6

「同期」オプションを指定して「s3cmd」ユーティリティを使用できますが、この同期メカニズムが重複バックアップを台無しにしているかどうかを確認しようとしているため、質問につまずきました。


これは確かに私が見つけた最高のソリューションですs3tools.org/s3cmd-sync
John Bachir

5

同じ問題があったため、S3バケットを別のS3バケットにミラーリングするように特別に設計された小さなプログラムを作成しました。私はそれをs3s3mirrorと呼んでいます。

私は最初に「s3cmd sync」アプローチを試しましたが、何十万ものオブジェクトが入ったバケットがあり、「s3cmd sync」はそこに座っただけで、システムが停止するまでメモリをどんどん消費していました。私はs3s3mirrorを設計して、すぐに使い始め、100の同時スレッド(構成可能)を使用し、CPUとメモリーを適度に使用します。私がそう言うなら、それはかなりおかしくて速いです。

これをApacheライセンスの下でgithubで利用できるようにしました。それを試してみることにした場合は、私にあなたの考えや改善できることがあれば教えてください。

ここにリンクがあります:https : //github.com/cobbzilla/s3s3mirror

ありがとう!

  • ジョナサン。

あなたの仕事のおかげで、私はこれからDocker
Panagiotis Moustafellos '21

4

Amazonには、これを行うためのサポートされているツール、aws cliがあります。

ローカルとリモート間、または2つのs3ロケーション間でどちらの方向にもミラーリングできます。

残念ながら、RackspaceのようなS3以外の場所は直接サポートされていませんが、この質問を見つけた人にとって、これは役立つ回答になると思いました。私のように、それを見つける前に。

特に、

aws s3 sync s3://some/s3/path /some/local/path

2

Jungle Disk Serverをチェックしてください。Amazon S3とRackspace Cloud Filesの両方で動作します。S3とCFをファイルシステムの別の場所にマウントし、2つの間でrsyncを使用できます。


おかげで、私はLinuxボックスでcronジョブとして実行できるソリューションを探していると述べたはずです。質問を更新しました。
Ben

2

s3fsを使用してヒューズ付きのバケットをマウントしてみることができます。それが完了したら、マウントポイントからローカルディスクにrsyncを実行できます。


1
s3fsの+1、最大5TBのファイルをサポートするパッチをコミットしました。
ベンlemasurier 2011

1

Minioサーバー、オープンソース、S3互換API をセットアップできます。EC2または任意のクラウドプロバイダーに代替サーバーとしてセットアップ し、Minioクライアントmc mirrorコマンドを使用して定期的にS3のミラーリングを行うことができます。単純なcronスクリプトの記述と同じように自動化できます。

それが役に立てば幸い。免責事項:私はMinioで働いています


1

バケットのオンライン同期では、クロスリージョンレプリケーションを使用できます。このようにして、元のバケットに対するすべての更新は、別のリージョンのS3バケットに自動的に同期されます。https//docs.aws.amazon.com/AmazonS3/latest/dev/crr.html

バケットでバージョニングを有効にする必要があることに注意してください。バケット内のオブジェクトの更新/削除を頻繁に行う場合は、ライフサイクルポリシーを有効にして古いオブジェクトを削除する必要があります。


これを使用することを選択しましたが、レプリケーションはミラーリングと同じではないことに注意してください。大きな違いは、削除はソースと宛先の間で伝播されないことです(宛先は変更されたファイルを更新しますが、決して削除しないように見えます)。
スコットガートナー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.