【问题标题】:EC2 instance shuts down when disconnected from Cloud 9 despite pm2 working尽管 pm2 工作,但 EC2 实例在与 Cloud 9 断开连接时关闭
【发布时间】:2022-02-10 16:19:49
【问题描述】:

我在 EC2 实例 (Ubuntu) 上有一个网站 (Nodejs),可通过 pm2 进程访问和运行

问题是 - 关闭 IDE(云 9)后,网站在一段时间后停止工作,一旦我重新登录到“云 9”,在 EC2 实例重新启动后,pm2 就会自动启动。 pm2 设置似乎以这种方式工作正常。 (我确实运行了 pm2 启动,pm2 保存

来自日志:

*PM2 日志:App [app:0] 通过信号 [SIGINT] 以代码 [1] 退出

PM2 错误:错误:杀死 EPERM*

如 -- https://aws.amazon.com/cloud9/faqs/ 中所述 AWS Cloud9 EC2 环境 – 使您能够启动 Cloud9 连接到的新 Amazon EC2 实例。默认情况下,这些实例会在您关闭 IDE 30 分钟后停止,并在您打开 IDE 时自动启动。

这是否意味着在 PROD 中我们只能使用 SSH 以使实例不会停止而网站仍处于活动状态? 或者我如何确保实例没有停止?

【问题讨论】:

  • 您好 Jeremy,感谢您对此进行调查。我通过 AWS 提供的 cloud9 功能访问 EC2 实例。我不确定您所说的“通过 CloudFormation 使用 UserData 脚本设置 EC2 或使用 CLI 或 SDK 启动它”是什么意思。我认为 pm2 会继续运行,但由于实例关闭,进程当然会关闭
  • 谢谢杰里米。您的指导帮助了我,Elastic Beanstalk 达到了目的。

标签: node.js amazon-web-services amazon-ec2 pm2


【解决方案1】:

您在位于底层 EC2 上的 Cloud9 机器上开发网站。它们会在 30 分钟后关闭,因为它们不适用于网站托管。

您应该通过 CloudFormation 设置一个带有 UserData 脚本的 EC2 来托管该站点。

或者使用 CLI 或 使用您最喜欢的编程语言的 SDK。

或者,如果您不想学习 AWS,您可能想研究 Elastic Beanstalk。

如果您想托管无法在 Cloud9 机器上完成的站点,请部署到 EC2 或考虑使用 Beanstalk。

【讨论】:

    【解决方案2】:

    首先找到对应的EC2实例,开启终止保护:

    其次,在Cloud9中,cloud9 > Project Settings > EC2 instance 并将Stop my environment 设置为Never

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-10
      • 2013-06-04
      • 1970-01-01
      • 2014-03-29
      • 2021-02-20
      • 2014-01-11
      • 2018-03-26
      相关资源
      最近更新 更多