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)

参考

https://dev.classmethod.jp/articles/aws-cli-count-s3-filesize/

がくがく

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分)