同一 Redshift 集群上的 AWS 容器化应用程序和数据库

Posted

技术标签:

【中文标题】同一 Redshift 集群上的 AWS 容器化应用程序和数据库【英文标题】:AWS containerised apps and database on same Redshift cluster 【发布时间】:2021-01-23 10:46:09 【问题描述】:

对于具有 AWS 经验的人来说,我是一个简单的问题,但我对术语有些困惑,并且知道如何继续购买哪个节点。

在我的公司,我们目前有一个我们不断插入的 postgres 数据库。 目前我们可能每年插入约 6 亿行,但希望能够扩大规模。 每行基本上是一个时间戳和两个浮点数,一个 int 和一个 enum 类型。

因此工作负载是写入密集型的,但也有持续的小读取。 (偶尔会有大读)

还有两个服务需要运行(都是基于 Rust 的)

1,我们有一个 rust 应用程序,它抽象了 db 数据,允许客户端通过 restful 接口访问它。

2,我们有一个 rust 应用程序,它可以通过 modbus 从数千个单独的设备上导入数据) 这些设备位于专用移动网络上。我可以将 AWS 集群节点设置为能够通过 *** 访问专用网络吗?

我们想迁移到 Amazon Redshift,但对节点类型感到困惑

亚马逊推荐选择RA3或DC2

如果我们选择了 ra3.4xlarge,这意味着您可以获得一个节点集群吗?

我可以在该集群上运行我们的 rust 服务以及一些 Redshift 数据库实例吗? 我相信 AWS 使用 docker,我认为我可以轻松地将我的服务容器化。

还是我误解了一些事情,当您购买 Redshift 集群时,您只能在该集群上运行 Redshift,并且必须为容器化应用程序(可能是 ec2 集群)购买一个不同的集群?

谁能推荐一个更适合扩展此工作负载的方案?

谢谢

【问题讨论】:

【参考方案1】:

我不会为这个应用程序推荐 Redshift,我是一个 Redshift 人。 Redshift 专为分析工作负载(大量或读取和少量大量写入)而设计。不断更新不是它的设计目的。

我会指出 Postgres RDS 是最合适的。它已经有一个 Restful API 接口。这将是您正在寻找的更多事务数据库,几乎没有迁移变化。

当您的数据变得非常大 (TB+) 时,您可以添加 Redshift 以快速执行您需要的分析。

只是我的 $.02

【讨论】:

【参考方案2】:

Redshift 是一项托管服务,您无法访问它来安装东西,也无法安装/运行您自己的任何自定义软件

还是我理解错了,当您购买 Redshift 集群时,您只能在该集群上运行 Redshift

是的,您不运行任何东西 - AWS 管理集群,您运行分析/查询等。

必须为容器化应用程序获取不同的应用程序,可能是 ec2 集群?

是的,您可以使用 EC2,自己运行编排器,或使用 ECS/Fargate/EKS,具体取决于您的预算/您的成员的技能等

【讨论】:

以上是关于同一 Redshift 集群上的 AWS 容器化应用程序和数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 AWS Quicksight 连接到 Redshift Spectrum 上的外部架构/表?

AWS Redshift 数据库加密

EMR 上的 spark-redshift 连接超时异常

我可以使用AWS Glue将S3上的json数据转换为柱状格式并将其推送到Redshift吗?

我可以使用 AWS Glue 将 S3 上的 json 数据转换为列格式并将其推送到 Redshift 吗?

如何使用 AWS Redshift 执行 Bash 脚本