amazon-ec2 – 实例至少连续失败了健康检查的不健康阈值数

我正在尝试自动调整我现在的实例,我正在运行一个中型实例,并使用小实例自动缩放.我使用命令行工具来配置设置,这是我用来扩展的配置,我运行的常规实例除了一个实例,这意味着还有一个实例,我已经连接到负载均衡器.

s-create-auto-scaling-group groupname –launch-configuration launchconfig –availability-zones ap-southeast-1a –min-size 1 –max-size 5 –load-balancers prod

但是,当我检查了负载均衡器时,它说“停止服务”的原因“实例至少连续失败了健康检查的不健康阈值数”.我怎么能解决这个问题,使用它的公共DNS,我无法从实例得到任何响应,也无法ssh到它,因为键值对没有附加到新创建的实例.

问题是什么.我该如何解决这个问题.

请帮助我解决它的紧急问题,因为我在这一点上已经接近了近2天.

as-describe-launch-configs --show-long --headers



testLC,ami-e8c4bdba,t1.micro,(nil),(nil),(nil),(nil),default,2012-02-03T07:14:54.461Z,true,arn:aws:autoscaling:ap-southeast-1:346266270015:launchConfiguration:175a16db-1f6a-4514-9233-ac7cb34bca90:launchConfigurationName/testLC

as-describe-auto-scaling-groups --show-long --headers

testASG,testLC,ap-southeast-1a,2012-02-03T07:19:10.706Z,prod,EC2,1,5,1,300,0,(nil),(nil),arn:aws:autoscaling:ap-southeast-1:346266270015:autoScalingGroup:c4b584d0-bac4-4507-b972-4fc2b1bc53ac:autoScalingGroupName/testASG,(nil)

as-describe-auto-scaling-instances
i-43796716  testASG  ap-southeast-1a  InService  HEALTHY  testLC

elb-describe-lbs --headers --show-long

prod,prod-11719395.ap-southeast-1.elb.amazonaws.com,prod-11719395.ap-southeast-1.elb.amazonaws.com,Z1WI8VXHPB1R38,"{interval=120,target=HTTP:80/user/sign_in/,timeout=30,healthy-threshold=5,unhealthy-threshold=3}",ap-southeast-1a,(nil),(nil),"i-495dda1c, i-43796716","{protocol=HTTP,lb-port=80,instance-protocol=HTTP,instance-port=80,policies=AWSConsolePolicy-1}",(nil),"{policy-name=AWSConsolePolicy-1,expiration-period=180}","{owner-alias=amazon-elb,group-name=amazon-elb-sg}",(nil),2012-02-01T10:36:08.810Z

elb-describe-instance-health loadbalancername --headers --show-long

INSTANCE_ID,i-495dda1c,InService,N/A,N/A
INSTANCE_ID,i-43796716,OutOfService,Instance has failed at least the UnhealthyThreshold number of health checks consecutively.,Instance
最佳答案
这里需要考虑许多因素.首先,解决最大限制的问题 – 缺少SSH访问.

由于您之前的启动配置未指定密钥对,因此您将没有用于访问该实例的有效凭据.不幸的是,在启动实例后无法添加初始密钥对.

要解决此问题,除了先前传递的所有参数外,还必须创建一个新的启动配置,传递–key和–group参数. –key采用您要使用的密钥对的名称,而–group采用安全组名称(如果不在VPC中)或ID.

如果您无法访问实例,控制台日志可以帮助您验证实例是否已成功启动.常见问题是由于缺少卷导致引导失败(特别是在引导较小的实例类型时,尝试安装仅存在于较大实例类型上的临时卷).

值得一提的是,如果更改正在运行的实例,则不会更新AMI.您必须明确创建新图像.因此,如果您尝试使用当前在自定义实例上使用的相同AMI启动新实例,则很可能只是启动其中一个默认AMI,而不是启用其自定义的AMI.

使用ec2-describe-images确定映像的块设备映射 – 以及卷所基于的快照 – 这将验证您是否将安装内置自定义的EBS卷.

如果您没有用于自动缩放的最新AMI:

>创建EBS卷的快照
>使用ec2-register -n IMAGE_NAME -s SNAPSHOT_ID创建AMI

>如果要附加其他EBS卷,请通过添加–block-device-mapping(-b)参数(例如-b / dev / xvdf = SNAP_ID)指定这些卷.

>验证您是否具有ec2-describe-images的正确块设备映射

获得最新AMI后,您需要创建一个将使用此AMI的新启动配置.如果需要,可以将其他块设备映射传递给命令.使用as-create-launch-config,将新的AMI和之前使用的所有参数传递给它.

最后,您必须更新自动缩放组.此组与特定的启动配置相关联 – 在您明确关联它之前,不会自动检测新的启动配置并且对自动调节组没有影响.使用as-update-auto-scaling-group GROUP_NAME – 发布配置CONFIG_NAME进行此更改.

完成更改后,您可以使用as-execute-policy命令模拟自动缩放事件.

请记住为您的实例启动几分钟 – 如果您的ELB显示实例不健康,您可能希望增加自动缩放组的–grace-period.

转载注明原文:amazon-ec2 – 实例至少连续失败了健康检查的不健康阈值数 - 代码日志