IDCFクラウドオブストでs4cmd
IDCF Cloud Advent Calendar 2016 の12/5が空いていたので個人的に責任(?)をとって埋めておきますね。
IDCFクラウドのオブジェクトストレージ(以下オブスト)に、s3cmd使ってデータをやり取り、遅いですよね、嫌になっちゃいますよね。
実はオブストに並列にアクセスできればもっともっと速くなります。
ここにs4cmdというスレッド対応した素晴らしいツールがあります。
github.com
中身はbotoを使ってるんですが、AWS S3用にガリっとエンドポイントが書かれてるので、そこを修正してあげればオブストでも利用できます。
Ubuntuで入れた場合だと具体的には
/usr/local/lib/python2.7/dist-packages/botocore/utils.py /usr/local/lib/python2.7/dist-packages/botocore/data/endpoints.json
の2つです。
では早速、s3cmdとs4cmdで性能比較してみましょう。
テストファイルとして以下用意しました。
10MByteのバイナリファイル10個、
1MByteのバイナリファイル10個、
100KByteのバイナリファイル10個、
1KByteのバイナリファイル10個、
合計40個、112MByte。
次のように実行して、timeコマンドのreal timeの値で比較すると
$ time s3cmd sync ./testdata/ s3://cmdtest/testdata/ $ time s4cmd sync ./testdata/ s3://cmdtest/testdata/
s3cmd sync は10秒
s4cmd sync は1秒
でした。
試してみる価値ありそうですよね。
もしさくっと試してみたい場合は「IDCFCloud CLI toolset on Ubuntu」というコミュニティテンプレートを作ったのでそちらからどうぞ。
以上、アドカレまだ日にち空いてますので、是非埋めてください!