Terraform创建AWS EC2实例失败,其余资源创建正常求助
问题排查:Terraform创建EC2实例卡住无结果
在Windows Powershell中使用Terraform创建AWS资源,VPC、子网、路由表、互联网网关等资源均创建成功,但EC2实例始终停留在"创建中"状态,AWS控制台也无法找到该实例。
EC2实例代码片段
# Create Ubuntu server and install/enable apache2 resource "aws_instance" "web-server-instance" { ami = "ami-0aa2b7722dc1b5612" instance_type = "t2.micro" availability_zone = "us-east-1" key_name = "main-keyy" }
terraform apply 输出
[0m[1maws_vpc.prod-vpc: Creating...[0m[0m [0m[1maws_vpc.prod-vpc: Creation complete after 4s [id=vpc-0251a4f1198589dd5][0m [0m[1maws_internet_gateway.gw: Creating...[0m[0m [0m[1maws_subnet.subnet-1: Creating...[0m[0m [0m[1maws_security_group.allow_web: Creating...[0m[0m [0m[1maws_internet_gateway.gw: Creation complete after 1s [id=igw-007efae68da4918e7] [0m[1maws_route_table.prod-route-table: Creating...[0m[0m [0m[1maws_subnet.subnet-1: Creation complete after 1s [id=subnet-0e7c23002f90b4999] [0m[1maws_route_table.prod-route-table: Creation complete after 2s [id=rtb-0589f802] [0m[1maws_route_table_association.a: Creating...[0m[0m [0m[1maws_security_group.allow_web: Creation complete after 3s [id=sg-0efcc1842043c] [0m[1maws_network_interface.web-server-nic: Creating...[0m[0m [0m[1maws_route_table_association.a: Creation complete after 0s [id=rtbassoc-08dd47] [0m[1maws_network_interface.web-server-nic: Creation complete after 1s [id=eni-0e04] [0m[1maws_eip.one: Creating...[0m[0m **[0m[1maws_instance.web-server-instance: Creating...[0m[0m** [0m[1maws_eip.one: Creation complete after 2s [id=eipalloc-0df345ad18a3bbbd6][0m
terraform plan 输出
[1m # aws_instance.web-server-instance[0m will be created [0m [32m+[0m[0m resource "aws_instance" "web-server-instance" { [32m+[0m[0m ami = "ami-0aa2b7722dc1b5612" [32m+[0m[0m arn = (known after apply) [32m+[0m[0m associate_public_ip_address = (known after apply) [32m+[0m[0m availability_zone = "us-east-1" [32m+[0m[0m cpu_core_count = (known after apply) [32m+[0m[0m cpu_threads_per_core = (known after apply) [32m+[0m[0m disable_api_stop = (known after apply) [32m+[0m[0m disable_api_termination = (known after apply) [32m+[0m[0m ebs_optimized = (known after apply) [32m+[0m[0m get_password_data = false [32m+[0m[0m host_id = (known after apply) [32m+[0m[0m host_resource_group_arn = (known after apply) [32m+[0m[0m iam_instance_profile = (known after apply) [32m+[0m[0m id = (known after apply) [32m+[0m[0m instance_initiated_shutdown_behavior = (known after apply) [32m+[0m[0m instance_state = (known after apply) [32m+[0m[0m instance_type = "t2.micro" [32m+[0m[0m ipv6_address_count = (known after apply) [32m+[0m[0m ipv6_addresses = (known after apply) [32m+[0m[0m key_name = (known after apply) [32m+[0m[0m monitoring = (known after apply) [32m+[0m[0m outpost_arn = (known after apply) [32m+[0m[0m password_data = (known after apply) [32m+[0m[0m placement_group = (known after apply) [32m+[0m[0m placement_partition_number = (known after apply) [32m+[0m[0m primary_network_interface_id = (known after apply) [32m+[0m[0m private_dns = (known after apply) [32m+[0m[0m private_ip = (known after apply) [32m+[0m[0m public_dns = (known after apply) [32m+[0m[0m public_ip = (known after apply) [32m+[0m[0m secondary_private_ips = (known after apply) [32m+[0m[0m security_groups = (known after apply) [32m+[0m[0m subnet_id = (known after apply) [32m+[0m[0m tags = { [32m+[0m[0m "Name" = "web-server" } [32m+[0m[0m tags_all = { [32m+[0m[0m "Name" = "web-server" } [32m+[0m[0m tenancy = (known after apply) [32m+[0m[0m user_data = "919a5df8f376fdfd21155dfe9ce72bdddfd69512" [32m+[0m[0m user_data_base64 = (known after apply) [32m+[0m[0m user_data_replace_on_change = false [32m+[0m[0m vpc_security_group_ids = (known after apply) }
排查步骤
- 检查AWS账户权限:确认Terraform使用的IAM用户拥有
ec2:RunInstances及关联权限(如创建EBS卷、绑定安全组等) - 修正可用区配置:
us-east-1是区域而非可用区,正确格式应为us-east-1a/us-east-1b等,错误的AZ会导致实例创建失败 - 验证密钥对:确认
main-keyy密钥对存在于us-east-1区域,名称完全匹配(大小写敏感) - 查看CloudTrail日志:搜索
RunInstances事件,获取具体错误信息(如资源配额不足、AMI不可用等) - 开启Terraform调试日志:执行
TF_LOG=DEBUG terraform apply,获取详细运行日志定位卡住原因 - 确认AMI可用性:验证
ami-0aa2b7722dc1b5612在us-east-1区域可访问,该AMI对应Ubuntu 20.04,跨区域无法使用 - 检查资源依赖:若EC2关联了自定义网卡
aws_network_interface.web-server-nic,确认网卡已正确配置子网、安全组,无冲突设置
内容的提问来源于stack exchange,提问作者ok7877
相关产品推荐
相关产品推荐

