Jee*_*gre 4 amazon-ec2 amazon-web-services
我正在尝试自动缩放我当前的实例,我现在正在运行一个中等实例并使用小型实例自动缩放。我使用命令行工具来配置设置,这是我用来扩展的配置,除了我的常规实例之外,我至少运行了一个实例,这意味着还有一个实例,并且我已附加到负载均衡器。
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
Run Code Online (Sandbox Code Playgroud)
这里有许多需要考虑的因素。首先,解决最局限的问题——缺乏 SSH 访问。
由于您之前的启动配置没有指定密钥对,您将没有用于访问实例的有效凭据。不幸的是,实例启动后无法添加初始密钥对。
为了解决这个问题,除了之前传递的所有参数之外,您还必须创建一个新的启动配置,传递--key
和--group
参数。--key
采用您要使用的密钥对的名称,同时--group
采用安全组名称(如果不在 VPC 中)或 ID。
在您无法访问实例的情况下,控制台日志可以帮助您验证实例是否已成功启动。一个常见的问题是由于缺少卷而导致启动失败(尤其是在启动较小的实例类型时尝试挂载仅存在于较大实例类型上的临时卷)。
需要重点提及的一点是,如果您更改正在运行的实例,则不会更新 AMI。您必须明确创建新图像。因此,如果您尝试使用当前在自定义实例上使用的相同 AMI 启动新实例,则很有可能您只是启动默认 AMI 之一,而不是在其上进行自定义的 AMI。
使用ec2-describe-images
来决定图片的块设备映射-和体积基于快照-这将验证您将安装具有内置到它自定义设置EBS卷。
如果您没有用于自动缩放的最新 AMI:
ec2-register -n IMAGE_NAME -s SNAPSHOT_ID
--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 --launch-configuration CONFIG_NAME
做出这种改变。
进行更改后,您可以使用 as-execute-policy 命令模拟自动缩放事件。
请记住给您的实例几分钟的时间来启动 - 如果您的 ELB 将实例显示为不健康,您可能需要增加--grace-period
您的自动缩放组。
归档时间: |
|
查看次数: |
10849 次 |
最近记录: |