通过ECS运行docker映像是否需要PM2?

时间:2019-02-02 06:17:16

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

我们使用具有PM2在生产应用的NodeJS

现在有了docker,理想情况下,我们希望每个容器有一个进程(尽管现在每个容器已更改为一个事务),然后,如果您的应用程序是水平可伸缩的,则可以生成许多容器。

最后,有一些管理容器的提供商,例如AWS ECS可以启动计算机并运行docker容器。当它崩溃或无法访问时,它将启动另一台计算机,并确保该应用程序正在运行(如果可能)。 泊坞窗本身也有一个HealthCheck选项,AWS ECS正在使用该选项(我想其他提供商也将使用它)。

因此,考虑到所有这些,在ECS上运行docker映像时,我真的需要PM2或任何其他进程管理器吗?还是我完全丢失了某些东西?

1 个答案:

答案 0 :(得分:3)

我认为不,您不需要在ECS中对容器使用PM2或类似的过程管理器。

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

还可以使用应用程序负载平衡器并在目标组中定义HTTP运行状况检查,以防万一应用程序变得无响应,但由于某种原因该过程不会退出。