[英]AWS: Elastic Beanstalk and Auto Scaling (When Out of Memory)
[英]Elastic Beanstalk NetworkOut auto scaling if you have only 1 instance
我们有一个 Elastic Beanstalk 环境,几个星期以来,几乎每天早上 8 点 10 分/8 点 20 分,我们都会收到一条通知 (SNS),“环境健康状况已从良好转变为退化”,2 分钟后我们又收到一条消息,“环境健康状况已从“降级”转变为“正常”。
发生这种情况时,正在运行的 EC2 实例将被终止并启动一个新实例。
我通过下载刚刚终止的实例的日志并通过控制所有 CloudWatch 参数进行了调查,我唯一发现的是在实例终止前大约 10 分钟开始出现 CloudWatch NetworkOut < 2000000 警报。
所以我想问题是实例的流量很低。 我也对此表示怀疑,因为我们有针对 2 个国家(.it、.ch)运行的 2 个环境,即使它们在各个方面都相同,但 .it 也有这个问题。
但是,如果问题是自动缩放会触发缩减一个低使用率的实例,那么如果您只有 1 个实例正在运行并且您只设置了 1 种实例类型 (T3.micro) 将被使用,那么如何处理自动缩放缩减,并避免这唯一的实例被终止?
我们是否应该更改自动缩减规模的指标? 实际上,似乎每个指标都可能存在相同的问题。
原来是一场误会。 我可以删除这个问题,但它可能对遇到同样问题的人有用。
所以这就是发生的事情,我以 2003 年 21 月 21 日真正发生的事情为例。
来自 EB 事件:
3 月 21 日星期一 14:01:12 UTC 2022 EB 环境运行状况从“正常”转变为“警告”
2022 年 3 月 21 日星期一 14:02:18 向您的环境添加了实例 [i-...ba4]
2022 年 3 月 21 日星期一 14:10:18 UTC 环境运行状况已从“良好”转变为“退化”。 2 个实例中有 1 个没有收到数据。
2022 年 3 月 21 日星期一 14:11:18 UTC 从您的环境中删除了实例 [i-...a37]。
来自 EB email 通知:
2022 年 3 月 21 日星期一 14:10:18 消息:环境运行状况已从良好转变为退化。 2 个实例中有 1 个未收到数据。
2022 年 3 月 21 日星期一 14:12:18 消息:环境运行状况已从“降级”转变为“良好”。
所以:
关键是,由于 Autoscaling 的触发不是由于用户数量的增加,而是来自单个用户的大数据下载,因此新实例的启动无济于事,环境仍然保持不变降级了几分钟,所以我从 EB 收到了健康通知 email。 但是当我过一会儿检查 CloudWatch 时,我看到的警报是 NetworkOut < 2.000.000。
然后,在 EB 事件中看到一个实例被杀死,一个新实例被 AutoScaling 启动,我误以为这个通知是由于低流量警报,而不是之前的数据传输高峰。
而且由于这个峰值不是由于用户的增加而是由于单个用户的大数据下载,所以从日志中了解发生了什么也不容易。
但是最后查看EB监控NetworkIn参数的时候就清楚了,因为下载的数据是从RDS过来的,所以对应NetworkOut峰值我也看到了一个NetworkIn峰值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.