首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IaC下的数据库配置实践

IaC下的数据库配置实践
EN

Stack Overflow用户
提问于 2022-01-18 04:13:35
回答 1查看 152关注 0票数 0

我正在从事一个由api应用程序( application + AWS )和数据库(AWS )组成的项目。我使用Terraform和GitLab CI来自动化这个项目的部署。当我修改API配置或Lambda函数以修复bug时,我需要通过执行DynamoDB重新部署整个系统(可能包括terraform apply )。这可能会导致数据丢失,因为DynamoDB可能会被重新创建。我想在不改变CI/CD管道数据库的情况下发布一个新版本的api。据我理解,terraform apply -target=xxx适用于小型系统,但不适合复杂系统。

我想知道是否有使用IaC提供数据库的最佳实践。在一个完全不同的系统中分别对待数据库和跟踪数据库更好吗?是否需要在CI/CD管道中实现数据库备份和迁移?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-18 09:36:22

通常,在使用IaC时,数据库并不像应用程序部署那样频繁地被修改。即使在部署(更新) Lambda +API时,您也没有接触到DB,terraform apply也不应该修改应用程序层和数据层之间的“连接”。即使是这样,也不要试图“重新创建”数据库,并传递来自IaC本身的所有信任。

如果您的用例必须破坏数据库并重新创建,那么您必须在某个地方自动备份数据,并在提供之后将其加载到DB中。这很快就会让人感到背部疼痛。重新创建数据库是不理想的,备份需要时间,重新加载数据是昂贵的(数据传输)和缓慢!

也许您应该重新设计您的IAC策略,这样您就不必经常重新创建DB了。更新小的信任不应该是一个问题,因为信任将通过IaC传递(应用程序层到DB层,反之亦然)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70750205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档