Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon ec2 如何使EC2实例在ELB说它';有空吗?_Amazon Ec2_Amazon Web Services_Reboot_Amazon Elb - Fatal编程技术网

Amazon ec2 如何使EC2实例在ELB说它';有空吗?

Amazon ec2 如何使EC2实例在ELB说它';有空吗?,amazon-ec2,amazon-web-services,reboot,amazon-elb,Amazon Ec2,Amazon Web Services,Reboot,Amazon Elb,弹性负载平衡器(ELB)时不时会因为我的一台服务器不可用而将其踢出。这很好,几乎没有任何干扰 通常,只需通过AWS控制台重新启动实例即可解决问题 我想让我的EC2实例在不可用时自动重新启动 最好的方法是什么?(它恰好是一个Windows实例,但理想情况下这并不重要)一般来说,您应该为负载平衡器设置一个自动缩放组。自动缩放组将包含有关服务器配置方式的信息。例如,它将有一个ami和可能的用户数据文件,允许在没有任何用户交互的情况下对其进行配置。当这两个服务一起工作时,负载平衡器将终止失败的实例并立即

弹性负载平衡器(ELB)时不时会因为我的一台服务器不可用而将其踢出。这很好,几乎没有任何干扰

通常,只需通过AWS控制台重新启动实例即可解决问题

我想让我的EC2实例在不可用时自动重新启动


最好的方法是什么?(它恰好是一个Windows实例,但理想情况下这并不重要)

一般来说,您应该为负载平衡器设置一个自动缩放组。自动缩放组将包含有关服务器配置方式的信息。例如,它将有一个ami和可能的用户数据文件,允许在没有任何用户交互的情况下对其进行配置。当这两个服务一起工作时,负载平衡器将终止失败的实例并立即启动新实例


考虑到您正在使用windows实例,您可以编写powershell脚本来配置服务器,并在服务器启动时使用CloudInit.NET执行脚本。脚本的最后一部分应该启用对负载平衡器的检查。

我得到了一个便宜的EC2微实例,并编写了一个简单的脚本,列出了EC2上的所有服务器,并对每个服务器进行了检查,以确保其正常运行。如果服务器运行不正常,我的脚本将重新启动它。我让脚本每10分钟运行一次


如果有一个服务为我做这件事会稍微容易一些,但是系统很容易设置,微实例也很便宜。

使用autoscaling group并将其设置为保持一个活动实例。如果您的实例崩溃,它将从预定义的实例映像生成一个新实例。这既简单又方便

编写一个lambda函数

它比运行微实例更便宜,并且您可以将其设置为以任意间隔运行。您还可以使用它进行CloudWatch监控,因此不必担心单独检查微实例的运行状况

我使用的是ElasticBeanstalk,它提供了
describeInstancesHealth
端点。或者,您可以使用ec2的
descripbeInstanceStatus
端点


然后,如果您检测到一个坏实例,ec2的
重新启动程序让您重新启动一个或多个实例。

同意@agmin的观点,lambda函数是一种很好的方法。您可以通过SNS主题配置CloudWatch警报以触发lambda功能

我把这个实现放在一起,它似乎工作得很好。可以完全通过命令行进行设置和配置:


您可以通过CloudWatch闹钟自动执行此操作。当由于实例已死亡而触发警报时,可以让警报采取的操作之一是重新启动实例。无需花费时间制作lambda或让微实例为您处理此问题


这是一个很好的信息,但出于各种原因,我仍然希望简单地重新启动,而不是终止->新建实例。您可以尝试使用new ec2 Descripte instance status命令并编写脚本,在实例关闭时重新启动实例。此脚本还需要将实例添加回负载平衡器。非常容易写的脚本。一旦脚本完成,将其放在crontab中,只要运行它的机器工作,它就会工作。如果你的微实例崩溃了怎么办?已经发生了。现在我收到一个Pingdom警报。但是,理想情况下,我应该让生产服务器检查micro,micro检查生产。叹气。想分享这个脚本吗?@Mike-这是一个ColdFusion脚本,我猜对你来说没有多大用处。虽然这是真的,但经常重新启动相关实例可以解决问题,而且重新启动比启动新实例快得多…