Terraform错误启动源实例:等待状态变为超时'成功' (超时:15秒)

时间:2017-08-04 04:01:06

标签: amazon-web-services amazon-ec2 amazon terraform

我为AWS配置了我的terraform。我已经自动化了2个EC2实例和2个ECS优化实例。

我正在申请所有4个实例**Error launching source instance: timeout while waiting for the state to become 'success' (timeout: 15s)**

我在某些博客上发现可能是由于AMI不一致或AMI ID拼写错误。

因此,我已经修复了我的AMI id中的拼写错误并能够启动2个实例。但是,我仍然得到了其他两个实例的超时错误。

我使用的是terraform版本:0.9.6 我创建ec2的TF代码:

resource "aws_instance" "node1" {
  # ECS-optimized AMI for us-west-2
        ami = "ami-62d35c02"
        instance_type = "t2.medium"
    availability_zone = "us-west-2a"
    security_groups = [
        "${aws_security_group.sg.name}"
    ]
    key_name        = "key"
                tags {
            Name           = "Node Server 1"
        }
        user_data = <<EOF
        #!/bin/bash
        echo ECS_CLUSTER=uat >> /etc/ecs/ecs.config
        EOF
        iam_instance_profile = "${aws_iam_instance_profile.ecs.name}"
}

resource "aws_instance" "node2" {
  # ECS-optimized AMI for us-west-2
        ami = "ami-62d35c02"
        instance_type = "t2.medium"
        availability_zone = "us-west-2b"
        security_groups = [
                "${aws_security_group.sg.name}"
        ]
        key_name        = "key"
                tags {
                Name           = "Node Server 2"
        }
        user_data = <<EOF
                #!/bin/bash
                echo ECS_CLUSTER=uat >> /etc/ecs/ecs.config
                EOF
                iam_instance_profile = "${aws_iam_instance_profile.ecs.name}"
}

resource "aws_instance" "mongo" {
        ami = "ami-63ad4b1b"
        instance_type = "t2.medium"
        availability_zone = "us-west-2c"
        security_groups = [
                "${aws_security_group.sg.name}"
        ]
        key_name        = "key"
                tags {
                Name           = "MongoDB Server"
        }
}

resource "aws_instance" "mysql" {
        ami = "ami-22ac4a5a"
        instance_type = "t2.medium"
        availability_zone = "us-west-2c"
        security_groups = [
                "${aws_security_group.sg.name}"
        ]
        key_name        = "key"
                tags {
                Name           = "MySQL Server"
        }
}

有人可以帮帮我吗。

提前致谢。

1 个答案:

答案 0 :(得分:2)

可以使用平台调试日志来识别根本问题。当我遇到此错误时,我的问题是,AWS没有足够的容量供我在配置的可用性区域中选择的实例类型。

以下是调试此错误的一种好方法:

  1. 设置TF_LOG环境变量以启用Terraform调试日志。在Linux或Mac上,可以使用以下命令完成此操作:
export TF_LOG=DEBUG
  1. 运行terraform apply命令。
  2. 出现更改提示时,写上yes,如果计划适合您,请按Enter
  3. 如果收到错误,请在错误上方的几行中搜索[DEBUG]条目,以识别潜在的问题。举个例子,在我的情况下,我发现了以下内容:
[DEBUG] plugin.terraform-provider-aws_v1.58.0_x4:
<Response>
  <Errors>
    <Error>
      <Code>InsufficientInstanceCapacity</Code>
      <Message>We currently do not have sufficient t3.medium capacity in the Availability Zone you requested (us-west-1a). Our system will be working on provisioning additional capacity. You can currently get t3.medium capacity by not specifying an
        Availability Zone in your request or choosing us-west-1b.</Message>
    </Error>
  </Errors>
  <RequestID>...</RequestID>
</Response>
  1. 这应该允许您在要部署的基础架构中执行纠正措施。