我正在開發一個由 api 應用程式(AWS API Gateway AWS Lambda)和資料庫(AWS DynamoDB)組成的專案。我使用 Terraform 和 GitLab CI 來自動部署這個專案。當我修改 API Gateway 配置或 Lambda 函式來修復 bug 時,我需要通過執行terraform apply. 這可能會導致資料丟失,因為可能會重新創建 DynamoDB。我想在不更改 CI/CD 管道中的資料庫的情況下發布新版本的 api。在我的理解中,terraform apply -target=xxx適合小系統,但不適合復雜系統。
我想知道是否有使用 IaC 進行資料庫配置的最佳實踐。單獨處理資料庫并在完全不同的系統中跟蹤是否更好?我是否需要在 CI/CD 管道中實作資料庫備份和遷移?
uj5u.com熱心網友回復:
通常在使用 IaC 時,資料庫不會像應用程式部署那樣頻繁修改。即使您部署(更新)Lambda API-Gateway,您也不會接觸資料庫,terraform apply也不應修改應用層和資料層之間的“連接”。即使是這樣,也盡量不要“重新創建”資料庫并從 IaC 本身傳遞所有配置。
如果您的用例必須銷毀資料庫并重新創建,那么您必須在某處自動備份資料并在配置后將其加載到資料庫中。這將很快成為背部疼痛。重新創建資料庫并不理想,備份需要時間,并且重新加載資料成本高(資料傳輸)且速度慢!
也許您應該重新設計您的 IAC 策略,而不必重新創建資料庫。更新小型配置應該不是問題,因為配置將通過 IaC 傳遞(應用層到資料庫層,反之亦然)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/415549.html
標籤:
