Amazon S3 バケット全体を別のアカウントのバケットに複製する最も簡単な方法は何ですか? 理想的には、バックアップの目的で、Amazon のヨーロッパのデータ センターにある別のアカウントに毎晩バケットを複製したいと考えています。
6 に答える
考慮すべきことの 1 つは、Amazon EC2 VM でこれを実行しているものは何でも実行したい場合があるということです。Amazon のクラウドの外でバックアップを実行している場合は、双方向のデータ転送に料金がかかります。EC2 VM で実行する場合、帯域幅料金を支払う必要はありません (ただし、北米とヨーロッパのストア間を移動する場合にこれが当てはまるかどうかはわかりません)。EC2 インスタンスが実行されている壁時間 (およびEC2 VM を保存するためのコストは最小限に抑える必要があります)。
かっこいい、Ec2でホストするスクリプトを書くことを検討するかもしれません。バックアップの主な目的は、ユーザーが誤ってバケットなどを削除した場合に、私たちの側で人為的エラーを防ぐことです。
削除が心配な場合は、おそらく S3 の新しいバージョン管理機能を確認する必要があります。
AmazonS3Client
1 つはソース用、もう 1 つは宛先用の2 つのインスタンスの作成を担当するアプリケーションまたはサービスを作成するとAmazonS3Client
、ソースはソース バケットでループを開始し、オブジェクトをストリーミングし、宛先はオブジェクトをAmazonS3Client
宛先バケットにストリーミングします。
注: これはクロスアカウント同期では機能しませんが、同じアカウントのクロスリージョンでは機能します。
あるバケットから別のバケットにすべてを単純にコピーするには、AWS CLI ( https://aws.amazon.com/premiumsupport/knowledge-center/move-objects-s3-bucket/ )を使用できます。aws s3 sync s3://SOURCE_BUCKET_NAME s3://NEW_BUCKET_NAME
あなたの場合、--source-region
フラグが必要になります: https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html
膨大な量のデータを移動する場合は、転送を異なるグループに分割する方法を見つけることで、転送速度を最適化できます: https://aws.amazon.com/premiumsupport/knowledge-center/s3-large-transfer-バケット間/
これを毎晩実行するにはさまざまな方法があります。1 つの例は、AWS インスタンス スケジュールです (個人的に未確認) https://docs.aws.amazon.com/solutions/latest/instance-scheduler/appendix-a.html
これを行う「自動」の方法はないと思います。ファイルを移動する簡単なアプリを作成するだけです。S3 でファイルを追跡する方法によっては、「変更」だけを移動することもできます。
関連するメモとして、Amazon はデータのバックアップを非常にうまく行っていると確信しているので、アーカイブ目的でバックアップするか、誤って保護したい場合を除き、必ずしもデータの損失を心配する必要はないと思います。ファイルを削除しています。