harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

[AWS]s3putをかるく検証してみた

   


s3cmdにつづいて、s3putのテスト。
Amazon Linux AMIにはもともとec2-api-toolsなどのツールがインストール済みになっていて
環境設定をしなくて済むので、大変助かるけど、s3fsもs3cmdも後からインストールをしたので、やや手間。
なんとなくs3向けコマンドもあれば、と思って探してみたところ、RPMのpython-botoに含まれるs3putなるpythonのスクリプトがあったので、これを試してみる。
うまくいけばs3fsもs3cmdも入れずにいけそう。

今回はAMIにもともとパッケージで含まれていたので、リポジトリのお世話にはならず。

注意事項

S3へ転送を行う際、元サーバーのパスがそのままバケット直下に作成されるので、ディレクトリ階層が深くなってしまう場合がある。
→フォーラムのどこかにノウハウみたいな記事があったので、後で調べてみる。

書式

書式としてはこんな感じ。

s3put -a <ACCESSKEY> -s <SECRETKEY> -b <バケット名> <転送するファイル名>

どこかのファイルにアクセスキー、シークレットキーを書いておいて
そこを読めばオプション不要、とかができると思う…

転送速度チェック

東京リージョン内でのEC2→S3バケットへの転送速度を軽くチェック。
ファイルサイズは120MB、750MB、5GBでそれぞれテスト。

1)ファイルサイズ120MB

# time s3put -a ******************** -s ******************** -b backup-db1-tokyo backup_dbah
/usr/bin/s3put:45: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6
  err.message[len('No module named '):] + \
Copying /home/ec2-user/db-sprittest/backup_dbah to backup-db1-tokyo/home/ec2-user/db-sprittest/backup_dbah
	 
	real    0m5.376s
	user    0m1.200s
	sys     0m0.420s

2)ファイルサイズ750MB

# time s3put -a ******************** -s ******************** -b backup-db1-tokyo backup_dbaa
/usr/bin/s3put:45: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6
  err.message[len('No module named '):] + \
Copying /home/ec2-user/db-sprittest/backup_dbaa to backup-db1-tokyo/home/ec2-user/db-sprittest/backup_dbaa
	 
	real    0m40.902s
	user    0m8.021s
	sys     0m2.948s

3)ファイルサイズ5GB

# time s3put -a ******************** -s ******************** -b backup-db1-tokyo backup_db_20121101.sql.gz
/usr/bin/s3put:45: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6
  err.message[len('No module named '):] + \
Copying /home/ec2-user/db-sprittest/backup_db_20121101.sql.gz to backup-db1-tokyo/home/ec2-user/db-sprittest/backup_db_20121101.sql.gz
	 
	real    6m45.349s
	user    0m54.147s
	sys     0m19.197s
 

何気にs3fsより速い!オーバーヘッドが少ないか?
オプションをいろいろ調べて試してみる必要があるけど、今のところ一番速いので、これで決まりかな?
あと"err.message[len(‘No module named ‘):] + \"のメッセージが気になるので、後で調べてみる…

Amazon Web Servicesプログラミング ―APIの基礎からElastic Beanstalkの利用まで
Jurg van Vliet Flavia Paganelli Steven van Wel Dara Dowd
オライリージャパン
売り上げランキング: 198,667

 

 - AWS, infra, 運用 ,