2&>1

AWSとかGCPとかGolangとかとか

S3へのアップロード比較を試す

今更感まんさいですがS3へアップロードする際、エンドポイントとインターネット経由だと速度的な違いどうだったかなと思って計測しました。

環境

EC2(@東京リージョン) →→→  S3(@東京リージョン)

結果

インターネット経由

500Mのファイル2GBのファイル
1回目real 0m5.193s
user 0m3.201s
sys 0m2.455s
real 0m14.844s
user 0m11.442s
sys 0m10.094s
2回目real 0m5.123s
user 0m3.224s
sys 0m2.449s
real 0m15.080s
user 0m11.346s
sys 0m9.690s
3回目real 0m5.106s
user 0m3.204s
sys 0m2.430s
real 0m15.096s
user 0m11.208s
sys 0m10.042s

エンドポイント経由

500Mのファイル2GBのファイル
1回目real 0m5.401s
user 0m3.328s
sys 0m2.422s
real 0m17.847s
user 0m11.266s
sys 0m10.227s
2回目real 0m5.190s
user 0m3.158s
sys 0m2.634s
real 0m14.817s
user 0m11.606s
sys 0m9.913s
3回目real 0m5.045s
user 0m3.121s
sys 0m2.453s
real 0m14.795s
user 0m11.514s
sys 0m10.022s

ほとんど変わらないです。ただエンドポイント経由だとセキュアなのでわざわざインターネット経由で送る必要はないです。帯域もセーブできるし。

その他

今回のテストのためにダミーファイルを作る必要があったんですけど今まで「dd」コマンドでやってたんですけど情弱だと気づきました。

今まで

# time dd if=/dev/zero of=2dummy.dat bs=1M count=2000
2000+0 records in
2000+0 records out
2097152000 bytes (2.1 GB) copied, 14.2892 s, 147 MB/s

real    0m14.319s
user    0m0.000s
sys     0m1.134s

新発見

# time fallocate -l 2G 2dummy.dat

real    0m0.005s
user    0m0.001s
sys     0m0.000s

はいです。