如何在特定时间自动创建 Redshift 快照并从快照恢复集群?

Posted

技术标签:

【中文标题】如何在特定时间自动创建 Redshift 快照并从快照恢复集群?【英文标题】:How to automate Redshift snapshot creation and resume cluster from snapshot at a particular time? 【发布时间】:2020-07-08 18:49:53 【问题描述】:

我想要一些解决方案,其中 CloudWatch 规则触发 lambda 函数,该函数在给定时间拍摄快照并关闭集群,并在另一个时间从创建的快照恢复集群。

这样可以省很多钱。

目前,AWS 不提供此类解决方案。 Cluster Pause and Resume 可以通过调度来完成,但是我们仍然需要为集群的存储资源付费。

【问题讨论】:

是什么阻止了你按照你的建议去做?你的问题在哪里?您尝试过什么,遇到了什么错误/问题? 【参考方案1】:

这是非常可行的,我在上一家公司就做到了。只需调用 API 函数即可删除带快照的集群并从快照启动集群。我还将它连接到 cloudwatch 事件,以按计划开始/停止,并为按需启动和停止松弛。

那么你在寻找什么? Boto3 调用可以满足您的所有需求。

【讨论】:

感谢@Bill 的回答!是的,我也在寻找 Boto3 电话。您能否提供更多提示如何继续解决此问题。非常感谢您的帮助。 所以首先查看boto3.amazonaws.com/v1/documentation/api/latest/reference/…,注意调用delete_cluster() 和restore_from_cluster_snapshot()。这些调用可以通过 Lambda 函数进行,并且恢复将需要一些参数,例如参数组和安全组 - 只需手动恢复集群几次,您就会获得所需的所有信息。请记住,在进行恢复调用后,需要几分钟才能使集群可用 - 我编写了一个轮询步骤函数,以便在它可用时提醒我。 非常感谢。这真的很有帮助。【参考方案2】:

快照和暂停的集群存储按相同的费率收费。建议使用暂停和恢复计划。

【讨论】:

谢谢乔!暂停后,Redshift 释放所有计算资源,只需要为存储付费。但是这里的存储是DISK,价格比S3高。 Amazon Redshift 将快照存储在成本较低的内部管理的 Amazon S3 存储桶中。我不确定快照(即在 S3 中)和存储(即卷)的价格是否相同。如果 AWS 文档披露快照和暂停的集群存储按相同的费率收费,请分享。

以上是关于如何在特定时间自动创建 Redshift 快照并从快照恢复集群?的主要内容,如果未能解决你的问题,请参考以下文章

Redshift 副本从分析创建不同的压缩编码

在 redshift 中创建数据库特定用户

红移:数据迁移

如何在 Redshift 中的 select 语句中使用存储过程

SQL:如何最好地查询历史表以创建特定日期的快照概览

amazon redshift 中存储的特定行的默认值在哪里?