2016-08-18 79 views
3

(已過期Pastbin鏈接刪除)AWS CloudFormation在自動縮放組

不創建初始實例,然後我嘗試創建一個堆棧無法創建自動縮放組作爲沒有創建EC2實例。我如何觸發創建初始實例?

Received 0 SUCCESS signal(s) out of 1. Unable to satisfy 100% MinSuccessfulInstancesPercent requirement 

回答

1

我相信我能夠複製您的症狀與您的模板 - 問題可能與您正在使用的AMI有關。我從市場鏈接中選擇AMI作爲我區域的參考描述中縮短的URL所引用的區域。我仍然在等待資源創建失敗(已經差不多一個小時!),但是其他症狀相匹配。

啓動時,縮放組在ASG控制檯中可見,但有0個實例。然而,活動歷史選項卡顯示了一些嘗試,以啓動一個實例,並全部失敗:

ASG console screenshot

上所有的人的描述是:

說明:啓動新的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資源創建失敗,所以我沒有明確證實這一點。

+0

對不起,我不確定我是否複製了你所看到的內容 - 失敗後(花了一個小時!)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「錯誤...如果接受條款沒有解決您的問題,請隨時取消! –

+0

你好,克里斯。我有同樣的錯誤信息「組沒有穩定」。你解決了這個問題嗎?我用AWS支持打開了一個案例。 – Perimosh

+0

我相信這個錯誤意味着ASG中的EC2實例無法初始化 - ASG重試了很多次,但最終因「組未穩定」錯誤而失敗。 EC2實例可能無法初始化的原因很多 - UserData腳本中的錯誤,AWS Marketplace中的條款和條件要求(如上所述),或過期的或不再可用的AMI ...查看EC2實例中的活動歷史記錄ASG(當它嘗試創建時),並且您應該至少看到一個「失敗」記錄 - 將其展開以獲取有關您的實例的更多信息。 –

0

請注意 - 請參閱其他答案更可能的罪魁禍首。在第一個問題解決後,將此處留作缺失的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添加回用戶數據。

+0

嘿克里斯。沒有EC2實例啓動,所以我不確定它是如何與用戶數據的問題? – AirCombat

+0

您的意思是您在EC2控制檯屏幕中看不到EC2實例?這很奇怪 - 但促使我查看cfn-signal的是「從0接收到0 SUCCESS信號」的消息 - 這表明它收到了一個信號,但沒有一個表示成功。因爲它已經收到信號,我只能猜測用戶數據腳本已經執行...世界值得用一些修改後的用戶數據測試嗎?另一種選擇是嘗試刪除cfn-signal行或用'-e 0'替換'-e $?',無論cfn-init發生什麼情況都應​​該指示成功。 –

+0

我只是在嘗試排除故障後才添加了cnf-init,爲什麼沒有發生。您應該可以通過運行我的模板進行復制。經過長時間的超時後,接收到的0個接收信號(s)從1中失敗。我相信1是由於超時。 – AirCombat

1

驗證將安裝AutoScalingGroup實例的子網可以使用NAT網關或Internet網關連接到Internet。這是因爲實例在堆棧的UserData語句中安裝了一些來自Internet的包。