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



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

用例:

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


到目前为止,我尝试过:

到目前为止,我设法做的是,我对我的反应应用程序(包含客户将要去的前端表(进行了 docker化,将其推送到 ECR,在 ECS 内部创建了一个集群,其中包含一个包含 ecsTaskExecute 角色的最默认任务定义,一个容器保存来自 ECR 的映像,以及一个负责运行任务的服务。我还在 ECS 集群前面添加了应用程序负载均衡器,以便可以从浏览器访问我的 react 应用程序(计划添加我的个人域(。


问题:

当涉及到所有这些单独的服务时,我不知道谁应该与谁"说话",我应该有多少容器,lambdas是作为将执行所需删除和更新的函数,还是它们仅用作触发器,将所有处理留给ECS任务?基本上,我在想象工作流程的全貌时遇到了困难。有什么想法吗?

提前谢谢。 :)

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

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

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

最新更新