REL 1: 如何管理服务配额和限制?
基于云的工作负载架构存在服务配额(也被称作服务限制)。存在这些配额是为了防止意外预置超过您所需的资源,并对 API 操作的请求速率进行限制,以保护服务不会遭到滥用。还存在资源限制,例如,将比特推入光缆的速率,或物理磁盘上的存储量。
资源
AWS Live re:Inforce 2019 - Service Quotas
What Is Service Quotas?
AWS Service Quotas (formerly referred to as service limits)
Amazon EC2 Service Limits
AWS Trusted Advisor Best Practice Checks (see the Service Limits section)
AWS
limit monitor on AWS answers
AWS Marketplace: CMDB products that help track limits
APN Partner: partners that can help with configuration management
最佳实践:
-
了解服务配额和限制: 您要知道您的工作负载架构的默认配额和配额提高请求。您还要了解哪些资源限制(如磁盘或网络)可能会对您产生影响。
-
跨多个账户和区域管理服务配额: 如果您目前使用多个 AWS 账户或 AWS 区域,请确保在运行生产工作负载的所有环境中都请求适当的配额。
-
通过架构适应固定服务配额和限制: 请注意不可更改的服务配额和物理资源,并且在设计架构时要防止这些因素影响可靠性。
-
监控和管理配额: 评估您的可能使用情况,并适当提高您的配额,支持使用量按计划增长。
-
自动管理配额: 实施工具以便在接近阈值时向您发送提醒。通过使用 AWS Service Quotas API,您可以自动发出配额提高请求。
-
确保在当前配额与最大使用量之间存在足够的差距,以便应对故障转移: 当资源出现故障时,它可能仍会被计入配额,直到被成功终止。在出现故障的资源被终止之前,请确保您的配额涵盖所有出现故障的资源与其替换资源的叠加。在计算此差距时,应将可用区故障考虑在内。
改进计划
了解服务配额和限制
What is Service Quotas?
- 根据您的服务要求、延迟、法规和灾难恢复 (DR) 要求选择相关账户和区域
- 在发布的文档和 Service Quotas 中查看 AWS 服务配额
AWS Service Quotas (formerly referred to as limits)- 通过查看部署代码确定工作负载所需的所有服务
- 使用 AWS Config 来查找您的 AWS 账户中使用的所有 AWS 资源
AWS Config Supported AWS Resource Types and Resource Relationships - 您也可以使用 AWS CloudFormation 来确定您所使用的 AWS 资源。查看 AWS 控制台中创建的资源或通过 list-stack-resources
CLI 命令创建的资源。您还可以查看配置为要在模板自身部署的资源。
Viewing AWS CloudFormation Stack Data and Resources on the AWS Management Console
AWS CLI for CloudFormation: list-stack-resources - 确定适用的服务配额。可以通过 Trusted Advisor 和 Service Quotas 使用能够以编程方式进行访问的信息。
跨多个账户和区域管理服务配额
What is Service Quotas?
- 根据您的服务要求、延迟、法规和灾难恢复 (DR) 要求选择相关账户和区域
- 在发布的文档和 Service Quotas 中查看 AWS 服务配额
AWS Service Quotas (formerly referred to as limits)- 通过查看部署代码确定工作负载所需的所有服务
- 使用 AWS Config 来查找您的 AWS 账户中使用的所有 AWS 资源
AWS Config Supported AWS Resource Types and Resource Relationships - 您也可以使用 AWS CloudFormation 来确定您所使用的 AWS 资源。查看 AWS 控制台中创建的资源或通过 list-stack-resources
CLI 命令创建的资源。您还可以查看配置为要在模板自身部署的资源。
Viewing AWS CloudFormation Stack Data and Resources on the AWS Management Console
AWS CLI for CloudFormation: list-stack-resources - 确定适用的服务配额。可以通过 Trusted Advisor 和 Service Quotas 使用能够以编程方式进行访问的信息。
通过架构适应固定服务配额和限制
AWS Service Quotas
监控和管理配额
- 获取当前资源使用量(例如存储桶、实例等): 使用 Amazon EC2 DescribeInstances API 等服务 API 操作来收集当前资源使用情况信息。
- 查看当前配额: 使用 AWS Service Quotas、AWS Trusted Advisor 和 AWS 文档
- AWS Service Quotas 是一项 AWS 服务,可帮助您在一个位置管理 100 多项 AWS 服务的配额。
- 根据 Trusted Advisor 服务限制来确定您当前的服务限制
- 使用服务 API 操作来确定当前服务配额(如果支持)
- 记录已发出的配额提高请求及其状态: 配额提高请求获得批准后,请确保更新您的记录以反映配额更改。
自动管理配额
- 利用 Service Quotas,通过自动配额监控解决方案(例如 AWS Limit Monitor 或从 AWS Marketplace 获得的产品)来增强服务
What is Service Quotas?
AWS limit monitor - 使用 Amazon SNS 和 AWS Service Quotas API 来根据配额阈值来设置触发响应
- 配置限制阈值
- 与来自 AWS Config、部署管道、Amazon EventBridge 或第三方的更改事件集成
- 设置触发器以根据通知采取适当措施,并在必要时联系 AWS Support
- 测试自动化
- 人工设置低配额阈值来测试响应
- 人工触发更改事件
- 运行实际测试以测试配额提高更改流程
确保在当前配额与最大使用量之间存在足够的差距,以便应对故障转移
- 根据您的部署模式、可用性要求和使用量增长情况确定服务配额
- 确定可靠性要求(也称为“X 个 9”)
- 构建故障场景(例如组件、可用区或区域缺失)
- 确定部署方法(例如 Canary 部署、蓝/绿部署、红/黑部署或滚动部署)
- 在当前限制中包含适当的缓冲区(例如 15%)
- 预计使用量增长(例如监控使用量趋势)
- 根据需要请求增加配额: 预计完成配额提高请求所需的时间