如何选择AWS数据库
#aws #云 #database #cloudnative

AWS为不同的Database提供了许多不同的选择。

所有数据库都可以分为2个类别,关系数据库和非关系数据库。

在本文中,我们谈论了AWS上不同云本机数据库的概述,以比较每个数据库选项之间的某些限制和差异,如何在不同用例中选择每个数据库。

关系数据库AWS Aurora

aws relational db

aws aurora是一种完全管理的关系数据库引擎,它具有2种兼容性模型,PostGreql和MySQL/Mariadb,

  • 存储限制为128TB
  • 表尺寸限制64TB(MySQL)和32TB(Postgres)

非关系数据库

AWS中的非关系DB还有更多选择。

AWS Non Relational DB diagram

基于文档

DynamoDB:

AWS最受欢迎的数据库之一。这是一个高度可扩展且高度可用的NOSQL数据库,专为低延迟,高通量应用程序而设计。 DynamoDB是一个基于文档的数据库,它使用表,项目和属性存储和检索数据。它支持文档和键值数据模型,使您可以选择最适合您应用程序需求的数据模型。

虽然400KB足以大多数普通数据库操作,但它明显低于其他选项。 MongoDB允许文档为16MB,而Cassandra允许最多2GB的斑点。而且,如果您真的想变得更加强壮,Postgres允许行最多1.6TB(1600列x 1GB最大每个字段)!

AWS文档DB(MongoDB兼容)

AWS DocumentDB是一种基于文档的数据库服务,与MongoDB兼容。它旨在帮助您在具有高性能,可扩展性和可用性的AWS上运行MongoDB工作负载。 DocumentDB支持MongoDB API,允许您使用现有的MongoDB应用程序,驱动程序和工具,并且更改最少。

  • 最大DB大小64TB
  • 最大收集尺寸32TB(类似于关系数据库中的表)
  • 最大文档尺寸16MB

简单的DB

SimpleDB是一种高度可用且灵活的非关系数据存储,旨在帮助您存储和查询结构化数据。这是一项完全托管的服务,可提供自动缩放和高可用性,从而易于构建可扩展性且高度可用的应用程序。 SimpleDB非常适合存储需要简单查询和索引的少量数据,例如产品目录,用户配置文件和事件日志。

  • 最大域大小:10 GB(类似于关系DB中的表)

如何在DynamoDB,Document DB和简单DB之间进行选择?

如果您已经在使用MongoDB并想将工作量迁移到AWS,则AWS DocumentDB是一个不错的选择。如果您需要少量结构化数据的高度可用,灵活的数据存储,那么SimpleDB是一个不错的选择。如果您需要一个高度可扩展的NOSQL数据库,以实现低延迟,高通量应用程序,则DynamoDB是正确的选择。这三个服务均已完全管理,并且可以轻松地与其他AWS服务集成。

基于图

Neptune是基于AWS的基于图形的数据库,旨在存储和导航高度连接的数据。它支持流行的图形查询语言,例如Apache Tinkerpop Gremlin和Sparql,从而易于开发基于图形的应用程序。市场上的一个大型兼容图DB是Neo4J,AWS提供a migration guide from Neo4j to AWS Neptune

数据仓库或列面向

另一方面,

红移是AWS的数据仓库解决方案。它旨在帮助企业快速,成本效益地分析和处理大量数据。 RedShift是一个柱状数据库,它使用大量并行处理(MPP)在多个节点上分发查询,从而可以进行高性能数据处理。 RedShift还提供了一系列安全功能,包括加密,网络隔离和细粒访问控件。它也有一些局限性,其中一个是它不支持使用排序键在表上删除表,因此您可能需要重新设计表格架构以与Redshift一起使用。

为什么选择红移?

简而言之,如果您需要面向列的数据库或仓库,请选择Redshift。

钥匙值数据库

Elasticache是​​AWS的内存数据存储,该数据存储支持两种开源的内存内存发动机,Redis和Memcached。它旨在通过在内存中访问经常访问的数据来帮助提高应用程序的性能和可扩展性。 ElasticAcce使您可以轻松地创建,扩展和管理内存数据存储,并支持使用案例,例如缓存,会话管理和实时分析。使用Elasticache,您可以增加吞吐量并减少应用程序的延迟,同时减少后端数据库的负载。 More about ElasiCache弹性的限制:

  • Elasticache不是耐用的数据存储,因此,如果您丢失了缓存,则需要从数据源重建它。
  • Elasticache不支持各个区域的数据复制。
另一方面,

内存DB是AWS的内存数据库,该数据库是为需要子毫秒响应时间的实时应用程序而设计的。内存数据库已完全管理和高度可用,它支持需要快速且可预测的响应时间的高通量,低延迟工作负载。内存数据库可用于游戏,实时招标和金融等应用,其中子毫秒响应时间至关重要。

内存的限制DB:

  • MONEMEDB专为高性能而设计,但它可能不如其他数据库引擎那么灵活或可扩展。
  • MemoryDB当前仅在有限数量的AWS区域中可用。

如何在ElasticAcce和MemoryDB之间进行选择?

简而

总共

本文不包括所有数据库类别,例如AWS Timestream和AWS Ledget数据库。

不同的云提供商可能会提供类似的产品,例如Oracle的JSON-BASE数据库与AWS文档DB非常相似。