简体   繁体   English

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

[英]AWS containerised apps and database on same Redshift cluster

I a simple question for someone with experience with AWS but I am getting a little confused with the terminology and know how to proceed with which node to purchase.对于具有 AWS 经验的人来说,我是一个简单的问题,但我对术语有些困惑,并且知道如何继续购买哪个节点。

At my company we currently have aa postgres db that we insert into continuously.在我的公司,我们目前有一个我们不断插入的 postgres 数据库。 We probably insert ~ 600M rows at year at the moment but would like to be able to scale up.目前我们可能每年插入约 6 亿行,但希望能够扩大规模。 Each Row is basically a timestamp and two floats, one int and one enum type.每行基本上是一个时间戳和两个浮点数,一个 int 和一个 enum 类型。

So the workload is write intensive but with also constant small reads.所以工作负载是写密集型的,但也有持续的小读取。 (There will be the occasional large read) (偶尔会有大读)

There are also two services that need to be run (both Rust based)还有两个服务需要运行(都基于 Rust)

1, We have a rust application that abstracts the db data allowing clients to access it through a restful interface. 1,我们有一个 rust 应用程序,它抽象了数据库数据,允许客户端通过一个 restful 接口访问它。

2, We have a rust app that gets the data to import from thousands on individual devices through modbus) These devices are on a private mobile network. 2,我们有一个 rust 应用程序,它可以通过 modbus 从数千个单独的设备上导入数据)这些设备位于专用移动网络上。 Can I setup AWS cluster nodes to be able to access a private network through a VPN?我可以将 AWS 集群节点设置为能够通过 VPN 访问专用网络吗?

We would like to move to Amazon Redshift but am confused with the node types我们想迁移到 Amazon Redshift,但对节点类型感到困惑

Amazon recommend choosing RA3 or DC2亚马逊推荐选择RA3或DC2

If we chose ra3.4xlarge that means you get one cluster of nodes right?如果我们选择 ra3.4xlarge,这意味着您将获得一个节点集群,对吗?

Can I run our rust services on that cluster along with a number of Redshift database instances?我可以在该集群上运行我们的 rust 服务以及一些 Redshift 数据库实例吗? I believe AWS uses docker and I could containerise my services easily I think.我相信 AWS 使用 docker,我认为我可以轻松地将我的服务容器化。

Or am I misunderstanding things and when you purchase a Redshift cluster you can only run Redshift on this cluster and have to get a different one for containerised applications, possibly an ec2 cluster?还是我误解了一些事情,当您购买 Redshift 集群时,您只能在该集群上运行 Redshift,并且必须为容器化应用程序(可能是 ec2 集群)购买一个不同的集群?

Can anyone recommend a better fit for scaling this workload?任何人都可以推荐更适合扩展此工作负载的方法吗?

Thanks谢谢

I would not recommend Redshift for this application and I'm a Redshift guy.我不会为这个应用程序推荐 Redshift,而且我是一个 Redshift 人。 Redshift is designed for analytic workloads (lots or reads and few, large writes). Redshift 专为分析工作负载(大量或读取和少量大量写入)而设计。 Constant updates is not what it is designed to do.不断更新不是它的设计目的。

I would point you to Postgres RDS as the best fit.我会向您指出 Postgres RDS 是最合适的。 It has a Restful API interface already.它已经有一个 Restful API 接口。 This will be more of the transactional database you are looking for with little migration change.这将是您正在寻找的更多事务数据库,几乎没有迁移更改。

When your data get really large (TB+) you can add Redshift to the mix to quickly perform the analytics you need.当您的数据变得非常大 (TB+) 时,您可以将 Redshift 添加到组合中以快速执行您需要的分析。

Just my $.02只是我的 $.02

Redshift is a Managed service, you don't get any access to it for installing stuff, neither is there a possibility of installing/running any custom software of your own Redshift 是一项托管服务,您无法访问它来安装东西,也无法安装/运行您自己的任何自定义软件

Or am I misunderstanding things and when you purchase a Redshift cluster you can only run Redshift on this cluster还是我误解了一些事情,当您购买 Redshift 集群时,您只能在该集群上运行 Redshift

Yes, you don't run stuff - AWS manages the cluster and you run your analytics/queries etc.是的,您不运行任何东西 - AWS 管理集群,您运行分析/查询等。

have to get a different one for containerised applications, possibly an ec2 cluster?必须为容器化应用程序(可能是 ec2 集群)获得不同的应用程序?

Yes, you could possibly make use of EC2, running the orchestrators on your own, or make use of ECS/Fargate/EKS depending on your budget/how skilled your members are etc是的,您可以使用 EC2,自己运行编排器,或使用 ECS/Fargate/EKS,具体取决于您的预算/您的成员的技能等

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM