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
}
运行与验证
- 在
main.tf所在目录执行terraform init,初始化并下载 AWS Provider。 - 执行
terraform plan查看将要创建的资源计划,确认无误。 - 执行
terraform apply,输入yes确认应用。 - 应用成功后,Terraform 会在输出中显示
public_ip = <IP地址>,即为该实例的公共 IP。
验证通过条件:执行 terraform output public_ip 能返回一个合法的 IPv4 地址;登录 AWS 控制台 EC2 页面,能看到名为 terraform-example 的实例处于 running 状态,且其公共 IP 与 Terraform 输出一致。
清理资源
实验完成后执行 terraform destroy 并输入 yes,可释放该实例,避免持续产生费用。