【问题标题】:Ideas for application architecture on AWS (ECR + ECS Fargate + RDS + Lambda(?) )AWS 上应用程序架构的想法(ECR + ECS Fargate + RDS + Lambda(?))
【发布时间】:2020-06-16 16:35:37
【问题描述】:

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

用例:

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


到目前为止我尝试过的:

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


问题:

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

提前致谢。 :)

【问题讨论】:

  • 您的后端可以是 Lambda 或 ECS/Fargate。听起来你不需要两者。您是在尝试学习 AWS,还是只是以尽可能便宜的方式设置此应用程序?您可以构建一些将您提到的所有服务联系在一起作为学习练习的东西,但是您的应用程序听起来很小,如果您做出适当的设计决策,可能几乎可以免费托管。关于 Postgres 与 MySQL 的问题完全取决于您,其中任何一个都可以轻松处理您所描述的内容。
  • @MarkB 只是想学习 AWS,并实施不同的用例,同时尝试更多地了解我目前感兴趣的服务。所以,是的,在某种程度上,我正在尝试构建一些将我提到的所有服务联系在一起:)

标签: amazon-web-services aws-lambda amazon-rds aws-fargate amazon-ecr


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2022-10-28
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2020-09-05
    • 2021-01-24
    • 2018-06-27
    • 2020-04-25
    • 1970-01-01
    相关资源
    最近更新 更多