Files
nexus/wiki/sources/learning-sessions-cloud-transformation-programme-deploying-rds-via-terraform.md

58 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Learning Sessions Cloud Transformation Programme-Deploying RDS via Terraform"
type: source
tags: [Terraform, RDS, IaC, CTP, DevOps, DBRE, AWS]
date: 2026-04-14
---
## Source File
- [[Cloud & DevOps/Public-Cloud-Learning-Sessions/03_Terraform/learning-sessions-cloud-transformation-programme-deploying-rds-via-terraform]]
## Summary用中文描述
- 核心主题:**通过 Terraform 在 AWS 上部署 RDS 数据库**,涵盖 IaC 最佳实践和 Gruntwork RDS 模块的选型对比
- 问题域RDS 部署方式的选择(控制台 vs 代码、模块选型grunt work 模块 vs SRE 核心模块、Day 2 运维(扩缩容/补丁/升级)
- 方法/机制:使用 TerragruntTerraform 封装器)管理 RDS 部署,通过 GitHub PR + Atlantis 实现变更自动化CloudWatch 负责监控告警
- 结论/价值IaC 部署任何规模的 RDS 到 AWS 均优于控制台grunt work RDS Service 相比裸模块提供更完整的企业级功能KMS 加密、CloudWatch 告警等);代码即文档
## Key Claims用中文描述
- **IaC 六大大好处**:速度、灵活性、一致性、灾难恢复、文档、自动化。代码即文档
- **两种 RDS 部署选项**:裸模块 RDS module基础功能vs 更完整的 grunt work RDS Service推荐预建 KMS 加密和 CloudWatch 告警)
- **SRE 核心模块功能弱于 grunt work 服务**:建议生产环境使用 grunt work RDS Service
- **Terragrunt 优于裸 Terraform**:避免变量重复声明,保持代码整洁,贯彻 DRY 原则
- **Day 2 运维通过 GitHub PR + Atlantis 实现**:扩缩容、补丁、大版本升级均在 Terragrunt 文件中修改,通过 PR 触发 Atlantis 自动应用
- **监控方案**CloudWatch Dashboard + Alarms注意突发性能实例burstable instance的 CPU credits 消耗
## Key Quotes
> "We use Terragrunt, which is basically it's a wrapper around Terraform, and it allows you to keep your code clean and you're not repeating your variables all the time." — Greg, DBRE Team
> "The code is the documentation." — Greg, 强调 IaC 的文档价值
## Key Concepts
- [[Infrastructure-as-Code]]:通过代码定义和版本控制基础设施资源,核心优势包括速度、一致性、灾难恢复和自动化
- [[DRY Principle]]Terragrunt 通过管理 provider 和 remote_state 块减少跨环境重复声明
- [[GitOps]]:通过 GitHub PR + Atlantis 实现基础设施变更的自动化审核和应用
- [[CloudWatch-Alarms]]RDS 监控与告警机制,包含突发性能实例的 CPU credits 考虑
- [[KMS-Encryption]]grunt work RDS Service 内置的 KMS 密钥加密功能
## Key Entities
- [[Gruntwork]]:提供预建 Terraform 模块RDS Service 等),建议生产环境使用其 grunt work RDS Service 而非裸模块
- [[Atlantis]]Git 驱动的 Terraform 自动化工具,配合 GitHub PR 实现 IaC 变更
- [[Terraform]]:云厂商无关的 IaC 核心工具
- [[Terragrunt]]Terraform 的 DRY 封装层,用于管理 RDS 部署配置
- [[DBRE]]Database Reliability Engineering 团队Greg 来自该团队
- [[CloudWatch]]AWS 监控服务,用于 RDS Dashboard 和 Alarms
## Connections
- [[learning-sessions-cloud-transformation-programme-20230808-183322-meeting-recordi]] ← related ← [[learning-sessions-cloud-transformation-programme-deploying-rds-via-terraform]](同一 CTP 系列ECS 部署 + RDS 部署)
- [[ctp-topic-48-terraform-vs-terragrunt]] ← related ← [[learning-sessions-cloud-transformation-programme-deploying-rds-via-terraform]]Terragrunt 在两个主题中均有讨论)
- [[ctp-topic-16-cross-account-terraform-modules]] ← related ← [[learning-sessions-cloud-transformation-programme-deploying-rds-via-terraform]]IaC 模块化 + Cross-account Terraform
- [[ctp-topic-9-ci-cd-with-gruntwork]] ← foundation ← [[learning-sessions-cloud-transformation-programme-deploying-rds-via-terraform]]Gruntwork CI/CD 基础)
- [[Terraform]] ← wraps ← [[Terragrunt]]
- [[Gruntwork]] ← provides ← [[RDS-Module]]grunt work RDS Service
- [[Atlantis]] ← automates ← [[Terraform]]
- [[CloudWatch]] ← monitors ← [[RDS-Module]]
## Contradictions
- 与 [[ctp-topic-9-ci-cd-with-gruntwork]]Gruntwork CI/CD两者均依赖 Gruntwork 模块体系;本主题聚焦 RDS 部署CI/CD 主题聚焦 ECS 应用部署RDS 部署同样适用 Gruntwork 流水线规范,两者互补而非冲突
- 与 [[ctp-topic-48-terraform-vs-terragrunt]]Terraform vs Terragrunt本主题的实际案例印证了该主题的观点——Terragrunt 保持代码整洁、避免变量重复;两主题一致,共同推荐 Terragrunt 作为 Terraform 的封装层
- 与 [[ctp-topic-16-cross-account-terraform-modules]](跨账号 Terraform 模块):两者均讨论 Terraform 模块的运维方式跨账号模块方案Jenkins + ECS Deploy Runner与本主题RDS 通过 Atlantis的 CI/CD 载体不同,适用于不同规模和架构场景,无直接冲突