一、启用S3加速
S3 Accelerator目前仅在Global区域有效。
1、启用方法
进入S3存储桶,点击第二个标签页”属性“,点击高级设置中的”转移加速度“(英文是Tranfer acceleration),点击Enable启用。然后点击Save保存。
此时可以看到页面上提供了一个链接名为“希望比较不同区域的数据传输速度?”,点击这个链接,可以进入一个测速页面。这个测速页面的上方是当前Region,下边是其他Region的加速效果测试。不过此页面效果不是特别直观,而且不方便在客户多个地点自行测试。因此可以使用本程序做测试。
2、费用
S3 Transfer Acceleration 主要用于上传方向的加速,其原理是利用CloudFront的CDN POP点做加速。
费用定义在如下页面的下半部分的“传输加速”章节中描述:
https://aws.amazon.com/cn/s3/pricing/?nc=sn&loc=4
关于费用,官方的说法是:
每当您使用 S3 Transfer Acceleration 上传对象时,我们都会检查此服务的传输速度是否有可能比常规 Amazon S3 的快。在将同一对象传输到同一目标 AWS 区域时,如果我们确定此服务的传输速度不会快于常规 Amazon S3,那么对于此次使用 S3 Transfer Acceleration 进行的传输,我们将不会收取任何费用,并且可能对此次上传绕过 S3 Transfer Acceleration 系统。
二、上传测试
1、下载测试程序
安装python3及AWS SDK。
pip3 install boto3
下载测试程序到本地。
wget https://myworkshop.bitipcman.com/S3-TA/S3_Transfer_Acceleration_Test.py
替换程序中的Access Key为实际的key。
在当前路径下,请放置5个要上传的文件,文件名分别叫做 file1.zip, file2.zip, file3.zip, file5.zip, file5.zip,然后就可以启动上传。
2、运行并查看结果
使用Python3运行这个程序,返回结果如下。
$ /usr/local/bin/python3 /Users/lxy/Documents/AWS/MyWorkshop/S3-Transfer-Acceleration/S3_Transfer_Acceleration_Test.py
测试启动: 2020-08-28 20:52:43
测试开始:方式1-直接上传
File 1-1 uploaded.
File 1-2 uploaded.
File 1-3 uploaded.
File 1-4 uploaded.
File 1-5 uploaded.
y
测试开始:方式2-通过S3加速器上传
File 2-1 uploaded.
File 2-2 uploaded.
File 2-3 uploaded.
File 2-4 uploaded.
File 2-5 uploaded.
########################################
# Step 1: Direct upload to S3 bucket #
########################################
# Total time is 18.851708 Seconds
# Total size is 29553804 Byte
# Upload speed is 1.4951 MB/s
########################################
########################################
# Step 2: S3 Tranfer Acceleration #
########################################
# Total time is 4.901146 Seconds
# Total size is 29553804 Byte
# Upload speed is 5.7506 MB/s
########################################
########################################
# 结论: S3上传加速更快,提升284.63%
# 测试时间: 2020-08-28 20:52:43
########################################
以上对比过程显示通过S3加速上传,比直接上传效果更好。
请将这个脚本放在需要测试的目标区域进行测试,以获得最佳效果。