AWS ECS Fargate + Python + Nginx

AWS ECS Fargate + Python + Nginx

嗨,

我想创建一个小型网站,完全在 Python 中处理。我将为此使用 Flask 框架。到目前为止,我接触了很多AWS ECS和ELB服务,但我承认,Python本身对我来说仍然是未知的。这就是为什么我有几个问题:

1.我的理解是从软件工程师的角度来说,后端和前端分开比较好——所以最好创建两个分开的Python 基于 Flask 的项目——一个是 API,另一个是前端,对吧?一般来说,我猜这两个应该是ECS服务中的独立服务。

2. 在这样的配置中,他们是否都必须使用某种 WSGI 服务器,比如 gunicorn?对于 运行 内部具有多个 vCPU 的 Fargate,这是一个很好的解决方案吗?

3. 对于这个解决方案,围绕 Nginx 有很多问题和误解。到目前为止,我一直认为如果我使用 Application Load Balancer 就足够了(毕竟它还充当反向代理)。 ECS中有必要使用Nginx作为sidecar吗,这样做有什么好处吗?假设使用 Nginx 是可取的,它应该只用于前端还是也用于 API?

在此先感谢您提供的任何支持性建议 - 我知道我已经提出了很多要求。

在我的考虑范围内

1- 如果你想拥有微服务概念,你可以将你的应用程序与 front-end 和 back-end 分开,每个应用程序都有自己的框架。对于 front-end 你可以使用 Angular, React , Vuejs 等等。 Python是后端技术,可以写strong restfullapi跟大家交流front-end应用

2- 如果您使用 Docker 容器化您的应用程序并为每个服务编写 Dockerfile 这在微服务中最常见,没关系运行 你的容器与任何服务器,如 nginx、apache 或 WSGI 服务器(我没有使用这个)然后公开端口(如果需要)以供访问

3- 当您 运行 您在 AWS Fargate 中的服务时,可以将负载均衡器连接到您的服务和服务本身 运行 任务每个任务实际上是一个或多个容器,可能是 nginx 服务器或其他东西,如果你的意思是在你的容器中有 nginx 是正常的。