
Node.js คืออะไร และเหมาะสำหรับการ Deploy บน VPS ราคาถูก
Node.js เป็น runtime environment ที่ช่วยให้นักพัฒนาสามารถใช้ JavaScript ในการเขียน backend application ได้ ซึ่งเป็นประโยชน์อย่างมากสำหรับทีม startup ที่มีงบประมาณจำกัด แม้ว่า Node.js จะมีความสามารถเหมือนกับ server-side languages อื่น ๆ แต่ความสวยงามของ Node.js อยู่ที่ประสิทธิภาพของมัน โดยเฉพาะเมื่อจัดการกับ concurrent connections จำนวนมากโดยใช้ทรัพยากรน้อยที่สุด
เมื่อพูดถึงการ deploy Node.js บน VPS ราคาถูก นักพัฒนาต้องเข้าใจว่า VPS ราคาถูกไม่ได้หมายความว่าเป็นเซิร์ฟเวอร์ที่ห่วยแหวน แต่เป็นการเลือกใช้ทรัพยากรอย่างฉลาด การใช้ process manager เช่น PM2 การตั้งค่า reverse proxy ด้วย Nginx และการใช้ SSL certificate ให้เหมาะสม จะช่วยให้ application ของคุณทำงานได้อย่างมีประสิทธิภาพบนเซิร์ฟเวอร์ที่มีความสามารถจำกัด
AsiaGB มี VPS ราคาเริ่มต้นเพียง 500 บาท/เดือน พร้อม SSD storage และ uptime 99% ซึ่งเพียงพอสำหรับ application ระดับ startup ที่มีจำนวนผู้ใช้ปานกลาง
เลือก VPS ที่เหมาะสมสำหรับ Node.js Application
ก่อนที่จะเริ่ม deploy Node.js นั้น การเลือก specification ของ VPS ที่เหมาะสมเป็นสิ่งสำคัญ Node.js applications ส่วนใหญ่ต้องการการ process ที่มีความสามารถสูงและ RAM ที่เพียงพอ ดังนั้นคุณควรเลือก VPS ที่มี CPU cores อย่างน้อย 1-2 cores และ RAM ตั้งแต่ 1 GB ขึ้นไป
สำหรับ storage นั้น ให้เลือก VPS ที่มี SSD เพราะ SSD มีความเร็วในการอ่านและเขียนข้อมูลที่รวดเร็วกว่า HDD มาก ซึ่งจะทำให้ application ของคุณตอบสนองได้เร็วขึ้น นอกจากนี้ uptime ที่ 99% ถือว่าเป็นมาตรฐานอุตสาหกรรมที่ดีพอสำหรับ production application
ถ้าหากคุณเป็น startup ที่เพิ่งเริ่มต้น VPS ราคาถูก 500 บาท/เดือนจาก AsiaGB ก็เพียงพอแล้ว คุณสามารถเริ่มต้นที่นี่และอัพเกรด specification เมื่อ traffic ของคุณเพิ่มขึ้นในภายหลัง
การตั้งค่า SSH และเข้าถึง Server
หลังจากที่คุณได้ VPS แล้ว ขั้นตอนแรกคือการสร้าง SSH connection กับ server ของคุณ SSH (Secure Shell) เป็นโปรโตคอลที่ปลอดภัยในการเข้าถึง server จากคอมพิวเตอร์ของคุณ บน Linux และ macOS คุณสามารถใช้ terminal เพื่อสร้าง SSH connection ได้ทันที ส่วน Windows users สามารถใช้ PuTTY หรือ Windows Terminal
ขั้นตอนการ connect:
- เปิด terminal บนเครื่องของคุณ
- พิมพ์คำสั่ง
ssh root@[IP_ADDRESS](แทนที่ IP_ADDRESS ด้วย IP จริง) - ยืนยันการเชื่อมต่อโดยพิมพ์ yes
- ป้อนรหัสผ่าน (password) ที่ได้รับจาก provider
เมื่อเข้าสู่ server สำเร็จแล้ว คุณจะเห็น command prompt ปกติเป็น root@hostname:~# นี่คือสัญญาณที่บอกว่าคุณได้เข้าสู่ server เรียบร้อยแล้ว
ติดตั้ง Node.js และ npm
ขั้นตอนต่อไปคือการติดตั้ง Node.js และ npm (Node Package Manager) ซึ่ง npm จะติดตั้งมาพร้อมกับ Node.js โดยอัตโนมัติ วิธีการติดตั้งที่ง่ายที่สุดคือการใช้ NodeSource repository ซึ่งเป็น official repository ของ Node.js
ขั้นตอนติดตั้ง:
- อัพเดท package manager:
apt update && apt upgrade -y - ติดตั้ง dependencies:
apt install -y curl software-properties-common - เพิ่ม NodeSource PPA:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - - ติดตั้ง Node.js:
apt install -y nodejs - ตรวจสอบการติดตั้ง:
node -v && npm -v
การใช้ NodeSource repository นั้นช่วยให้คุณได้รับ update ล่าสุดของ Node.js ได้ง่ายๆ เมื่ออนาคต version ใหม่ออกมา คุณสามารถ upgrade ได้เพียงแค่พิมพ์คำสั่ง apt upgrade เท่านั้น
การติดตั้ง PM2 Process Manager
PM2 เป็น advanced process manager สำหรับ Node.js applications ที่ช่วยให้คุณจัดการ application processes ได้อย่างมีประสิทธิภาพ PM2 จะดูแล application ของคุณและปลุกมันให้ทำงานใหม่ (restart) หากมีการ crash นอกจากนี้ PM2 ยังช่วยให้คุณเรียกใช้ multiple instances ของ application เพื่อใช้ประโยชน์จาก multiple CPU cores
ติดตั้ง PM2 ด้วยคำสั่ง: npm install -g pm2
หลังจากติดตั้ง PM2 เรียบร้อยแล้ว ให้เริ่มต้น app.js ของคุณด้วยคำสั่ง: pm2 start app.js --name "myapp"
สำหรับการตั้งค่าให้ PM2 เรียกใช้ application โดยอัตโนมัติเมื่อ server รีบูต ให้ใช้คำสั่ง: pm2 startup และ pm2 save
PM2 ยังให้ความสามารถในการดู log แบบ real-time ด้วยคำสั่ง pm2 logs myapp ซึ่งช่วยให้คุณสามารถดูข้อมูลและแก้ไข bug ได้อย่างรวดเร็ว
ตั้งค่า Nginx เป็น Reverse Proxy
Nginx เป็น web server ที่มีความเบาและเร็ว ในที่นี้เราจะใช้ Nginx เป็น reverse proxy ซึ่งจะทำให้ traffic ทั้งหมดเข้ามาที่ port 80 (HTTP) และ 443 (HTTPS) แล้วส่งต่อไปยัง Node.js application ของคุณที่ทำงานอยู่ที่ port 3000 หรือ port อื่นๆ
ขั้นตอนติดตั้งและตั้งค่า Nginx:
- ติดตั้ง Nginx:
apt install -y nginx - สร้าง config file สำหรับ site ของคุณ:
nano /etc/nginx/sites-available/myapp - วาง configuration ตามตัวอย่างด้านล่าง
- เชื่อมโยง config file:
ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/myapp - ลบ default configuration:
rm /etc/nginx/sites-enabled/default - ตรวจสอบ configuration:
nginx -t - รีสตาร์ท Nginx:
systemctl restart nginx
ตัวอย่าง Nginx configuration file:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
ติดตั้ง SSL Certificate ด้วย Let's Encrypt
SSL certificate เป็นสิ่งจำเป็นสำหรับการรักษาความปลอดภัยของ website ของคุณ Let's Encrypt เป็น certificate authority ที่ให้ SSL certificate ฟรี และ Certbot เป็น tool ที่ช่วยให้คุณติดตั้ง และ renew certificate ได้อัตโนมัติ
ขั้นตอนติดตั้ง SSL certificate:
- ติดตั้ง Certbot:
apt install -y certbot python3-certbot-nginx - รันคำสั่ง certbot:
certbot --nginx -d example.com -d www.example.com - ตัดสินใจว่าจะ redirect HTTP ไป HTTPS หรือไม่ (แนะนำให้เลือก redirect)
- ตรวจสอบการต่อ renew โดยอัตโนมัติ:
certbot renew --dry-run
Let's Encrypt certificate จะ expire ทุก 90 วัน แต่ Certbot จะจัดการการ renew ให้อัตโนมัติ โดยหลังจากการ renew certificate จะ extend ออกไป 90 วันใหม่อีก ดังนั้นคุณไม่ต้องกังวลเรื่องนี้
เคล็ดลับประหยัดค่าใช้จ่ายสำหรับ Node.js Application
สำหรับทีม startup ที่มีงบประมาณจำกัด นี่คือเคล็ดลับบางประการในการประหยัดค่าใช้จ่าย เริ่มต้นด้วยการเลือก VPS ราคาถูกก่อน หลังจากที่ application ของคุณเติบโตและ traffic เพิ่มขึ้น คุณสามารถเพิ่ม specifications ได้ในภายหลัง นี่เรียกว่า "vertical scaling" ซึ่งช่วยให้คุณไม่ต้องใช้เงินจำนวนมากในตอนแรก
อีกเคล็ดลับหนึ่งคือการใช้ caching เช่น Redis หรือ memcached ซึ่งช่วยให้ application ของคุณตอบสนองได้เร็วขึ้นและลดการใช้ resources สำหรับ database queries นอกจากนี้ คุณสามารถใช้ CDN (Content Delivery Network) เพื่อให้สามารถ serve static files ได้เร็วขึ้น
ติดตั้ง PM2 Plus ซึ่งให้ monitoring และ security features เพิ่มเติม แม้ว่าจะมีค่าใช้จ่ายเพิ่ม แต่มันจะช่วยให้คุณจัดการ application ได้ดีขึ้น นอกจากนี้ยังมีฟีเจอร์ container runtime ใน PM2 ที่สามารถช่วยให้ deployment ง่ายขึ้น
การจัดการ Environment Variables และสิ่งสำคัญด้าน Security
ในการ deploy Node.js application บนเซิร์ฟเวอร์จริง คุณต้องป้องกันการเปิดเผย sensitive information เช่น API keys, database passwords และ secret tokens ดังนั้นควรเก็บข้อมูลเหล่านี้ไว้ใน environment variables
ขั้นตอนการตั้งค่า environment variables:
- สร้างไฟล์
.envไว้ใน root directory ของ application:touch .env - เพิ่ม environment variables ลงไปในไฟล์:
DATABASE_URL=mongodb://localhost:27017/mydb - ติดตั้ง dotenv package:
npm install dotenv - เรียกใช้ dotenv ในไฟล์ app.js:
require('dotenv').config() - ห้ามเพิ่มไฟล์
.envลงไปใน version control โดยเพิ่ม.envลงในไฟล์.gitignore
สำหรับความปลอดภัยของ server นั้น อย่าลืม change default SSH port จาก 22 ไปยัง port อื่น เปิดใช้งาน firewall และปิด unnecessary ports นอกจากนี้ยังควรปิดการเข้าถึง root user ด้วย SSH และใช้ sudo สำหรับ administrative tasks
เคล็ดลับประหยัด
Deploy Node.js บน VPS ราคาถูกไม่ได้ยากเลย เพียงแค่เลือก VPS ที่มี specification เหมาะสม ติดตั้ง PM2 เพื่อจัดการ process อย่างมีประสิทธิภาพ ตั้งค่า Nginx เป็น reverse proxy เพื่อให้สามารถ serve traffic ได้หลายพันคนพร้อมกัน และเพิ่ม SSL certificate เพื่อรักษาความปลอดภัย ทั้งหมดนี้สามารถทำได้บน VPS ราคาเพียง 500 บาท/เดือน จากนั้นคุณก็สามารถเลิกใช้เงินมากมายสำหรับ production server ได้
พร้อมที่จะ Deploy Node.js แล้วหรือ?
ลองใช้ VPS ราคาถูกจาก AsiaGB วันนี้ เริ่มต้นจากเพียง 500 บาท/เดือน พร้อม SSD storage, uptime 99%, และ support ในการตั้งค่า
ดู VPS ราคาถูก AsiaGB