AWS CloudFormation在自动缩放组
(已过期Pastbin链接删除)AWS CloudFormation在自动缩放组
不创建初始实例,然后我尝试创建一个堆栈无法创建自动缩放组作为没有创建EC2实例。我如何触发创建初始实例?
Received 0 SUCCESS signal(s) out of 1. Unable to satisfy 100% MinSuccessfulInstancesPercent requirement
我相信我能够复制您的症状与您的模板 - 问题可能与您正在使用的AMI有关。我从市场链接中选择AMI作为我区域的参考描述中缩短的URL所引用的区域。我仍然在等待资源创建失败(已经差不多一个小时!),但是其他症状相匹配。
启动时,缩放组在ASG控制台中可见,但有0个实例。然而,活动历史选项卡显示了一些尝试,以启动一个实例,并全部失败:
上所有的人的描述是:
说明:启动新的EC2实例。状态原因:在 为了使用此AWS Marketplace产品,您需要接受条款和 订阅。要做到这一点,请访问 http://aws.amazon.com/marketplace/pp?sku=aw0evgkw8e5c1q413zgy5pjce。 启动EC2实例失败。
您接受了条款并在市场上订阅了该AMI吗?这里有更多的细节:https://aws.amazon.com/marketplace/help/200799470#topic1
注意:我相信你只能在控制台看到ASG,而cloudformation正在等待 - 在cfn回滚之后,asg(和活动历史)将消失。由于我还在等待asg资源创建失败,所以我没有明确证实这一点。
请注意 - 请参阅其他答案更可能的罪魁祸首。在第一个问题解决后,将此处留作缺失的configset也可能会导致问题。
的调用的UserData CFN-初始化其引用configset InstallAndRun
不存在:
"/opt/aws/bin/cfn-init ",
" --stack ", { "Ref" : "AWS::StackName" },
" --resource LaunchConfig",
" --configsets InstallAndRun ",
" --region ", { "Ref" : "AWS::Region" },"\n",
要使用CFN-init和指定configset,你需要指定的启动配置一个AWS::CloudFormation::Init
块元数据,并包含一个引用您希望cfn-init执行的配置元素的configset定义。有关更多详细信息,请参见http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-init.html#aws-resource-init-configsets。
举个例子,你需要:
"LaunchConfig" : {
"Type" : "AWS::AutoScaling::LaunchConfiguration"
"Metadata" : {
"AWS::CloudFormation::Init" : {
"configSets" : {
"InstallAndRun" : [ "config1" ]
},
"config1" : {
"commands" : {
"test" : {
"command" : "echo \"$MAGIC\" > test.txt",
"env" : { "MAGIC" : "I come from the environment!" },
"cwd" : "~",
"test" : "test ! -e ~/test.txt",
"ignoreErrors" : "false"
}
}
}
}
},
"Properties" : {
...
}
}
没有元数据,CFN-init将失败,并且CFN信号线告诉cloudformation该资源初始化失败。
作为诊断过程,请尝试删除对cfn-init和cfn-signal的引用,并查看实例是否启动。如果确实如此,并且您确实需要使用cfn-init定义一些实例配置步骤,请定义元数据块以指定步骤,并将调用cfn-init和cfn-signal添加回用户数据。
嘿克里斯。没有EC2实例启动,所以我不确定它是如何与用户数据的问题? – AirCombat
您的意思是您在EC2控制台屏幕中看不到EC2实例?这很奇怪 - 但促使我查看cfn-signal的是“从0接收到0 SUCCESS信号”的消息 - 这表明它收到了一个信号,但没有一个表示成功。因为它已经收到信号,我只能猜测用户数据脚本已经执行...世界值得用一些修改后的用户数据测试吗?另一种选择是尝试删除cfn-signal行或用'-e 0'替换'-e $?',无论cfn-init发生什么情况都应该指示成功。 –
我只是在尝试排除故障后才添加了cnf-init,为什么没有发生。您应该可以通过运行我的模板进行复制。经过长时间的超时后,接收到的0个接收信号(s)从1中失败。我相信1是由于超时。 – AirCombat
验证将安装AutoScalingGroup实例的子网可以使用NAT网关或Internet网关连接到Internet。这是因为实例在堆栈的UserData语句中安装了一些来自Internet的包。
对不起,我不确定我是否复制了你所看到的内容 - 失败后(花了一个小时!)ASG CREATE_FAILED事件的状态原因是“\t组没有稳定。{current/minSize/maxSize}组大小= {0/2/3}。失败的缩放活动:要使用此AWS Marketplace产品,您需要接受条款并进行订阅。为此,请访问http://aws.amazon.com/marketplace/pp?sku=aw0evgkw8e5c1q413zgy5pjce 。启动EC2实例失败。“,而不是您看到的”收到0 SUCCESS信号(s)出1“错误...如果接受条款没有解决您的问题,请随时取消! –
你好,克里斯。我有同样的错误信息“组没有稳定”。你解决了这个问题吗?我用AWS支持打开了一个案例。 – Perimosh
我相信这个错误意味着ASG中的EC2实例无法初始化 - ASG重试了很多次,但最终因“组未稳定”错误而失败。 EC2实例可能无法初始化的原因很多 - UserData脚本中的错误,AWS Marketplace中的条款和条件要求(如上所述),或过期的或不再可用的AMI ...查看EC2实例中的活动历史记录ASG(当它尝试创建时),并且您应该至少看到一个“失败”记录 - 将其展开以获取有关您的实例的更多信息。 –