【问题标题】:Is PM2 necessary for running docker images through ECS?通过 ECS 运行 docker 镜像是否需要 PM2?
【发布时间】:2019-06-26 16:22:42
【问题描述】:

我们曾经在 nodejs 应用程序的生产环境中使用 PM2

现在 docker 出现了,它理想地期望我们每个容器有一个进程(尽管现在它已更改为每个容器一个关注点),然后如果您的应用程序是水平可扩展的,那么您可以生成许多容器。

最后,还有管理容器的提供商,例如 AWS ECS 启动机器并运行 docker 容器。当它崩溃或无法访问时,它会启动另一台机器并确保应用程序在可能的情况下运行。 docker 本身还有一个HealthCheck 选项,AWS ECS 正在使用它(我假设其他提供商也会使用它)。

考虑到这一切,在 ECS 上运行 docker 映像时,我真的需要 PM2 或任何其他进程管理器,还是我完全遗漏了什么?

【问题讨论】:

标签: amazon-web-services docker amazon-ecs pm2


【解决方案1】:

在我看来,不,您不需要为 ECS 中的容器使用 PM2 或类似的进程管理器。

只需坚持在每个容器中运行一个进程(即node),并让 ECS 代理管理其他所有内容。正如您所说,如果它崩溃并且进程退出,代理将简单地将其替换为集群中的另一个容器。为了弹性,请确保您的集群中至少有 2 个 ECS 实例,并为每个应用运行至少 2 个容器(代理将跨实例放置这些容器)。

还可以使用应用程序负载平衡器并在目标组中定义 HTTP 运行状况检查,以防应用程序变得无响应但进程由于任何原因没有退出。

【讨论】:

    猜你喜欢
    • 2018-07-24
    • 2021-12-10
    • 2021-08-10
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    相关资源
    最近更新 更多