1. 创建第一个AWS EC2实例

任务目标

使用 Terraform 在 AWS 上创建一个 t2.micro 类型的 EC2 实例,并在应用成功后输出该实例的公共 IP 地址。本案例使用 ami-0c55b159cbfafe1f0(Amazon Linux 2,us-east-1 区域),密钥对名称需提前在 AWS 控制台创建。

环境准备

  • Terraform ≥ 1.0 已安装并配置 AWS 凭证(环境变量 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY,或 ~/.aws/credentials)
  • 已创建名为 my-key-pair 的 EC2 密钥对(用于 SSH 登录,非本案例核心,但创建实例必需)

完整实现

创建 main.tf 文件,内容如下:

# 指定 AWS 作为云提供商,区域为 us-east-1
provider "aws" {
  region = "us-east-1"
}

# 创建 EC2 实例
resource "aws_instance" "web" {
  ami           = "ami-0c55b159cbfafe1f0"  # Amazon Linux 2 (us-east-1)
  instance_type = "t2.micro"
  key_name      = "my-key-pair"

  tags = {
    Name = "terraform-example"
  }
}

# 输出实例的公共 IP
output "public_ip" {
  value = aws_instance.web.public_ip
}

运行与验证

  1. 在 main.tf 所在目录执行 terraform init,初始化并下载 AWS Provider。
  2. 执行 terraform plan 查看将要创建的资源计划,确认无误。
  3. 执行 terraform apply,输入 yes 确认应用。
  4. 应用成功后,Terraform 会在输出中显示 public_ip = <IP地址>,即为该实例的公共 IP。

验证通过条件:执行 terraform output public_ip 能返回一个合法的 IPv4 地址;登录 AWS 控制台 EC2 页面,能看到名为 terraform-example 的实例处于 running 状态,且其公共 IP 与 Terraform 输出一致。

清理资源

实验完成后执行 terraform destroy 并输入 yes,可释放该实例,避免持续产生费用。