Terraform 与 AWS - 第1天:为什么 Terraform 很重要以及它的真实工作原理

发布: (2025年12月19日 GMT+8 03:41)
4 min read
原文: Dev.to

Source: Dev.to

什么是基础设施即代码(IaC)?

基础设施即代码(IaC)指的是使用代码来创建和管理云基础设施。
它让你可以用代码代替在云控制台里点击按钮。

示例

resource "aws_instance" "demo" {
  ami           = "ami-12345"
  instance_type = "t2.micro"
}

IaC 的优势

  • 可重复
  • 一致性
  • 版本控制
  • 自动化
  • 零错误(降低人为失误)
  • 团队友好

IaC 使用的工具

多云工具

  • Terraform ⭐(最流行)
  • Pulumi

云厂商专属工具

  • AWS CloudFormation、CDK、SAM
  • Azure ARM、Bicep
  • GCP Deployment Manager

Terraform 是通用的——它支持 AWS、Azure、GCP、Kubernetes 以及数十种其他平台。这也是几乎所有 DevOps 路线图都以 Terraform 为起点的原因。

为什么我们需要 Terraform?

手动搭建基础设施难以扩展

以一个简单的 3 层应用(Web、App、数据库)为例,手动部署需要创建:

  • VPC
  • 子网
  • EC2 实例
  • 自动伸缩组
  • 负载均衡器
  • RDS 数据库
  • Route 53 记录
  • 安全组
  • …以及更多

手动完成这些大约需要 每个环境 2 小时。再乘以常见的环境(开发、预发布、生产)→ 每个应用 12 小时。在真实公司里,往往有数十甚至数百个应用需要部署,导致:

  • 工作耗时
  • 成本高
  • 易出错
  • 环境不一致
  • 没有审计日志

手动云资源配置的挑战

  • 速度慢 → 发布延迟
  • 需要大量人力 → 基础设施团队成本高
  • 人为错误(错误的 AMI、子网、IP) → 故障宕机
  • 缺乏一致性(开发 ≠ 预发布 ≠ 生产) → “在我机器上可以跑!”
  • 没有版本控制 → 无历史、审计或回滚

Terraform:终极解决方案

  • 编写一次基础设施代码
  • 可在任意数量的环境中复用
  • 保持所有环境一致
  • 自动化部署
  • 消除人为错误
  • 通过 Git 跟踪所有变更
  • 自动销毁环境以节省成本

只需几个 .tf 文件,就能为云基础设施带来速度、安全、可重复性和可控性。

Terraform 的实际工作原理

Terraform 使用一种声明式语言 HCL(HashiCorp Configuration Language)。你在 .tf 文件中描述期望的状态。

示例

resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
}

核心命令

  • terraform init – 下载提供商插件(始终是第一条命令)。
  • terraform validate – 检查 Terraform 文件的语法是否正确。
  • terraform plan – 预览 Terraform 将创建、修改或删除的内容(安全检查)。
  • terraform apply – 通过 API 实际在 AWS 上创建基础设施。
  • terraform destroy – 删除 .tf 文件中定义的所有资源;适用于开发/测试环境。

Terraform + Git = 纯粹的魔法

将 Git 与 Terraform 结合使用可以实现:

  • 完整的版本历史
  • 轻松回滚
  • 拉取请求审批
  • 跨团队协作
  • 更快的审批流程
  • CI/CD 自动化

基础设施因此变得可预测、安全且可审计。

安装 Terraform(快速概览)

  • 通过 Homebrew、apt、yum 或 Chocolatey 安装。
  • 验证安装:terraform version
  • 安装 VS Code 扩展 HashiCorp Terraform
  • (可选)设置别名:alias tf=terraform,以便更快捷地使用。

现在,你已经准备好开始构建基础设施即代码了!

Back to Blog

相关文章

阅读更多 »

AWS Terraform 生命周期规则

介绍 基础设施即代码(IaC)在您能够完全控制资源在更新、替换和删除过程中的行为时最为强大。Terr…