我用t2.中等作为我的架构的前端服务器。
通常 AWS 自动扩展使用“CPU 利用率”,但对于 t2 来说有点棘手。当“CPU 信用余额”较低时,t2.medium“CPU 利用率”最高可达 20%,因此自动扩展不会检测到警报。
有没有什么办法可以扩展 t2 实例?
更新: 尝试使用自定义指标https://github.com/shtrihstr/cloudwatch
答案1
如果您的应用程序持续消耗信用,则应绝对避免使用 T2 实例,这恰恰是由于 AWS 提供的 CPU 信用系统存在此类问题。如果您的应用程序持续占用大量 CPU,则最好选择具有相同 CPU/内存比率的 C3/C4 实例(t2.large 除外,它相当于 M4.large)。
自动扩展之所以有效,是因为您假设集群的容量是一致的,并且与实例数量成正比,但在某些情况下使用 T2 实例时,情况可能并非如此。一旦您的部分 ASG 实例(不一定是所有实例,因为启动日期、自动扩展事件等不同)耗尽信用,这些实例提交给 Cloudwatch 的所有指标都会降低 ASG 指标的一致性,使它们无法为自动扩展做出正确的决策。
答案2
我的方法是在 CPU 信用耗尽之前进行扩展。一个简单的方法是定义一个最低可接受信用余额,对我来说这个是 50。
您可以在 CloudWatch 中执行此操作。‘创建警报’,EC2 指标->按自动扩展组。
选择 CPUCreditBalance,最小值为 50。这样,当单个实例在负载均衡器将其从循环中移除之前可能变得缓慢时,我可以采取行动,即使平均余额在可接受的范围内。
您可以创建通知或自动缩放。