You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

问询:基于Terraform在AWS搭建带公网IP的最简Apache+EC2配置

最简AWS EC2部署Apache的Terraform配置

你的现有配置已满足需求,但可通过复用AWS默认资源、精简冗余配置实现更简洁的写法,以下是最简版本:

# 查询Ubuntu官方AMI(适配eu-west-2区域)
data "aws_ami" "ubuntu_ami" {
  most_recent = true
  owners      = ["099720109477"] # Canonical官方账号ID

  filter {
    name   = "name"
    values = ["ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-*"]
  }
}

# 安全组:允许HTTP入站
resource "aws_security_group" "apache_http" {
  name        = "apache-http"
  description = "Allow incoming HTTP traffic"

  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  # 省略显式egress规则:Terraform会自动添加全量出站规则(0.0.0.0/0 所有端口/协议)
}

# EC2实例:部署Apache
resource "aws_instance" "apache" {
  ami           = data.aws_ami.ubuntu_ami.id
  instance_type = "t2.micro"
  # 使用默认VPC的公网子网:无需手动创建VPC/子网/IGW/路由表
  vpc_security_group_ids = [aws_security_group.apache_http.id]

  user_data = <<-EOF
              #!/bin/bash
              apt update -y && apt install apache2 -y
              EOF
}

简化说明:

  • 复用默认网络资源:AWS每个区域都提供默认VPC,已预配置互联网网关、公网子网及默认路由表(包含0.0.0.0/0指向IGW的路由),无需手动创建VPC、子网、IGW等组件
  • 精简安全组:省略非必要的IPv6规则(若不需要IPv6访问),且Terraform会自动添加全量出站规则,无需显式声明
  • 简化EC2配置:默认公网子网中启动实例时,map_public_ip_on_launch默认开启,无需手动设置associate_public_ip_address = true
  • 精简user_data:合并命令、去掉冗余日志输出,保持脚本简洁高效

内容的提问来源于stack exchange,提问作者Robert Johnstone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 17:43:11