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

Posted

技术标签:

【中文标题】Amazon RDS Aurora 与 RDS MySQL 与 EC2 上的 MySQL?【英文标题】:Amazon RDS Aurora vs RDS MySQL vs MySQL on EC2? 【发布时间】:2018-03-06 05:22:21 【问题描述】:

在云上设置数据库时,我一直在寻找最佳实践,但我仍然不清楚我们应该采用以下哪种解决方案?

Amazon RDS Aurora Amazon RDS mysql EC2 实例上的 MySQL

我认为 Amazon Aurora 被宣传为更好的替代品,但经过一些研究,似乎人们并没有使用它。有问题吗?

【问题讨论】:

您认为人们为什么不完全使用 Aurora?亚马逊表示,就用户采用而言,Aurora 是他们增长最快的服务。也许您只是没有找到很多关于它的文章,因为如果人们过去已经在使用 MySQL,则无需更改代码即可切换到 Aurora,因此没有关于如何进行切换的教程或文章。此外,Aurora 是一个 RDS 数据库,我适当地编辑了您的问题以澄清。 【参考方案1】:

我个人不使用 Aurora,但我强烈推荐 RDS,而不是在 EC2 上运行您自己的。让故障转移自动发生,备份也值得每一分钱。尤其是因为 RDS 并没有那么贵。

Aurara 在纸面上看起来确实不错,但更灵活的实例选择让我一直坚持使用 PostGreSQL。不过,我们正在考虑迁移到 Aurora,主要是因为自动扩展存储配置和更高的性能。

【讨论】:

您是否在应用程序的负载测试下对 Aurora 进行了基准测试? 嗯,很有趣。高写入流量是问题吗?因为这是我们的主要问题。一定会调查这个 我将我的部分评论移到我对这个线程的回答中。另请参阅我对***.com/questions/46383763/… 的回答【参考方案2】:

AWS RDS 是托管数据库解决方案,它支持多种数据库选项 Amazon Aurora、PostgreSQL、MySQL、MariaDB、Oracle 和 Microsoft SQL Server。当您使用 RDS 时,它会提供内置的配置选项,例如。

数据库复制以实现高可用性 读取副本以实现可扩展性 备份和恢复 操作系统和软件补丁等

这简化了数据库管理的开销。但是,灵活性仅限于 RDS 产品。

或者,如果您将数据库托管在 EC2 实例中,您可以安装所需版本的数据库引擎、安装所需的扩展等,这提供了更大的灵活性,但也需要专业知识并增加管理开销。

当您在 RDS 中考虑 Amazon Aurora 时,它与其他引擎不同,因为它是全新的并由 Amazon 从头开始​​全面实施,并以合理的价格提供更高的性能、开箱即用的可靠性(由 Amazon 销售) .然而,Aurora 的一个限制是它不包含在 AWS 免费套餐中,它支持的最小实例类型是“小”。

注意:RDS 提供的某些功能和成本会有所不同,具体取决于您选择的数据库选项。

【讨论】:

在本地运行标准 MySQL 进行开发,并在生产中使用 Aurora 在大多数情况下是一个完美的解决方案。我不会认为无法在本地运行 Aurora 是一个挑战。 @MarkB 虽然 Aurora 兼容 MySQL,但这是否意味着支持 MySQL 版本的所有变体? 我不确定我是否理解您的问题。显然,您希望在本地运行与您在生产中运行的 Aurora 版本相对应的 MySQL 版本。 好的。谢谢!将使用信息更新答案。 Aurora/MySQL 以 MySQL Server 5.6.10(5.6 的 GA 版本)为基准,以实现功能兼容性。最适合针对 Aurora 进行本地开发的 MySQL 服务器是最新的 5.6.x,因为它应该包含所有 5.6 错误修复,但不包含功能更改。【参考方案3】:

在考虑之前,您应该仔细对 Aurora 进行基准测试。启动实例并设置应用程序和数据库的测试实例。生成尽可能高的负载。我在上一家公司做过,我发现尽管亚马逊声称高性能,Aurora 却失败了。比 RDS 慢两个数量级。我们的应用具有很高的写入流量。

我们的结论:如果你有二级索引,写流量大,Aurora不适合。我敢打赌,这对只读流量很有好处。

(编辑:我所描述的测试是在 2017 年第一季度完成的。与大多数 AWS 服务一样,我预计 Aurora 会随着时间的推移而改进。亚马逊有一个明确的策略“Release ideas at 70% and then iterate.”由此,我们应该得出结论AWS 的新产品值得测试,但可能至少在推出几年后才能投入生产)。

在那家公司,我推荐了 RDS。他们没有专门的 DBA 人员,RDS 为您提供的升级和备份等数据库操作的自动化非常有帮助。您在调整选项上牺牲了一点灵活性,但这应该不是问题。

RDS 最大的不便是您不能拥有具有 SUPER 权限的 MySQL 用户,但 RDS 为您需要 SUPER 权限的大多数常见任务提供了存储过程。

我将多可用区 RDS 实例与由 Orchestrator 管理的 EC2 实例副本集进行了比较。由于 Orchestrator 需要三个节点,因此您可以拥有仲裁,因此 RDS 显然是成本的赢家,并且易于设置和操作。

【讨论】:

RDS 没有多主选项,但极光有 - 仅此一项就可以提高写入性能 @Anthony 您是否对多主 Aurora 实例上的写入进行了基准测试? 如果这个答案更新为最新的改进,那就太好了。

以上是关于Amazon RDS Aurora 与 RDS MySQL 与 EC2 上的 MySQL?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 cloudformation 模板创建 Amazon RDS aurora Master 和只读副本集群

Amazon Aurora RDS 无法使用导入文件。 Mysql Workbench 中的用户访问被拒绝

无法公开 AWS Aurora Postgres RDS

与 RDS MySQL/Aurora 无服务器集群的 SSL 连接因 Node.js 失败

使用客户端应用程序更新非 ssl 中的 Amazon RDS SSL/TLS 证书

AWS RDS Aurora - 如何使用 PgAdmin 进行连接?