AWS ECS生产Docker部署

我最近开始使用Docker作为我自己的个人网站。 所以设计我的网站基本上是

Nginx -> Frontend -> Backend -> Database

目前,数据库是使用AWS RDS托管的。 所以我们现在可以离开。

所以这是我的问题

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

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

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

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

感谢你们!

我应该在哪里存储我的“根”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层应用程序部署适当的Docker生产。 有什么好的例子nginx.conf,我可以参考?

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

如何自动SSL我的域名?

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