Open4
S3のデータ移行手順化
新しいS3バケットを作成し、既存のS3バケットからデータを転送する。
転送方法としては、s3 sync
を使用して、既存のS3バケットから新しいS3バケットに同期する。
環境(stg, demo, prd)ごとにデータ移行を行うに当たり、データ件数とサイズを調査しsync開始から完了までの時間を計測する。
s3 syncでのデータ転送方法
aws s3 syncコマンドを実行し、既存のバケットから新規バケットにデータを同期する。
--excludeオプションを追加することで、不要なデータを新規バケットに同期しないようにする。
aws s3 sync s3://[既存バケット名] s3://[新規バケット名] --exclude --exclude "*category*" --exclude "*item*"
S3のデータ件数調査
以下のコマンドを実行して各環境のデータ件数を調査。
aws s3 ls s3://[バケット名] --recursive --human --sum
- --recursive: 指定したフォルダの中にフォルダがあった場合、その中のファイルも対象にするオプション
- --human(--human-readable): ファイルサイズに単位をつけて見やすくしてくれるオプション
- --sum(--summarize): 合計サイズとオブジェクトの数を表示してくれるオプション
stg
Total Objects: 2267
Total Size: 2.3 GiB(2355.2 MiB)
dem
Total Objects: 3753
Total Size: 923.6 MiB
prd
Total Objects: 240196
Total Size: 169.9 GiB(173977.6 MiB)
参考
Total Sizeでの計測
stg環境で試しにsyncコマンドを実行し、sync開始から完了までの時間を計測する。
Total Size(MiB) / syncでかかった時間(秒)でMiB/秒を算出する。
MiB/秒を用いて、他の環境でsyncにかかる想定時間を算出してみる。
stg
sync開始から終了まで15秒
2355.2MiB / 15 = 157(MiB/秒)
demo
923.6 MiB / 157 = 5.8(秒)
prd
173977.6MiB / 157 = 1108秒(約18分)