web-dev-qa-db-ja.com

AWSCloudFormationがAutoScalingグループに初期インスタンスを作成していません

(期限切れのパストビンリンクが削除されました)

次に、スタックを作成しようとすると、EC2インスタンスが作成されないため、AutoScalingグループの作成に失敗します。初期インスタンスの作成をトリガーするにはどうすればよいですか?

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

テンプレートを使用して症状を再現できたと思います。この問題は、使用しているAMIに関連している可能性があります。パラメータの説明で短縮URLで参照されているように、マーケットプレイスのリンクから地域のAMIを選択しました。リソースの作成が失敗するのをまだ待っていますが(ほぼ1時間です!)、それ以外の場合は症状が一致します。

起動中、スケーリンググループは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

注:CloudformationがASGを待機している間のみ、コンソールにASGが表示されると思います。cfnがロールバックすると、asg(およびアクティビティ履歴)は表示されなくなります。 asgリソースの作成が失敗するのをまだ待っているので、これを明確に確認していません。

3
Chris Simon

AutoScalingGroupのインスタンスがインストールされるサブネットが、NATゲートウェイまたはインターネットゲートウェイのいずれかを使用してインターネットに接続できることを確認します。これは、インスタンスがスタックのUserDataステートメントでインターネットからいくつかのパッケージをインストールするためです。

2
Daniel Burbano

注-より可能性の高い原因については、他の回答を参照してください。 configsetがないため、これをここに残しておくと、最初の問題が解決されたときに問題が発生する可能性もあります。

UserDataは、存在しないconfigset InstallAndRunを参照するcfn-initを呼び出します。

                    "/opt/aws/bin/cfn-init ",
                    "         --stack ", { "Ref" : "AWS::StackName" },
                    "         --resource LaunchConfig",
                    "         --configsets InstallAndRun ",
                    "         --region ", { "Ref" : "AWS::Region" },"\n",

Cfn-initを使用して構成セットを指定するには、起動構成メタデータにAWS::CloudFormation::Initブロックを指定し、cfn-initで実行する構成要素を参照する構成セット定義を含める必要があります。詳細については、 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-signal行はcloudformationにリソースの初期化が失敗したことを通知します。

診断プロセスとして、cfn-initおよびcfn-signalへの参照を削除し、インスタンスが起動するかどうかを確認してください。含まれている場合で、cfn-initを使用して定義するインスタンス構成手順がいくつかある場合は、メタデータブロックを定義して手順を指定し、cfn-initおよびcfn-signalへの呼び出しをユーザーデータに追加します。 。

0
Chris Simon