2. เตรียม VM

อัปเดตล่าสุด: 2026-10-02

ขั้นตอนนี้ใช้เตรียม VM ให้พร้อมสำหรับติดตั้งโปรแกรม เมื่อทำเสร็จ จะมี Ubuntu VM ที่มีทรัพยากรเพียงพอ, มี Static Public IP และเข้าถึงผ่าน SSH ได้อย่างปลอดภัย ตัวอย่างในหน้านี้ใช้ Google Cloud Platform แต่ใช้หลักการเดียวกันได้กับ cloud provider อื่นหรือเครื่อง on-premises

2.1 VM ที่ต้องเตรียม

เตรียม VM หนึ่งเครื่องสำหรับรันบริการทั้งหมด ได้แก่ application, PostgreSQL, Redis, Argo CD, monitoring และ logs

2.2 สเปก VM ที่แนะนำ

รายการ ข้อกำหนดที่แนะนำ
Operating system Ubuntu LTS รุ่นปัจจุบันที่รองรับ K3s
CPU อย่างน้อย 8 vCPU
Memory อย่างน้อย 16 GiB
Disk อย่างน้อย 200 GiB SSD
IP Static public IPv4

Disk ใช้เก็บข้อมูล PostgreSQL, Redis, container images, metrics และ logs จึงควรใช้ SSD และจองขนาดให้เพียงพอตั้งแต่เริ่มต้น

2.3 ตัวอย่าง: สร้าง VM บน GCP

  1. เปิด Compute Engine → VM instances → Create instance
  2. เลือก region และ zone ที่ต้องการใช้งาน
  3. เลือก Ubuntu LTS เป็น operating system
  4. เลือก machine type ที่มีอย่างน้อย 8 vCPU และ RAM 16 GiB เช่น e2-standard-8
  5. ตั้ง boot disk เป็น SSD ขนาดอย่างน้อย 200 GiB
  6. สร้าง Static external IPv4 แล้วผูกกับ VM เพื่อให้ IP ไม่เปลี่ยนเมื่อ stop หรือ start เครื่อง
  7. เพิ่ม network tag เช่น application-server เพื่อใช้กับ firewall rules ในหัวข้อถัดไป

2.4 ตั้งค่า network และ firewall

สร้าง firewall rules สำหรับ network tag ของ VM ตามตารางนี้:

Port อนุญาตจาก ใช้สำหรับ
TCP 22 IP ผู้ดูแล /32 SSH ติดตั้งและดูแลระบบ
TCP 80 0.0.0.0/0 HTTP ingress และ Let's Encrypt HTTP-01
TCP 443 0.0.0.0/0 HTTPS สำหรับ Admin, Merchant และ API

ใช้ IP ผู้ดูแลปัจจุบันเป็น source ของ TCP 22 และเปิด TCP 80/443 สำหรับผู้ใช้งานระบบ

2.5 ตรวจว่า VM พร้อม

SSH เข้า VM แล้วรันคำสั่งนี้เพื่อยืนยันว่า OS, CPU, memory และ disk ตรงตามสเปกก่อนเริ่มติดตั้ง:

lsb_release -a
nproc
free -h
sudo mkdir -p /data
lsblk -f
findmnt -T /data || true
df -hT /data

K3s ใน template กำหนด local storage path เป็น /data. หากใช้ disk แยก ให้ mount disk นั้นที่ /data ก่อนรัน script 00; หากยังไม่ได้ mount, /data จะใช้ filesystem ของ root disk. ตรวจ lsblk -f, findmnt -T /data และ df -hT /data ว่าแสดง filesystem และพื้นที่ของ disk ที่ตั้งใจใช้ อย่าตรวจเฉพาะ / เมื่อวางแผนใช้ disk แยก

ผลที่คาดหวังคือ SSH ใช้งานได้, Ubuntu พร้อมใช้งาน, มีอย่างน้อย 8 vCPU, RAM 16 GiB และ filesystem ที่ /data มีพื้นที่ตามแผน

ผลตรวจ VM ทดสอบ: 8 vCPU, EBS 300 GiB และ /data ใช้ root filesystem
ภาพที่ 2.5 ผลตรวจความพร้อมของ VM

2.6 Checklist

  • ⬜ สร้าง Ubuntu VM ที่มีอย่างน้อย 8 vCPU, RAM 16 GiB และ SSD 200 GiB ตามขนาดแนะนำ
  • ⬜ ผูก Static public IP แล้ว
  • ⬜ จำกัด SSH เฉพาะ IP ผู้ดูแล
  • ⬜ เปิด TCP 80/443 แล้ว
  • ⬜ SSH เข้า VM และตรวจ OS, CPU, memory และ filesystem ที่ /data แล้ว; mount disk แยกก่อนติดตั้งหากใช้

ขั้นตอนถัดไป: 3. ติดตั้งระบบ