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

Amazon RDS Aurora vs RDS MySQL vs MySQL on EC2?

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

我看到 Amazon Aurora 被作为更好的替代品进行营销,但经过一些研究后,似乎人们并没有在使用它。它有问题吗?

我个人不使用 Aurora,但我强烈推荐 RDS 而不是 运行 你自己在 EC2 上的 RDS。让故障转移自动发生,备份也物有所值。特别是因为 RDS 并没有那么贵。

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

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

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

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

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

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

注意:RDS 提供的一些功能和费用会有所不同,具体取决于您 select 的数据库选项。

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

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

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

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

RDS 最大的不便之处在于您无法让 MySQL 用户拥有 SUPER 权限,但 RDS 为您需要 SUPER 权限的大多数常见任务提供了存储过程。

我将多可用区 RDS 实例与由 Orchestrator 管理的 EC2 实例副本集进行了比较。由于 Orchestrator 需要三个节点,因此您可以拥有法定人数,因此 RDS 在成本以及易于设置和操作方面是明显的赢家。