PM2

Node.js 佈建處理 (3)

基本介紹

教學目標

透過 PM2 套件佈建 Node.js 伺服器,在重新開機時自動啟動伺服器,可以和 AWS 的 Auto Scaling 進行整合應用。

前置作業

  1. 準備 Ubuntu 作業系統。
  2. 完成 Node.js 套件安裝與設置。
  3. 準備 Node.js 伺服器程式碼,命名為 app.js 。

套件安裝

1
$ npm install pm2 -g

使用教學

啟動伺服器服務

1
$ PORT=80 pm2 start app.js

列出執行服務

1
$ pm2 list

顯示執行記錄

1
$ pm2 logs

停止服務

Forever 指令

1
$ pm2 stop [app_name|id|all]

設定自動啟動伺服器

1
2
$ pm2 startup ubuntu
$ pm2 save

相關資源

2014Q3 工作心得 (2)

Amazon 的雲端服務越來越方便,身為工程師常常會想要所有服務都自建才會有成就感,但卻忽略最重要的可用性 (Availability) 與延展性 (Scalability) 的問題。

針對可用性的問題,我們曾經嘗試使用 AWS EC2 上運行資料庫伺服器 (MongoDB) 取代 AWS RDS 資料庫雲端服務,AWS EC2 當預設 EBS 大小為 8 GB ,所以當資料內容佔儲存空間的 90% 時,就必需要進行擴充,最基本的問題則是如何在維持可用性的情況下進行資料庫大小的調整,此時 AWS RDS 資料庫雲端服務只需透過簡單的設定就能完成上述需求,反之自建則需要很複雜的流程才能在維持可用性的情況下進行資料庫大小的調整。

針對延展性的問題,我們曾經嘗試使用 AWS EC2 上運行負載平衡器伺服器 (Ngnix) 取代 AWS ELB 負載平衡雲端服務,最基本的問題則是如何當在每台 AWS EC2 的負載在特定條件時會自動進行伺服器的延展,此時 AWS ELB 負載平衡雲端服務,只需搭配 AWS Auto Scaling 自動延展雲端服務只需透過簡單的設定就能完成上述需求,反之自建需要很複雜的流程才能在特定條件時會自動進行伺服器的延展。

(註: Node.js 伺服器程式可以搭配 PM2 達到開機自動啟動,接著打包成 AMI 檔案就能夠套用至自動延展的流程之中。)

最後透過 AWS CloudWatch 資源監控服務,就能即時監控所有 AWS 雲端服務的運作情況,同時搭配 AWS SNS 推播通知雲端服務就能在緊緊事件發生的第一時間寄信給管理者進行危機處理。