为啥人们建议不要使用 Amazon RDS?

Posted

技术标签:

【中文标题】为啥人们建议不要使用 Amazon RDS?【英文标题】:Why do people recommend against using Amazon RDS?为什么人们建议不要使用 Amazon RDS? 【发布时间】:2013-08-19 02:58:31 【问题描述】:

我们目前在 EC2 上运行 mysql,而且已经有一段时间了。我喜欢简化备份、恢复和故障转移的想法,而且我真的很喜欢使用 RDS 而不是 EC2 的明显易用性。我已经开始从 EC2 迁移到 RDS,但是当我完成迁移时,我一直在想我是否做对了。

我读过有人暗示不要将 Amazon RDS 用于 MySQL 数据库,但我没有找到关于 RDS 缺点的简明解释。

谁能帮我理解为什么我不应该迁移到 RDS,而是将我的数据保存在 EC2 中?

我们的数据库大约有 30GB 的数据,主要来自单个 InnoDB 数据库中的 1800 万行表和 4000 万行表。

非常感谢任何想法。谢谢!

【问题讨论】:

虽然您获得了一些自动化,但您确实放弃了一些控制权。这是一个对每个人都不值得的权衡。 【参考方案1】:

这主要是团队 DBA 的问题。

RDS 旨在消除 DBA 的大部分重复和无聊的任务(主要是多可用区复制、备份、恢复、修补......)。这部分甚至可能是 DBA 所花费时间的 70%。

另一方面,如果 DBA 在其实例上(例如,在 EC2 上)运行数据库,则 DBA 可以执行的某些任务无法通过 RDS 访问,因为它们在 RDS 实例上没有 ROOT。

如果您的 DBA(和您的用例)可以从繁重的工作中受益,并且不会因特权减少而受到影响,那么您当然应该考虑使用 RDS。

【讨论】:

在这种情况下,我是开发人员和 DBA。虽然我不是全职 DBA,也不是我的***专长,但我在 MySQL 管理方面远非缺乏经验。我正在努力了解哪些事情我现在可能不会想到,这些事情可能会在以后抑制我的能力。 那我建议你去。我也是唯一的常驻系统管理员,我宁愿在可能的情况下外包关键但繁琐的 DBA 任务。我还没有遇到一个问题,即没有完全的 root 访问权限是一个问题,但是由 RDS 管理的备份、故障转移、容量管理和升级消除了很多分心(和一些压力)。这并不是一个做或死的决定:如果你以后发现一些你不能做的事情,你总是可以再次启动你自己的 MySQL 盒子。我打赌你不需要。【参考方案2】:

我们在 RDS 的二十个表中管理一个 200GB 的数据库。根据我的经验,使用 RDS 可以节省大量时间,而确实存在的缺点很小并且可以解决。总体而言,RDS 节省的时间远远超过任何令人头痛的时间。但是,我遇到的两个是:

    您不能在 RDS 中将全局变量设置为 root 用户 - 您必须在 parameter group 中设置它们,然后将其应用于数据库,这比“SET GLOBAL”更难,但提供了其他好处.

    您无法转储到输出文件,因为您无权访问 RDS 文件系统。见this question。但是,正如该问题中所述,有一些解决方法。

【讨论】:

【参考方案3】:

使用 RDS 唯一会放弃的就是日志,遗憾的是 RDS 不提供有时对调试至关重要的完整日志集。如果您可以在没有它们的情况下生存,并且在投入生产之前进行了强大的测试,那么 RDS 就是您要走的路。

【讨论】:

我认为这已经改变了:aws.amazon.com/about-aws/whats-new/2013/03/04/…

以上是关于为啥人们建议不要使用 Amazon RDS?的主要内容,如果未能解决你的问题,请参考以下文章

Amazon RDS 和 Elastic Beanstalk 连接

为啥 MongoDB 文档建议不要使用 DBREF?

为啥 auth0 建议不要在 localStorage 中存储令牌?

Amazon RDS Aurora 与 RDS MySQL 与 EC2 上的 MySQL?

为啥建议不要在 Node.js 代码的任何地方关闭 MongoDB 连接?

为啥建议不要在 Node.js 代码的任何地方关闭 MongoDB 连接?