AWS 上应用程序架构的想法(ECR + ECS Fargate + RDS + Lambda(?))

Ideas for application architecture on AWS (ECR + ECS Fargate + RDS + Lambda(?) )

我是这方面的初学者,我正在尝试找出适合以下用例的最佳架构和工作流程(我在前端使用 React,在后端使用 nodejs,但考虑到这是一个关于架构的问题,这可能无关紧要)

用例:

用户登陆我的页面,其中 table 已经充满了来自 RDS table 的客户。用户可以选择删除客户(相应行)或编辑该客户,并且在前端完成的所有更改都应记录在数据库中,以便下次用户访问页面时 he/she 获得最新的数据库状态.我遇到的问题是,我的任务是使用 ECR、ECS(我选择 Fargate,作为无服务器解决方案)、RDS 等服务来实现这个架构,但我不知道工作流程应该是什么样子以及 lambda 有什么作用万一他们是必要的(或者他们是?)。还考虑到我需要使用 RDS,哪个选项 PostgreSQL/MySQL/Aurora 最适合这个用例?


到目前为止我尝试过的:

我到目前为止所做的是,我对我的 React 应用程序进行了 docker 化(包含客户将去的前端 table),将其推送到 ECR,在 ECS 内部创建了一个集群包含 ecsTaskExecution 角色的最默认任务定义,包含来自 ECR 的图像的容器,以及负责 运行 任务的服务。我还在ECS集群前面添加了Application Load Balancer,这样我的react app就可以通过浏览器访问了(打算添加我的个人域名)。


问题:

我不知道谁应该 "speak" 涉及到所有这些单独的服务时,我应该有多少个容器,lambda 是将执行所需的删除和更新的函数,还是它们仅用作触发器,将所有处理留给 ECS 任务?基本上,我很难想象工作流程的全貌。有任何想法吗?

提前致谢。 :)

经过几天的试验和阅读,这是我想出的架构:

在 S3 上托管的 ReactJS 应用程序,在 docker 上容器化的 NodeJS 应用程序(Express 服务器),推送到 ECR,然后在 ECS 上(我选择 EC2 Linux + ECS 集群的网络,然后根据我选择 EC2 作为负责 运行 我的 ECR 容器的任务),而对于数据库,我在 RDS 中选择 MySQL。

所以基本上通信发生在 S3 -> ECS -> RDS(ReactJS -> NodeJS -> MySQL)之间。