我想知道是否有任何EC2 API节流限制(例如EMR)会限制您每秒或每分钟可以对EC2进行的调用次数?
如果是这样,这些限制是什么?他们在任何地方出版吗?
同时,Amazon EC2已记录了其一般查询API请求率处理:
我们限制每个AWS账户的Amazon EC2 API请求以帮助服务性能。我们确保对Amazon EC2 API的所有调用(无论它们源自应用程序,对Amazon EC2命令行界面的调用,还是对Amazon EC2控制台的调用)都不会超过允许的最大API请求速率。请注意,IAM用户发出的API请求将归属到基础AWS账户。
Amazon EC2 API操作分为以下几类:
[...]如果某个API请求超出其类别的API请求速率,则该请求将返回RequestLimitExceeded错误代码。为避免此错误,请确保您的应用程序不会以很高的速度重试API请求。您可以通过在轮询时小心谨慎以及使用指数退避重试来做到这一点。
尽管细节可能因其服务的过多而有所不同,但我认为通常可以采用相似的模式是安全的(这至少是由于EC2也支持许多其他服务)。
EC2的上述说明以及与AWS支持进行交互的用户提供的一些间接报价似乎都表明,限额甚至可能因服务状态和每个账户而异,即AWS能够根据专用账户提高/减少单个账户的限额高性能用例,可疑滥用等,请参见:
RequestLimitExceeded
在客户错误代码中,提示每个帐户的处理情况:
您的帐户已超出Amazon EC2 API允许的最大请求速率。[...]
Rightscale支持人员表示,我们需要联系亚马逊以提高EBS API速率限制,因为我们似乎已经超出对此API的调用,因为该帐户中有大量MySQL数据库,而且它们都为备份制作了EBS快照。
AWS团队对错误:使用boto启动和终止实例超出了请求限制:
您将在EC2上看到的速率限制可能会因系统负载而异。
Saul对Amazon Web Services S3请求限制的回答:
但是,在发布此问题后,我收到了来自AWS的电子邮件,该电子邮件已将我的LIST请求限制为每秒10个请求,因为我去特定存储桶的次数过多。
当然,它们通常是大多数规则的例外,我知道以下两个记录特定限制的服务:
Amazon Route 53正在记录其对Amazon Route 53 API请求和实体计数的特定限制:
所有请求:每个AWS帐户每秒五个请求。[...]
Amazon SES还记录了大多数API操作(大概除了SendEmail和SendRawEmail之外的所有操作)的一个请求/秒的特定限制,请参阅例如GetSendQuota:
每秒以一个请求限制此操作。
如对API请求错误进行故障排除所述,在客户端上解决此问题的正确方法是在AWS中实施错误重试和指数退避(大多数AWS开发工具包同时会自动应用此指南,包括用于调整默认重试策略或添加自定义选项的选项实施)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句