AWS ECS 生产 Docker 部署

2024-02-19

我最近开始在我自己的个人网站上使用 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 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 的最佳方法是使用应用程序负载均衡器 (ALB) 的内置 SSL 终止功能。 AWS ECS 与 ALB 集成,作为将 Web 流量传输到容器的一种方式。 ALB 还与 Amazon 证书管理器集成(https://aws.amazon.com/certificate-manager/ https://aws.amazon.com/certificate-manager/) 该服务将为您提供一个免费的 SSL 证书,该证书会自动更新。这样您就不必担心您的 SSL 证书再次过期,因为它会在您的 ALB 中自动续订和更新。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS ECS 生产 Docker 部署 的相关文章

随机推荐