AWS 控制台 vs Terraform
点击 vs IaC;CodeRoadMap 推荐 TF/GitOps 路径。
25 分钟
AWS 控制台 vs Terraform
控制台点击 适合学习服务概念;Terraform 适合可重复、可审查的环境。CodeRoadMap 生产在 宝塔自建;上云实验应走 IaC + Git,避免「只有某人记得点了什么」。
学习目标
- 对比 Console、CLI、Terraform 的适用场景
- 理解 plan/apply 与手工改资源的 drift
- 对齐 terraform-essentials 工作流
核心内容
三种操作方式
| 方式 | 优点 | 缺点 |
|---|---|---|
| Console | 直观、文档截图友好 | 难复现、无 PR 审查 |
| AWS CLI | 脚本化、CI 友好 | 命令序列难维护 |
| Terraform | 声明式、state、模块化 | 学习曲线、Provider 版本 |
推荐路径:本 track 用 Console/CLI 理解概念 → terraform-essentials 固化拓扑 → kubernetes-essentials + Helm 部署应用。
CodeRoadMap 分层
Terraform 层 → VPC、RDS、EC2、IAM、安全组(见 tf-aws)
Docker 层 → [docker-essentials](/tracks/docker-essentials) 构建镜像
运行时层 → 宝塔进程 / ECS / K8s Pod
宝塔改 Nginx 像 Console 点选;迁移 AWS 后应对应 版本化的 .tf。
Console vs TF 同一资源
Console:VPC → Create → 填 CIDR → 创建子网(多步、易漏标签)。
Terraform:
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
tags = { Name = "coderoadmap-lab" }
}
terraform plan 预览 diff;apply 执行;Git commit 即变更记录。
CLI 与 TF 协作
terraform plan -out=tfplan
terraform apply tfplan
# 发现 drift:有人在 Console 改了 SG
terraform plan # 显示将要改回声明状态
练习
- 用 Console 建一个安全组,再用 TF import 或对照手写 resource
- 读 tf-workflow 的 init/plan/apply
- 列出「适合 Console 实验一次」vs「必须 TF」的资源各 3 项
小结
下一课:成本与免费层。