Linux

在 AWS EC2 實例上持久化伺服器

  • April 29, 2021

我可以通過 SSH 連接到伺服器並在 src 文件中執行命令 node index.js 在 EC2 實例上執行我的節點伺服器。伺服器工作正常,但問題是我必須保持與 EC2 實例的 SSH 連接,否則它會終止伺服器程序。我確定我做錯了什麼,但我無法在網上找到一個明確的干燥解決方案,而不會過多地進入雜草。

同樣對於任何想知道的人,我通過 SSH 連接到我的 github 並在 EC2 實例上安裝了 git,以便將程式碼從儲存庫拉到實例,而不是使用 CodeDeploy。原因是我在使用 CodeDeploy 時遇到了一些模糊的錯誤,例如“部署您的修訂版時出現問題”,因此我決定採用手動方式上傳程式碼。所以我也可以使用一些解決方案來解決這個領域的常見“陷阱”。謝謝。

一件非常蹩腳的事情是tmux在 tmux 會話中安裝並執行節點伺服器 - 這應該僅用於測試和開發實驗,僅此而已。

另一種選擇是將您的節點服務包裝為作業系統服務(例如 systemd),讓作業系統為您管理應用程序的生命週期。

另一種選擇是將服務捆綁為 Docker 容器,並讓 Docker(或 docker-compose)執行和管理它。

最後,我更願意選擇 AWS Beanstalk 之類的託管 AWS 解決方案來實際部署長期執行的服務。他們將負責自動將更新檔應用到您的伺服器,並使部署新版本變得容易。

引用自:https://serverfault.com/questions/1061959