地理的に近い場所で S3 Transfer Acceleration を使った場合、転送速度を早くすることはできるか

2023.05.24

東京リージョンのバケットからのオブジェクトのダウンロード速度を早くしたいという要望がありました。 端末は日本にあり、距離的に近い場合でも S3 Transfer Acceleration を使うことで速度を早くすることができないか試してみました。

やってみた

S3 Transfer Acceleration は距離的に遠いリージョンにあるバケットに対し、エッジロケーションを利用できるエンドポイントを作成し、そちらにアクセスすることで高速化できるサービスです。

以下が Transfer Acceleration のドキュメントになります。

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/transfer-acceleration.html

地理的に近いところであれば速度向上につながらないとは思いましたが、実際はどうなのか検証してみました。

# time aws s3 cp s3://test154782/Dummy-10MB.txt ./
download: s3://test154782/Dummy-10MB.txt to ./Dummy-10MB.txt

real    0m2.595s
user    0m1.207s
sys     0m0.259s

# time aws s3 cp s3://test154782/Dummy-10MB.txt ./
download: s3://test154782/Dummy-10MB.txt to ./Dummy-10MB.txt

real    0m2.368s
user    0m1.102s
sys     0m0.290s

# time aws s3 cp s3://test154782/Dummy-10MB.txt ./
download: s3://test154782/Dummy-10MB.txt to ./Dummy-10MB.txt

real    0m2.621s
user    0m1.350s
sys     0m0.219s

# time aws s3 cp s3://test154782/Dummy-10MB.txt ./ --endpoint-url https://s3-accelerate.amazonaws.com
download: s3://test154782/Dummy-10MB.txt to ./Dummy-10MB.txt

real    0m2.629s
user    0m1.472s
sys     0m0.303s

# time aws s3 cp s3://test154782/Dummy-10MB.txt ./ --endpoint-url https://s3-accelerate.amazonaws.com
download: s3://test154782/Dummy-10MB.txt to ./Dummy-10MB.txt

real    0m2.421s
user    0m1.315s
sys     0m0.197s

# time aws s3 cp s3://test154782/Dummy-10MB.txt ./ --endpoint-url https://s3-accelerate.amazonaws.com
download: s3://test154782/Dummy-10MB.txt to ./Dummy-10MB.txt

real    0m2.383s
user    0m1.223s
sys     0m0.313s

上記の結果通り、地理的に近いと意味が無さそうですね。
やはり S3 からのダウンロードを早くするには、処理を並列化する等の対応が必要なようです。

最後に

日本から日本では意味がありませんでしたが、海外リージョンにあるバケットとのやり取りの際にはかなりの高速化が図れるので、
ユースケースにある場合は、Transfer Acceleration の利用は検討できるものと思います。