S3バケットを別の場所に移動する方法


20

S3を使用して何百万ものエントリをwebappに保存します。今度はすべてをEC2、EUサーバーに移動し、S3データをEUに移動したいと考えています。しかし、私たちが使用しているバケットは米国にあり、バケットのコンテンツ全体を別のバケットに移動するツールはないようです。

また、EUバケットに切り替えたときにデータを同期する方法にも問題があります。このデータは、移行の実行中に作成されます。

回答:


18

新しい公式のAWS CLIは、のほとんどの機能をネイティブにサポートしていますs3cmd

http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

aws s3 sync s3://oldbucket s3://newbucket --source-region us-west-1 --region us-west-2

地域名のリストはどこにありますか?
バート

:あなたはここS3領域を見つけることができますdocs.aws.amazon.com/general/latest/gr/rande.html#s3_regionは、 これらは、あなたから取得EC2領域とほぼ同じですaws ec2 describe-regionsが、us-east-1また、S3のための米国標準として知られており、あります歴史的な理由で多少異なります。
AB

5

実行できると思います:

s3cmd --recursive cp s3://oldbucket/ s3://newbucket

直接コピーする必要があります。


CLIは言う:「コマンドが見つからない」
バート

3

これを行うためのパッケージ化されたソリューションは知りませんが、本質的には単なるバケットLISTであり、各オブジェクトをUSバケットからEUバケットにPUTコピーします。PUT-copy APIは「if-modified-since」と「if-none-match」をサポートしているため、作業を重複させることなく繰り返し実行できます。http//docs.amazonwebservices.com/AmazonS3/2006-03-01/ API / index.html?RESTObjectCOPY.html

ライブ移行の場合、次のアプローチをお勧めします。

  1. オプションの最初のステップ:大量のデータを移行する場合は、AWS Import / Exportを使用して、米国の物理デバイスでデータの最初のスナップショットをキャプチャし、物理的にEUに発送することを検討してください。これにより、時間とお金を節約できます。
    • 上記のif-modified-sinceまたはif-none-matchを使用してデータを米国からEUに移行するスクリプトを設定します。古いEUデータで新しいEUデータを上書きしないように、十分に賢くしてください(以下のステップ5に進むと)。2つのバケットがほぼ同じ状態になるまでループで連続して実行します。
    • Webアプリを変更して、米国とEUの両方のバケットに同時にデータをPUTし、米国からのみデータを取得し続けます。
    • バケットが完全に同じ状態にあると確信するまで(または、最終的な一貫性を考慮して、取得可能な限り近い状態になるまで)移行スクリプトの実行を続けます。
    • Webバケットを再度変更して、EUバケットからのみデータを取得します。
    • これで、移行スクリプトをオフにできます。
    • 最終的な一貫性の異常を探し、それらをクリーンアップします。
    • Webアプリを変更して、USバケットへのデータのPUTを停止します。
    • USバケット内のすべてを削除します。

データは米国のデータの単なる複製であるため、移行中にEUバケットでS3低冗長性ストレージを使用して、データレートを安くし、応答時間を短縮することができます。



0

私はS3でかなりの量の仕事をしてきましたが、これをネイティブに行うツールに出会ったことはありません。ただし、2つのバケットを互いに同期させるために、いくつかのs3cmd-sync同期スクリプトを使用するのはそれほど難しくありません。


ええ、それは動作しますが、S3 APIはエントリをダウンロードせずに移動/コピーすることをサポートしますが、すべてをローカルにダウンロードする必要があります。
-skrat
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.