如何通过Terraform和Terragrunt高效管理AWS基础设施项目?
摘要:# IaC - 基础设施即代码 > 使用 Terraform + Terragrunt 管理 AWS 基础设施 ## 目录 - [一、概述](#一概述) - [二、可用模块](#二可用模块) - [三
# IaC - 基础设施即代码
> 使用 Terraform + Terragrunt 管理 AWS 基础设施
---
## 目录
- [一、概述](#一概述)
- [二、可用模块](#二可用模块)
- [三、项目结构](#三项目结构)
- [四、快速开始](#四快速开始)
- [五、模块使用示例](#五模块使用示例)
- [六、贡献指南](#六贡献指南)
- [七、最佳实践](#七最佳实践)
---
## 一、概述
### 1.1 文档资源
| 文档 | 说明 |
|------|------|
| [devops-iac-terraform-modules](https://github.com/LiquidityTech/devops-iac-terraform-modules/tree/main) | Terraform 模块仓库 |
| IaC 完整使用指南 | 涵盖所有 IaC 项目的完整文档 |
| IaC 快速参考手册 | 常用命令和配置速查 |
### 1.2 技术栈
| 工具 | 版本要求 |
|------|---------|
| **Terraform** | >= 1.8.0 |
| **AWS Provider** | >= 6.0.0 |
| **Terragrunt** | >= 0.72.0 |
---
## 二、可用模块
### 2.1 AWS 模块
| 模块 | 路径 | 说明 | 使用项目 |
|------|------|------|----------|
| **EC2** | `modules/aws/ec2` | EC2 实例管理 | devops-iac-ec2 |
| **EKS** | `modules/aws/eks` | EKS 集群管理 | devops-iac-eks |
| **IAM** | `modules/aws/iam` | IAM 权限管理 | devops-iac-iam |
| **Route53** | `modules/aws/route53` | DNS 管理 | devops-iac-dns |
| **Secrets Manager** | `modules/aws/secrets-manager` | 密钥管理 | devops-iac-secrets |
### 2.2 相关项目
| 项目 | 说明 |
|------|------|
| **devops-iac-secrets** | AWS Secrets Manager 密钥管理 |
| **devops-iac-dns** | Route53 DNS 管理 |
| **devops-iac-ec2** | EC2 实例管理 |
| **devops-iac-eks** | EKS 集群管理 |
| **devops-iac-iam** | IAM 权限管理 |
---
## 三、项目结构
```
devops-terraform-modules/
├── modules/ # Terraform 模块
│ └── aws/ # AWS 相关模块
│ ├── ec2/ # EC2 实例模块
│ ├── eks/ # EKS 集群模块
│ ├── iam/ # IAM 权限模块
│ ├── route53/ # DNS 管理模块
│ └── secrets-manager/ # 密钥管理模块
├── examples/ # 使用示例
└── docs/ # 文档目录
├── IaC-Complete-Guide.md # 完整使用指南
└── IaC-Quick-Reference.md # 快速参考手册
```
---
## 四、快速开始
### 4.1 使用模块
在 Terragrunt 配置中引用模块:
```hcl
terraform {
source = "git::https://github.com/LiquidityTech/devops-iac-terraform-modules.git//modules/aws/ec2?ref=v1.0.0"
}
```
### 4.2 版本管理
推荐使用特定版本或 tag:
```hcl
