AWS ECS Production Docker部署

问题描述:

我最近开始为自己的个人网站使用Docker。这样的设计我的网站基本上是AWS ECS Production Docker部署

Nginx -> Frontend -> Backend -> Database

目前,该数据库使用AWS RDS主持。所以我们现在可以离开它。

因此,这里是我的问题

  1. 我现在有我的应用程序分离到不同的存储库。前端和后端分别。

    • 我应该在哪里存储我的'根'docker-compose.yml文件。我不能决定将它存储在前端/后端存储库中。
  2. 在docker-compose.yml文件中,nginx是否可以从我的前端服务中挂载一个没有任何端口的卷并提供该目录?

  3. 我一直在尝试这么多天,但似乎无法使用Docker与我的3层应用程序在ECS群集中部署适当的生产。有什么好的例子可以参考nginx.conf吗?

  4. 如何自动SSL我的域名?

谢谢各位!

我应该在哪里存储我的'root'docker-compose.yml文件。

许多组织使用用于存储基础架构相关元数据(例如CloudFormation模板和docker-compose.yml文件)的*回购协议。所以它会是这样的。因此,开发人员首先克隆顶层回购,理想情况下,回购包含子模块或工具,用于为每个子组件或微服务拉下子回购站。

在docker-compose.yml文件中,nginx是否可以从我的前端服务中挂载一个没有任何端口的卷并提供该目录?

是的,你可以做到这一点,但它会是危险的,磁盘将是一个瓶颈。如果您的意图是从前端服务获取内容,并让它由Nginx提供服务,那么您应该通过端口将您的前端服务链接到您的Nginx服务器,并将Nginx设置为应用程序容器前的逆向代理。您还可以配置Nginx将内容从您的前端服务器缓存到磁盘卷(如果内容太多而不适合内存)。这将是一种更安全的方式,而不是将磁盘用作通信链接。下面是如何在AWS ECS配置这样的一个反向代理的例子:https://github.com/awslabs/ecs-nginx-reverse-proxy/tree/master/reverse-proxy

我似乎无法部署与码头工人适当的生产与ECS集群我3层应用程序。有什么好的例子可以参考nginx.conf吗?

我最后一个答案中的链接包含一个样本nginx。conf应该是有帮助的,以及一个用于部署应用程序容器的示例任务定义以及一个在Amazon ECS上相互链接的nginx容器。

如何自动SSL我的域名?

如果您在AWS上,获取SSL的最佳方式是使用应用程序负载均衡器(ALB)的内置SSL终端功能。 AWS ECS与ALB集成,可将Web流量传输到您的容器。 ALB还与Amazon证书管理器(https://aws.amazon.com/certificate-manager/)集成此服务将为您提供一个可自动更新的免费SSL证书。这样您就不必再担心您的SSL证书过期了,因为它只是在您的ALB中自动更新和更新。

+0

感谢您的支持。我终于开始工作了!很酷,不知道以前的git子模块是什么,但我会开始使用它! –