使用AWS RD和Aurora托管关系数据库
#aws #云 #database

注意:此内容最初发表在 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无服务器是否非常适合您的用例

    • 始终使用Aurora无服务器V2,无服务器V1逐渐消失
    • 请记住,它的昂贵3倍。这意味着,如果您平均使用DB实例的33%
    • ,它将更便宜
    • 您还可以从没有准备的情况下,没有手动干预
    • ,从而超越了计划的能力
    • 请记住,它不会立即扩展,可能需要几分钟才能检测到扩展和增加容量的需求
  • 如果您有一些重读的用户或用例(例如报告),请考虑添加读取副本并从阅读器端点执行读取操作

  • 如果您需要高可用性,请在其他可用性区域设置故障转移复制品。请记住,在RD中,读取副本和故障转移复制品是不同的概念,而在Aurora副本中,既是读取副本和故障转移副本,又是同时又是。

  • 始终考虑您是否真的需要一个关系数据库。 NOSQL数据库(例如DynamoDB)可以处理the right database design的最典型用例,甚至支持transactions

推荐使用RDS或Aurora的工具

如果您正在考虑用于事件驱动的架构的关系数据库,请查看Debezium。它使您可以流式传输到关系数据库,并订阅更改事件。


了解AWS解决方案背后的原因。 加入3000多个开发人员,技术线索和专家,学习如何与Simple AWS newsletter一起构建云解决方案,而不是通过考试。

  • 现实世界情景
  • 解决方案背后的原因
  • 如何运用最佳实践

Subscribe for free!

如果您想进一步了解我,可以找到我on LinkedInwww.guilleojeda.com