使用aws cli

时间:2015-06-03 12:40:45

标签: amazon-web-services amazon-s3 aws-cli

我使用AWS CLI运行备份脚本,每晚在MediaTemple服务器上执行S3同步命令。这已经运行了好几个月,但我更新了我的Plesk安装,现在每天晚上,当备份脚本运行时,MediaTemple由于过度使用而禁用我的服务器。我似乎要越过的限制如下:

RESOURCE INFO:
Packets per second limit: 35000
Packets per second detected: 42229.11667000000306870788
Bytes per second limit: 50000000
Bytes per second detected: 61801446.10000000149011611938

它们还包括服务器脱机时的网络快照,其中包括许多与Amazon IP地址的打开连接(快照时为9)。

我能做些什么来限制与AWS的连接?我最好在AWS API中寻找一个选项(虽然我没有在文档中看到任何有用的东西),但除此之外,我能做些什么来管理网络上的连接水平?

5 个答案:

答案 0 :(得分:7)

AWS CLI S3传输命令(包括同步)具有以下相关configuration options

  
      
  • max_concurrent_requests -   
        
    • 默认值:10
    •   
    • 最大并发请求数。
    •   
  •   
  • multipart_threshold -   
        
    • 默认值:8MB
    •   
    • CLI用于multipart的大小阈值   传输单个文件。
    •   
  •   
  • multipart_chunksize -   
        
    • 默认值:8MB
    •   
    • 使用时   多部分传输,这是CLI用于的块大小   单个文件的多部分转移。
    •   
  •   

这并不像每秒限制数据包一样精细,但似乎设置较低的并发请求值并降低多部分阈值和chunksize将有所帮助。如果您粘贴的值接近平均值,我会从这些值开始并进行调整,直到您再次可靠地不超过限制为止:

$ aws configure set default.s3.max_concurrent_requests 8
$ aws configure set default.s3.multipart_threshold 6MB
$ aws configure set default.s3.multipart_chunksize 6MB

答案 1 :(得分:5)

除了更改最大默认连接和块大小之外,您还可以设置max_bandwidth。这在上传大型单个文件时非常有效。

aws configure set default.s3.max_bandwidth 50MB/s

答案 2 :(得分:2)

我最终使用Trickle并限制下载&上传速度为20,000 kb / s。这让我可以使用我现有的脚本而不需要太多修改(我所要做的只是将涓涓细流调用添加到命令的开头)。

此外,看起来带宽限制已经作为一个问题添加到AWS CLI,所以希望如果实现这一点,这对于那些人来说都不是问题。

答案 3 :(得分:1)

如果你不能像我一样使用aws s3命令进行涓流工作,你可以使用:

sudo apt-get install pv (or yum install pv) pv -L 1M local_filename 2>/dev/null | aws s3 cp - s3://bucket_name/remote_filename

其中-L 1M将带宽限制为1M / s 和cp后面的短划线表示标准输入

注意:来自apt-get的awscli太旧不支持stdin输入,你需要通过pip升级它

答案 4 :(得分:0)

我无法使用aws-cli进行细流操作,但是遇到了s3cmd,这对我来说非常有用。它具有速率限制选项。可以在Fedora仓库中找到它,我想其他发行版也都打包了它。

s3cmd --progress --stats --limit-rate=50k sync ./my_photos/ s3://mybucket

s3cmd man page