自动备份AWS RDS MySQL的serverless解决方案

AWS RDS MySQL 自动备份工具

AWS RDS自带了备份功能,只需要在数据库初始化阶段打开即可。
Additional Configuration -> Backup

有两个不方便的点

  1. AWS RDS的备份文件没有提供下载选项,不能还原到本地数据库。
  2. 另外,如果是自己maintain的mysql数据库实例,有时候也需要做定期备份。

这里介绍一个使用serverless部署lambda,利用CloudWatch schedule定期备份mysql数据库到S3的解决方案:

backup-mysql-arch

源码

源码地址

涉及的技术

  • serverless
    我一般用serverless framework部署lambda,它同时会生成lambda的依赖性,例如S3 Bucket, IAM Policy和CloudWatch的schedule
  • CloudFormation
    serverless部署到AWS,本质上,在后台是翻译成CloudFormation支持的语法,最终部署到AWS上。在写serverless脚本的时候,特别是写resources节点的时候,如果不知道怎么写,可以参考CloudFormation的文档
  • typescript
    现在比较习惯用typescript写nodejs代码,因为可维护性比较强;同时我选择的lambda运行时是node.js, 在部署的时候需要将typescript translate to JavaScript
  • mysqldump
    mysql官方给的备份工具就是mysqldump, 在这里我找到一个nodejs的实现npm包
posted @ 2021-01-21 09:09  bingliang  阅读(389)  评论(0编辑  收藏  举报