AWS Auto Scaling 测试失败实例

Posted

技术标签:

【中文标题】AWS Auto Scaling 测试失败实例【英文标题】:AWS auto scaling test failed instance 【发布时间】:2014-01-06 22:14:38 【问题描述】:

我有一个自动缩放 cloudformation,我想我已经设置它来替换基于 StatusCheckFailed_Instance 的失败实例。我想测试一下。我可以通过终止其中一个 EC2 实例来测试吗?谢谢!

【问题讨论】:

【参考方案1】:

实例状态检查可能由于以下原因之一失败:

内存错误

内存不足:杀死进程 错误:mmu_update 失败(内存管理更新失败)

设备错误

I/O 错误(块设备故障) IO 错误:既不是本地磁盘也不是远程磁盘(分布式块设备损坏)

内核错误

request_module: runaway loop modprobe(在旧 Linux 版本上循环遗留内核 modprobe) “致命:内核太旧”和“fsck:尝试打开 /dev 时没有此类文件或目录”(内核和 AMI 不匹配) “致命:无法加载 /lib/modules”或“BusyBox”(缺少内核模块) 错误内核无效(EC2 不兼容内核)

文件系统错误

request_module: runaway loop modprobe(在旧 Linux 版本上循环遗留内核 modprobe) fsck:尝试打开时没有这样的文件或目录...(找不到文件系统) 挂载文件系统的一般错误(挂载失败) VFS:无法在未知块上挂载根 fs(根文件系统不匹配) 错误:无法确定根设备的主要/次要编号...(根文件系统/设备不匹配) XENBUS:没有驱动程序的设备... ...天数未检查,强制检查(需要文件系统检查) fsck 因退出状态而死...(缺少设备)

操作系统错误

GRUB 提示符 (grubdom>) 启动接口 eth0:设备 eth0 的 MAC 地址与预期不同,忽略。 (硬编码 MAC 地址) 无法加载 SELinux 策略。机器处于强制执行模式。现在暂停。 (SELinux 配置错误) XENBUS:连接设备超时(Xenbus 超时)

在我看来,#1 是最容易实现按需失败的。您可以添加 web 挂钩或启动一个延迟的 shell 脚本来启动一些会导致 OutOfMemory 失败的进程,以确认您的自动缩放配置按配置工作。

终止实例无助于测试您的配置,因为当您正常终止实例时,它会从可用实例池中删除,并且不会执行检查。

关于状态检查的更多细节可以在这里找到:Troubleshooting Instances with Failed Status Checks

【讨论】:

以上是关于AWS Auto Scaling 测试失败实例的主要内容,如果未能解决你的问题,请参考以下文章

在某些情况下,AWS ELB 不会将请求分发到 Auto Scaling 组 EC2 实例

Amazon EC2 Auto Scaling 测试

ec2 实例和 AWS Auto Scaling 组

带有预留实例的 AWS Auto Scaling

amazon aws Auto Scaling 组实例名称标签

AWS Auto Scaling - 带有 2 个固定实例