如何模拟Amazon EC2中的服务器故障?

显然,Amazon EC2服务器仍在物理硬件上运行,因此可能会发生灾难性故障。 而在架构上,我应该build立一个横向扩展的应用程序,并围绕这些失败而努力。

我怎样才能模拟一个突然崩溃的EC2实例? 这应该有一个真正的设备故障的特点:

  • 进程不会干净地终止。
  • 内存中的数据没有机会写入磁盘。
  • 文件(例如,在EBS卷上)并没有完全closures。
  • 打开套接字不FIN,他们只是挂起。

系统可能会失败的方式有很多种,所以你可能无法testing所有这些方法,并尝试解决这些问题。

也许你应该从另一个angular度来看待它:寻找必要的服务,然后find一种明确地随意清除这些服务的方法。 这模拟了您关心的故障,无论原因如何。

例如,如果你的实例运行一个httpd和一个FTP服务器,你可以偶尔杀掉这些守护进程,并确保你可以从中恢复。 如果需要,甚至可以使用AWS API以编程方式终止整个服务器。

如果恢复不起作用,这也将执行您的监控基础架构:-)