私たちは数百万のエントリをWebアプリケーションに格納するためにS3を使用していますが、今度はすべてをEC2、EUサーバーに移動し、そのS3データもEUに移動したいと考えています。しかし、私たちが使用するバケットは米国にあり、バケット全体のコンテンツを別のバケットに移動するツールはないようです。
後でEUバケットに切り替えるときにデータを同期する方法にも問題があります。このデータは、移行の実行中に作成されます。
新しい公式 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
私は推測します、あなたは走ることができます:
s3cmd --recursive cp s3://oldbucket/ s3://newbucket
直接コピーする必要があります。
これを行うためのパッケージ化されたソリューションは知りませんが、基本的にはバケットリストであり、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
ライブマイグレーションの場合、次のアプローチをお勧めします。
データは米国のデータの単なる複製であるため、移行中にEUバケットでS3削減冗長ストレージを使用して、データレートを安くし、応答時間を短縮することができます。
リージョン間レプリケーションのセットアップを検討することもできます。これにより、リージョン間でデータをコピーして同期を保つことができます https://aws.Amazon.com/blogs/aws/new-cross-region-replication- for-Amazon-s3 /
私はS3でかなりの量の作業を行いましたが、これをネイティブで行うツールに出会ったことはありません。ただし、2つのバケットを互いに同期させるために s3cmd-sync 同期スクリプトをいくつか使用することはそれほど難しくありません。