几个月前,我们开始在舞台环境中测试亚马逊的自动缩放功能。
从那以后,我们创建了新的图像并启动配置投掷代码并每天至少更新两次自动缩放。
自动缩放具有适当的冷却时间和我们的应用程序服务器响应的ELB运行状况检查。
最近,某些连接到自动缩放的ELB的实例状态检查失败,并且它们即将终止。 通常它是自动缩放的正确行为,但它发生了很多。
有人可以从他的经验中判断,如果在一天中很长一段时间内创建新图像时,状态检查失败会增加吗?
答案 0 :(得分:1)
在Amazon EC2实例上执行了两种类型的状态检查。
来自Status Checks for Your Instances:
系统状态检查
监控使用您的实例所需的AWS系统,以确保它们正常运行。这些检查检测您的实例需要AWS参与修复的问题。当系统状态检查失败时,您可以选择等待AWS解决问题,或者您可以自行解决(例如,通过停止和启动实例,或通过终止和替换实例)。
以下是可能导致系统状态检查失败的问题示例:
- 网络连接丢失
- 系统功率损失
- 物理主机上的软件问题
- 物理主机上的硬件问题
实例状态检查
监控单个实例的软件和网络配置。这些检查检测到需要您参与维修的问题。当实例状态检查失败时,通常您需要自己解决问题(例如,通过重新启动实例或更改实例配置)。
以下是可能导致实例状态检查失败的问题示例:
- 系统状态检查失败
- 网络或启动配置不正确
- 耗尽记忆
- 文件系统损坏
- 不兼容的内核
状态检查& Auto Scaling
Auto Scaling没有理由导致状态检查失败。使用AMI可能存在问题(例如,不兼容的内核),但在Auto Scaling下运行AMI与在Auto Scaling之外运行它没有什么不同。尝试使用不带Auto Scaling的AMI启动Amazon EC2实例,看它是否会导致失败。
Auto Scaling& ELB健康检查
Auto Scaling也可以配置为使用ELB运行状况检查。这就是Auto Scaling所信任的地方。如果ELB确定实例不健康,则ELB运行状况检查并终止实例。这种类型的健康检查的好处是ELB可以检查特定的URL或端口,这比仅使用上述状态检查更准确。
配置不当的ELB运行状况检查可能会导致Auto Scaling出现“骚扰”问题。通过杀死实例并再次启动它们。在应用ELB运行状况检查之前,请务必提供足够的冷却时间以允许实例启动。