【问题标题】:Lambda RDS backupsLambda RDS 备份
【发布时间】:2018-05-25 04:19:11
【问题描述】:

我正在处理一个需要自动备份两个 RDS 实例的项目。实现这一目标的最佳方法是什么?

我正在考虑创建一个 lambda 函数,它使用标签“备份”备份所有 RDS,类似于我为 EC2 所做的。

感谢任何有关如何完成此任务的建议。

【问题讨论】:

  • RDS 已经具备自动备份功能。除此之外,您还想完成什么具体的工作?
  • 嗨,马克。我需要每隔指定的时间间隔自动备份 RDS 实例,还需要删除超过一周的 RDS 备份。
  • 什么时间间隔?
  • @AnchovyLegend RDS 内置了该功能。您可以选择要保留备份的天数,还可以选择备份时间窗口。
  • @markb 我相信这是每天固定一次的时间表。某些用例或备份策略可能需要更频繁的间隔?或者这些 RDS 备份中的一些是在自动快照可用之前的几天?

标签: amazon-web-services amazon-ec2 aws-lambda amazon-rds


【解决方案1】:

这是一个很好的 RDS 维护 Lambda 示例,用于管理来自 Lambda 的自动 RDS 备份:https://github.com/cevoaustralia/aws-backup-lambda

如 cmets 中所述,RDS 在服务中内置了每日自动备份,但如果您需要不同或更频繁的计划,则可以使用 Lambda 自动备份。

该项目声明:

用于管理 EBS 和 RDS 快照备份的实用 AWS lambda 函数。 Lambda 函数在执行时获取新的备份,并管理 达到上限时删除旧的。

除了 RDS 自动备份之外,如果您想自动将这些快照复制到不同的区域以进​​行灾难恢复,则可以使用不同的/专用的 Lambda 来复制快照。

使用上述 Lambda 来安排您的快照,此 Lambda 会定期将最新的快照复制到另一个区域,并修剪“外部”区域中的旧快照。见https://github.com/pbudzon/aws-maintenance

另请参阅有关依赖 RDS 快照与本机备份的优缺点的答案:Should I stick only to AWS RDS Automated Backup or DB Snapshots?

【讨论】:

    【解决方案2】:

    RDS 具有自动快照,但您可以复制这些快照。

    本教程展示了如何自动跨区域复制,但可以轻松修改以将其复制到同一区域。

    它包括所有需要的代码以及分步说明和视频演练!

    https://geektopia.tech/post.php?blogpost=Automating_The_Cross_Region_Copy_Of_RDS_Snapshots

    【讨论】:

      【解决方案3】:

      RDS 具有开箱即用的自动备份,但它会在 35 天后过期,因此您可以复制这些自动备份并手动将其变为没有过期日期的备份。我写了一篇关于这个的文章,我也在github上发布了一个项目

      https://medium.com/@krisnamourt.filho/aws-rds-backup-strategy-f0cd1e0ac10f https://github.com/krismorte/lambda-rds-snapshot

      这是复制 rds 快照的示例

         var cluster = await rdsFunc.describeClusters();
      
      cluster.forEach(async (cluster)=>{
          var snaps = await rdsFunc.describeClustersAutomatedSnapshot(cluster.DBClusterIdentifier)
          if(snaps){
            snaps.forEach(async (snap)=>{
              var copyDate = dateFunc.minusDaysFromToday(daysBefore);
              var snapshotDate = dateFunc.removeTimeFromDate(snap.SnapshotCreateTime);
              if (copyDate == snapshotDate) {
                  var copy = await rdsFunc.copyClusterSnapshot(snap.DBClusterSnapshotIdentifier)
                  console.log(copy+" Rds cluster snapshot cloned")
              }
          })
          }        
      })
      

      【讨论】:

        猜你喜欢
        • 2017-03-15
        • 2021-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多