在云上设置数据库时,我一直在寻找最佳实践,但我仍然不清楚以下哪种解决方案应该用于哪种方式?
我认为亚马逊Aurora作为更好的选择进行营销,但经过一些研究后,人们似乎并没有使用它。它有问题吗?
答案 0 :(得分:38)
在考虑之前,您应该仔细对Aurora进行基准测试。启动实例并设置应用程序和数据库的测试实例。尽可能多地生成负载。我在上一家公司工作过,我发现尽管亚马逊声称自己的表现很出色,但奥罗拉却失败了。比RDS慢两个数量级。我们的应用程序具有很高的写入流量。
我们的结论:如果您有二级索引并且具有高写入流量,则Aurora不适合。我敢打赌它对于只读流量很有用。
(编辑:我所描述的测试是在2017年第一季度完成的。与大多数AWS服务一样,我希望Aurora能够随着时间的推移而改进。亚马逊有明确的策略“Release ideas at 70% and then iterate.”从此,我们应该得出结论,来自AWS的新产品值得测试,但在推出之后至少几年内可能没有生产就绪。
在那家公司,我推荐了RDS。他们没有专门的DBA人员,RDS为升级和备份等数据库操作提供的自动化非常有帮助。你在调优选项上牺牲了一点灵活性,但这应该不是问题。
RDS最大的不便之处在于您不能拥有具有SUPER权限的MySQL用户,但RDS为您需要SUPER权限的大多数常见任务提供存储过程。
我比较了一个多AZ RDS实例与由Orchestrator管理的EC2实例的副本集。因为Orchestrator需要三个节点,因此您可以获得法定数量,因此RDS在此处成本显而易见,并且易于设置和操作。
答案 1 :(得分:11)
我没有亲自使用Aurora,但我强烈建议您在EC2上运行自己的RDS。故障转移自动发生,备份也值得每一分钱。特别是因为RDS不是那么贵。
Aurara在纸面上看起来非常好,但是更灵活的实例选择让我一直在PostGreSQL。我们正在考虑迁移到Aurora,主要是因为自动扩展存储配置和更高的性能。
答案 2 :(得分:3)
AWS RDS是托管数据库解决方案,它为Amazon Aurora,PostgreSQL,MySQL,MariaDB,Oracle和Microsoft SQL Server等多个数据库选项提供支持。当您使用RDS时,它将提供内置配置选项,例如。
这简化了数据库管理的开销。但是,灵活性仅限于RDS产品。
或者,如果您在EC2实例中托管数据库,则可以安装所需版本的数据库引擎,安装所需的扩展和安装;这提供了更大的灵活性,但也需要专业知识和增加了管理费用。
当您考虑使用RDS中的Amazon Aurora时,它与其他引擎不同,因为它是全新的,并且完全由亚马逊全面实施,并提供更高的性能,开箱即用的可靠性(由亚马逊推出),价格合理。但Aurora的一个限制是它不包含在AWS免费层中,它支持的最小实例类型是“小”。
注意:根据您选择的数据库选项,RDS提供的某些功能和费用会有所不同。