安排 RDS 升级/降级

安排 RDS 升级/降级

我有一个向各种服务发送通知的项目。用户每天 24 小时管理他们的订阅,但我们在周中需要一个更强大的 MySQL RDS 实例 (t3.xlarge),特别是周二至周四,因为我们的大多数通知都是在那时发出的。

为了降低成本(我们已经使用了预留实例),我的想法是从周五到周一运行 t3.medium,并按照自动计划执行实例大小更改(周五降级,周一升级)。这将使我们更接近“在需要时支付所需的费用”。我看到亚马逊有一个实例调度程序工具,但它看起来主要用于停止/启动命令,而不是升级。

按计划运行的简单 CLI 脚本是实现此目的的最佳方法吗,或者是否有更官方/更好的方法来实现此目的?

进一步的研究表明,Aurora 具有内置自动扩展功能的无服务器。但是,我的应用程序在 MySQL v8 上运行,而 Aurora 目前仅与 MySQL v5.7 兼容。

答案1

这不算是答案,但对于评论来说太长了。如果你能编辑你的问题来回答这些问题,我可能会稍后删除答案。

结论:最佳选择可能是优化查询以减少数据库负载,并支付所需的峰值数据库大小,直到 Aurora 版本跟上。希望其他人能为您提供更好的想法。

更长的版本 我最近一直在使用 RDS Oracle,它真的停止和启动速度很慢。当然,RDS MySQL 和 RDS Oracle 的行为可能有所不同。启动已停止的数据库可能需要 15 - 45 分钟 - 有时它会进行升级、重新启动等。我通常不认为这是一个很好的选择,如果您没有围绕数据库不可用进行架构设计(例如拥有两个数据库),则可能会导致停机。更改数据库大小还意味着您无法始终获得预留实例的好处。

我怀疑实例调度程序仅适用于 EC2,而不适用于 RDS。不过,实现这一点非常简单,只需一个由 CloudWatch 事件/EventBridge 触发的简单 lambda 函数即可。不过,在我看来,这不是一个好主意。

只读副本能帮上忙吗?显然,这只能帮助读取查询,写入将被拒绝或丢失。您的应用程序可能需要修改才能支持此功能。

也许您可以重新架构您的应用程序以使用更易于扩展的东西,例如 DynamoDB?不过这是一个相当大的变化。

相关内容