LoginSignup
5
1

More than 5 years have passed since last update.

オブジェクトストレージのファイルアップロード時間比較

Last updated at Posted at 2017-09-30

AWS S3, GCP GCS, Azure Blob Storage 等、様々なオブジェクトストレージサービスが存在します。

S3, GCS のそれぞれに複数のファイルをアップロードし、合計時間にどの程度差異があるかを確認します。


条件
  • 1 ファイルあたりのサイズは 1 MB (ファイルの生成方法:dd if=/dev/urandom of=dummy bs=1M count=1)
  • 1 プロセスで 100 ファイルをアップロードし終わるまでの時間を見る
  • アップロードには、各サービスが提供している公式コマンドを利用する (awscli, gsutil)
  • アップロード元のサーバは、各サービスのコンピュートサービスを利用し、可能な限りリソース量の近いもの、ブースト機能を備えないものを選択する (m3.medium@EC2,n1-standard-1@GCE)
  • オブジェクトストレージと、コンピュートサービスの Region,AZ は同じ、もしくはできるだけ近いものを選択する

アップロードスクリプト
  • S3
#!/bin/bash
count=0
while :
do
echo $count
[[ count -eq 100 ]] && break
aws s3 cp ./dummy s3://bucketname/${count}
count=$(($count+1))
done
  • GCS
#!/bin/bash
count=0
while :
do
echo $count
[[ count -eq 100 ]] && break
gsutil cp ./dummy gs://bucketname/${count}
count=$(($count+1))
done

実行方法

それぞれ、3 回繰り返します。

for i in 1 2 3
do
time ./upload
done

結果
1 回目 2 回目 3 回目
S3 3m37.910s 3m36.647s 3m35.076s
GCS 1m41.030s 1m39.567s 1m38.644s

本検証方法では、アップロードにかかる時間は S3 > GCS となりました。

しかしながら、awscli, gsutil は、実行時に本検証とは関連のないモジュールの読み込みや処理を行っている可能性もあるため、次回は、できるだけそのような差異が出ないよう、SDK (Golang) を用いて必要最低限の API をコールする形で同様の検証を実施してみたいと思います。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1