REL07-BP03 在检测到某个工作负载需要更多资源时获取资源
主动扩展资源来满足需求,避免影响可用性。
很多 AWS 服务会自动扩展资源来满足需求。如果使用 Amazon EC2 实例或 Amazon ECS 集群,您可以根据与工作负载需求对应的使用情况指标,配置这些实例或集群会在何时自动扩展。对于 Amazon EC2,可以使用平均 CPU 利用率、负载均衡器请求数量或网络带宽横向扩展(或横向缩减)EC2 实例。而对于 Amazon ECS,可以使用平均 CPU 利用率、负载均衡器请求数量和内存利用率横向扩展(或横向缩减)ECS 任务。在 AWS 上使用 Target Auto Scaling,Autoscaler 将扮演“家庭恒温器”的角色,增加或减少资源来保持指定的目标值(例如,70% CPU 利用率)。
Amazon EC2 Auto Scaling 还可以执行 Predictive Auto Scaling,该操作利用机器学习来分析每个资源的历史工作负载,并且定期预测未来两天的负载。
利特尔法则可帮助计算您需要多少计算实例(EC2 实例、并发 Lambda 函数,等等)。
L = λW
L = 实例数量(或系统中的平均并发值)
λ = 收到请求的平均速率(请求数量/秒)
W = 每个请求在系统中所花的平均时间(秒)
例如,假设每秒请求数为 100,若每个请求所需的处理时间为 0.5 秒,则需要 50 个实例才能满足需求。
在未建立这种最佳实践的情况下暴露的风险等级:中
实施指导
-
在检测到某个工作负载需要更多资源时获取资源。主动扩展资源来满足需求,避免影响可用性。
-
计算处理给定请求速率需要多少计算资源(计算并发)。
-
如果具有可使用的历史模式,则为 Amazon EC2 Auto Scaling 设置计划扩展。
-
使用 AWS 预测性扩缩。
-
资源
相关文档: