Day 24 - 從本地到雲端:把你的 Node.js 專案部署上 AWS EC2!
前言
昨天我們已經成功開啟第一台 AWS EC2 主機,體驗了雲端主機。
今天,我們要更進一步 —— 把 Node.js 專案實際部署到雲端主機上!
這篇文章將帶你完成從 0 到上線的所有流程:
- 建立 Ubuntu EC2 實例
- SSH 連線
- 安裝 Node.js / npm / Git
- 部署並執行專案
- 使用 PM2 常駐應用程式
AWS EC2 部署完整步驟
步驟 1:在 AWS EC2 啟動 Ubuntu 實例
名稱 :
ithome2025-ec2
選擇 AMI:選擇 Ubuntu(這邊使用筆者較熟悉的 Ubuntu 22.04 LTS)
選擇實例類型:
t3.micro
金鑰對(重要):
- 建立新的金鑰對或選擇現有的
- 下載
.pem
檔案並妥善保存(例如:my-key.pem
)
網路設定:
- ✅ 允許 SSH 流量(來自 0.0.0.0/0 或您的 IP)
- ✅ 允許 HTTP 流量(port 80)
- ✅ 允許來自網際網路的 HTTPS 流量(可選)
- 🔧 額外新增自訂 TCP 規則:port 3000(Node.js 應用預設埠)
儲存空間:預設 8GB 足夠
點擊「啟動實例」
步驟 2:SSH 連接到您的 EC2 實例 (詳細可參考上一篇文章)
等待執行個體狀態變為 “執行中” 後:
- 點擊 EC2 主控台右上角連線按鈕 → 選擇 SSH 用戶端
- 開啟終端機 → 尋找 aws-key.pem 的存放位址 → 修改檔案權限 → 利用 AWS 所提供的指令連線
成功連接後會看到 Ubuntu 的歡迎訊息。
步驟 3:在 EC2 上安裝 Node.js 和 npm
在 EC2 實例中執行:
1 | # 更新系統套件 |
步驟 4:將專案部署到 EC2
接下來,我們要把專案實際部署到 AWS EC2 上。
不過目前我們還沒有啟用 RDS 或其他雲端服務,因此這次的部署目標很單純:
先讓 Node.js + Express 伺服器能在雲端成功啟動運作,
暫時不涉及資料庫連線設定。
為了確保環境一致,我們會回到專案中尚未整合資料庫的版本,也就是以下這個 commit:
1 | # 複製專案 |
步驟 5:安裝依賴並編譯專案
在 EC2 實例中:
1 | # 進入專案目錄 |
編譯後會在 dist/
目錄產生 JavaScript 檔案。
步驟 6:測試運行應用
1 | # 直接運行編譯後的 JS |
您應該會看到:
1 | 🚀 Server running on http://localhost:3000 |
測試方式:
- 或在瀏覽器訪問
http://您的EC2公有IP:3000
如果看到 “Hello, iThome2025 !”,恭喜成功!🎉
步驟 7:使用 PM2 讓應用程式持續運行
PM2 是 Node.js 的程序管理工具,可以讓應用程式在背景持續運行:
1 | # 安裝 PM2 |
PM2 常用指令:
1 | pm2 restart ithome-app # 重啟 |
結語
至此,我們已經完成了從本地開發環境到 AWS 雲端部署的流程 🎉
這一步的意義不只是讓網站能被全世界訪問,更代表著你掌握了開發者的三大核心能力:
- 開發(Node.js + TypeScript)
- 部署(AWS EC2)
- 維運(PM2)
接下來,我們會逐步探索 AWS RDS 等雲端服務
慢慢讓這個 Node.js 專案成為一個完整的雲端應用 🚀
補充資源
commit message: Day 6 - set up Express + TS environment