注意:此内容最初发表在 Simple AWS newsletter 上。了解AWS解决方案背后的原因。免费订阅! 3000名工程师和技术专家已经拥有。
在AWS中,有两种服务提供关系数据库的托管安装:关系数据库服务(RDS)和Aurora。 Aurora在技术上是在RDS可用数据库引擎列表下分组的,但是在某些关键领域的行为有些不同,因此值得考虑。
要了解他们的工作,请想象您创建一个EC2实例,安装您喜欢的数据库引擎(例如MySQL或Postgres),配置自动备份,设置监视工具等。 RDS和Aurora让您单击几下创建一个基本类似的实例,但是一切都已经为您设置了。您仍然需要配置不属于实例的内容,例如它将启动的VPC和子网,关联的安全组等。但是这些工作就像EC2实例一样。
rds允许您将MySQL,Mariadb,Microsoft SQL,Oracle或PostgreSQL用作数据库引擎。 Aurora仅支持MySQL高达8.0,而Postgres最多可达14.3(这些不是这些引擎的最新版本)。原因是Aurora实际上没有使用本机MySQL或Postgres,而是重写AWS制造的那些引擎,该引擎与原始的MySQL和Postgres版本完全兼容,但在AWS的基础架构中进行了优化,可以更好地工作。
亚马逊极光的好处比RD
这些是Aurora比RD的工作方式,这要归功于AWS团队的优化:
-
在Aurora中,阅读副本也充当故障自由副本
-
Aurora可以更好地优化使用EBS卷,在磁盘操作上实现更好的吞吐量
-
使用Aurora,您无需在使用它之前提供存储容量,它是自动提供的,只需支付实际消耗的费用。您仍然可以配置EBS卷类型和其他参数(例如IOPS)。
-
您可以在无服务器模式下使用Aurora,从而可以水平扩展数据库的计算能力。它的工作类似于DynamoDB in Provisioned Mode,并且在服务器模式下比Aurora贵3倍(无需考虑降低未使用的容量)。
Aurora支持全局数据库,这些数据库由不同区域的两个或多个Aurora数据库支持。
RD和Aurora的最佳实践
-
如果您要使用Postgres或MySQL,请在可能的情况下使用Aurora。
-
为您的RDS或Aurora数据库购买Reserved Instances,以节省多达60%的数据库实例成本。
- 请记住,在Aurora reserved instances are flexible中
-
考虑Aurora无服务器是否非常适合您的用例
- 始终使用Aurora无服务器V2,无服务器V1逐渐消失
- 请记住,它的昂贵3倍。这意味着,如果您平均使用DB实例的33% ,它将更便宜
- 您还可以从没有准备的情况下,没有手动干预 ,从而超越了计划的能力
- 请记住,它不会立即扩展,可能需要几分钟才能检测到扩展和增加容量的需求
如果您有一些重读的用户或用例(例如报告),请考虑添加读取副本并从阅读器端点执行读取操作
如果您需要高可用性,请在其他可用性区域设置故障转移复制品。请记住,在RD中,读取副本和故障转移复制品是不同的概念,而在Aurora副本中,既是读取副本和故障转移副本,又是同时又是。
始终考虑您是否真的需要一个关系数据库。 NOSQL数据库(例如DynamoDB)可以处理the right database design的最典型用例,甚至支持transactions。
推荐使用RDS或Aurora的工具
如果您正在考虑用于事件驱动的架构的关系数据库,请查看Debezium。它使您可以流式传输到关系数据库,并订阅更改事件。
了解AWS解决方案背后的原因。
加入3000多个开发人员,技术线索和专家,学习如何与Simple AWS newsletter一起构建云解决方案,而不是通过考试。
- 现实世界情景
- 解决方案背后的原因
- 如何运用最佳实践
如果您想进一步了解我,可以找到我on LinkedIn或www.guilleojeda.com