เว็บนี้มีลิงก์ affiliate — หากสมัครผ่านลิงก์ เราได้รับค่าคอมมิชชัน · Affiliate links.

คู่มือติดตั้ง Ubuntu 24.04 Droplet เริ่มต้นใช้งาน 2026

A step-by-step guide to hardening and configuring a fresh Ubuntu 24.04 LTS Droplet on DigitalOcean, from SSH keys to swap.

คู่มือติดตั้ง Ubuntu 24.04 Droplet เริ่มต้นใช้งาน 2026

Ubuntu 24.04 LTS (Noble Numbat) เป็นเวอร์ชันที่ DigitalOcean แนะนำสำหรับ Droplet ใหม่ในปี 2026 ด้วยระยะเวลาซัพพอร์ตยาวถึงปี 2029 บทความนี้รวบรวมขั้นตอนตั้งค่าเริ่มต้นที่จำเป็นทุกข้อ ตั้งแต่สร้าง Droplet, ตั้งค่า SSH Key, สร้างผู้ใช้ใหม่ให้เลิกใช้ root, เปิด Firewall, อัปเดตระบบ ไปจนถึงเปิด Swap สำหรับเครื่องที่มี RAM จำกัด เพื่อให้เซิร์ฟเวอร์พร้อมใช้งานจริงอย่างปลอดภัยตั้งแต่วันแรก

สร้าง Droplet Ubuntu 24.04 LTS

การเริ่มต้นใช้งาน Droplet ที่ถูกต้องเริ่มจากขั้นตอนสร้างเครื่องให้ตรงกับความต้องการตั้งแต่แรก เข้าไปที่หน้า Control Panel ของ DigitalOcean แล้วกด Create > Droplets จากนั้นเลือก Image เป็น Ubuntu ให้ตรงกับเวอร์ชัน 24.04 (LTS) x64 เท่านั้น ไม่ใช่ build รายวันหรือเวอร์ชัน beta เพราะ LTS (Long Term Support) จะได้รับอัปเดตความปลอดภัยยาวไปจนถึงปี 2029 เหมาะกับงาน production ที่ต้องการความเสถียรระยะยาวโดยไม่ต้องอัปเกรดเวอร์ชันบ่อย ขั้นตอนต่อมาคือเลือกแผน (Plan) ให้เหมาะกับ workload จริง สำหรับทดสอบหรือรันเว็บขนาดเล็กแบบ static/API เบาๆ แผน Basic Shared CPU ขนาด 1 GiB RAM / 1 vCPU / 25 GB SSD / 1,000 GiB transfer ราคา $6/เดือน มักเพียงพอ แต่ถ้าต้องการรันเว็บแอปที่มี traffic จริงหรือมีฐานข้อมูลร่วมด้วย แนะนำขยับไปที่ 2 GiB RAM / 1 vCPU / 50 GB SSD / 2,000 GiB transfer ราคา $12/เดือน เพื่อกัน RAM ไม่พอจนต้องพึ่ง Swap ตลอดเวลา การเลือกให้พอดีตั้งแต่แรกช่วยประหยัดขั้นตอน resize ในภายหลัง สำหรับ Region ผู้ใช้ในไทยควรเลือก sgp1 (Singapore) เพราะเป็น datacenter ที่ใกล้ที่สุดในบรรดา 15 datacenter ของ DigitalOcean ทำให้ latency ต่ำกว่าการเลือก region ฝั่งสหรัฐฯ หรือยุโรปอย่างชัดเจน รองลงมาคือ blr1 (Bangalore) หากต้องการกระจายความเสี่ยงหรือมีผู้ใช้งานฝั่งเอเชียใต้ด้วย ควรรู้ไว้ว่าย้าย region ของ Droplet เดิมโดยตรงทำไม่ได้ ต้องสร้างใหม่จาก Snapshot เท่านั้น จึงควรเลือกให้ถูกต้องตั้งแต่ครั้งแรก ในขั้นตอน Authentication ให้เลือก SSH Key แทน Password ตั้งแต่ตอนสร้าง Droplet เลย (รายละเอียดการสร้าง Key อยู่ในหัวข้อถัดไป) และเปิดตัวเลือก Monitoring ซึ่งเป็นฟีเจอร์ฟรีไม่มีค่าใช้จ่ายเพิ่ม เพื่อเก็บ metrics CPU/RAM/Disk ไว้ตรวจสอบภายหลัง ตั้งชื่อ Hostname ให้สื่อความหมาย เช่น web-01-sgp1 แล้วกด Create Droplet เมื่อสร้างเสร็จ ระบบจะแสดง Public IPv4 Address ของ Droplet ให้บันทึกไว้ใช้เชื่อมต่อ ทดสอบเข้าเซิร์ฟเวอร์ครั้งแรกด้วยคำสั่ง ssh root@your_droplet_ip จาก terminal บนเครื่อง local หากเชื่อมต่อสำเร็จและเห็น prompt ของ Ubuntu 24.04 แสดงว่า Droplet พร้อมสำหรับขั้นตอนตั้งค่าความปลอดภัยต่อไป

Proper Droplet initialization begins with creating a machine tailored to your needs from the start. Go to the DigitalOcean Control Panel and click Create > Droplets. Select the Image as Ubuntu, making sure it's version 24.04 (LTS) x64 only—not daily builds or beta versions. LTS (Long Term Support) receives security updates through 2029, making it ideal for production workloads requiring long-term stability without frequent version upgrades. Next, choose a Plan appropriate for your workload. For testing or running light static/API services, the Basic Shared CPU plan with 1 GiB RAM / 1 vCPU / 25 GB SSD / 1,000 GiB transfer at $6/month is often sufficient. However, if you're running web apps with real traffic or databases, upgrading to 2 GiB RAM / 1 vCPU / 50 GB SSD / 2,000 GiB transfer at $12/month is recommended to avoid exhausting swap constantly. Choosing the right size upfront saves you the hassle of resizing later. For the Region, users in Thailand should select sgp1 (Singapore), the closest datacenter among DigitalOcean's 15 locations, ensuring significantly lower latency than US or European regions. Bangalore (blr1) is a secondary option if you want to distribute risk or serve South Asian users as well. Keep in mind that moving a Droplet's region directly isn't possible—you must create a new one from a Snapshot instead, so choose correctly the first time. During Authentication, select SSH Key instead of Password right when creating the Droplet (SSH key creation details are in the next section). Enable Monitoring, a free feature with no additional cost, to track CPU/RAM/Disk metrics for later review. Give your Droplet a meaningful Hostname like web-01-sgp1, then click Create Droplet. Once created, the system displays the Droplet's Public IPv4 Address—save this for connecting. Test your first connection with ssh root@your_droplet_ip from your local terminal. If you successfully connect and see the Ubuntu 24.04 prompt, your Droplet is ready for the next security configuration steps.

ตั้งค่า SSH Key แทน Password

SSH Key ปลอดภัยกว่ารหัสผ่านมาก เพราะป้องกันการโจมตีแบบ brute-force และไม่ต้องพิมพ์รหัสผ่านทุกครั้งที่เชื่อมต่อ ขั้นตอนแรกคือสร้างคู่กุญแจบนเครื่อง local (ไม่ใช่บน Droplet) ด้วยคำสั่ง ssh-keygen -t ed25519 -C "[email protected]" ระบบจะถามตำแหน่งไฟล์ (ค่าเริ่มต้น ~/.ssh/id_ed25519 ใช้ได้เลย) และถาม passphrase เสริมเพื่อความปลอดภัยอีกชั้น อัลกอริทึม ed25519 แนะนำกว่า RSA แบบเก่าเพราะกุญแจสั้นกว่าแต่ความปลอดภัยสูงกว่าและเร็วกว่า ถ้ายังไม่ได้เพิ่ม Key ตอนสร้าง Droplet สามารถเพิ่มทีหลังได้สองวิธี วิธีแรกคือใช้ ssh-copy-id root@your_droplet_ip ซึ่งจะคัดลอก public key ไปวางใน ~/.ssh/authorized_keys ของปลายทางให้อัตโนมัติ วิธีที่สองคือคัดลอกเนื้อหาจากไฟล์ ~/.ssh/id_ed25519.pub ไปวางในหน้า Control Panel เมนู Settings > Security > SSH Keys ของ DigitalOcean เพื่อให้ Droplet ที่สร้างใหม่ในอนาคตดึง Key นี้ไปฝังอัตโนมัติทุกเครื่องโดยไม่ต้องคัดลอกซ้ำ หลังยืนยันว่า SSH ด้วย Key ทำงานได้แล้ว (ทดสอบเปิด session ใหม่อีกแท็บโดยไม่ปิด session เดิม เผื่อมีปัญหาจะได้กลับมาแก้ได้) ให้ปิดการล็อกอินด้วยรหัสผ่านที่ไฟล์ตั้งค่า SSH daemon โดยแก้ /etc/ssh/sshd_config เปลี่ยนค่า PasswordAuthentication no และตั้ง PermitRootLogin prohibit-password เพื่อให้ root ยังคง SSH เข้าได้เฉพาะผ่าน Key เท่านั้น (จะปิด root login ทั้งหมดในหัวข้อถัดไปหลังสร้าง user ใหม่แล้ว) จากนั้นรีสตาร์ทบริการด้วย systemctl restart ssh ข้อควรระวังที่สำคัญที่สุดคือห้ามปิด session terminal เดิมจนกว่าจะทดสอบเปิด session ใหม่สำเร็จก่อน เพราะถ้าตั้งค่าผิดพลาดแล้วปิดหน้าต่างไปจะล็อกตัวเองออกจาก Droplet ทันที ในกรณีนั้นยังสามารถกู้คืนผ่าน DigitalOcean Console (Droplet Access > Launch Droplet Console) ซึ่งเข้าเซิร์ฟเวอร์ผ่านเว็บเบราว์เซอร์โดยตรงไม่ผ่าน SSH ทำให้แก้ไขไฟล์กลับได้เสมอแม้ SSH จะใช้งานไม่ได้แล้วก็ตาม

สร้าง User ใหม่ไม่ใช้ root

การรันงานประจำวันด้วย root โดยตรงมีความเสี่ยงสูง เพราะคำสั่งผิดพลาดเพียงครั้งเดียวอาจสร้างความเสียหายทั้งระบบ แนวทางมาตรฐานคือสร้างผู้ใช้ใหม่ที่มีสิทธิ์ sudo แทน เริ่มจากคำสั่ง adduser deploy ซึ่งจะพาไปตั้งรหัสผ่านและข้อมูลเบื้องต้น (สามารถกด Enter ผ่านช่องที่ไม่จำเป็นได้) จากนั้นเพิ่ม user เข้ากลุ่ม sudo ด้วย usermod -aG sudo deploy เพื่อให้สามารถรันคำสั่งระดับ admin ผ่าน sudo ได้เมื่อจำเป็น ขั้นตอนที่มักถูกลืมคือการย้าย SSH Key ไปให้ user ใหม่ใช้งานด้วย ไม่เช่นนั้นจะ SSH เข้า user นี้ไม่ได้เลย ทำได้โดยคัดลอกโฟลเดอร์ .ssh ของ root ไปให้ user ใหม่ด้วยคำสั่งเดียว rsync --archive --chown=deploy:deploy ~/.ssh /home/deploy ซึ่งจะคัดลอกไฟล์ authorized_keys ที่มี public key อยู่แล้วไปไว้ที่ home ของ deploy พร้อมตั้งเจ้าของไฟล์ให้ถูกต้องในคำสั่งเดียว ไม่ต้องทำทีละขั้นตอน ทดสอบเปิด terminal ใหม่แล้ว SSH เข้าด้วย ssh deploy@your_droplet_ip ทันทีที่เข้าได้ ทดสอบสิทธิ์ sudo ด้วยคำสั่งเบาๆ เช่น sudo apt update ระบบจะถามรหัสผ่านของ user deploy (ไม่ใช่รหัส root) หากผ่านแสดงว่าตั้งค่าสิทธิ์ถูกต้องเรียบร้อยแล้ว เมื่อมั่นใจว่า user ใหม่ใช้งานได้สมบูรณ์แล้ว ขั้นตอนสุดท้ายคือปิดการ SSH login ด้วย root โดยตรงทั้งหมด กลับไปแก้ /etc/ssh/sshd_config เปลี่ยน PermitRootLogin จาก prohibit-password เป็น no แล้ว systemctl restart ssh อีกครั้ง จากจุดนี้เป็นต้นไป root จะเข้าระบบได้เฉพาะผ่านคำสั่ง sudo ของ user deploy หรือผ่าน Droplet Console บนเว็บเท่านั้น ซึ่งลดพื้นผิวการโจมตี (attack surface) ลงอย่างมีนัยสำคัญ เพราะ bot สแกนหา root login ทาง SSH เป็นรูปแบบการโจมตีที่พบบ่อยที่สุดบนอินเทอร์เน็ต

เปิด UFW Firewall พื้นฐาน

UFW (Uncomplicated Firewall) เป็น wrapper ของ iptables ที่ติดตั้งมาพร้อม Ubuntu อยู่แล้ว ใช้งานง่ายกว่าการเขียนกฎ iptables ตรงๆ มาก กฎข้อแรกที่ต้องทำเสมอก่อนเปิดใช้งาน UFW คืออนุญาต SSH ก่อน ไม่เช่นนั้นจะล็อกตัวเองออกจากเซิร์ฟเวอร์ทันทีที่ enable ใช้คำสั่ง ufw allow OpenSSH (หรือระบุ port ตรงๆ ด้วย ufw allow 22/tcp ถ้าเปลี่ยน SSH port ไปแล้ว) จากนั้นค่อยเปิดใช้งานด้วย ufw enable ระบบจะถามยืนยันเพราะอาจกระทบ session ปัจจุบัน ให้พิมพ์ y ยืนยัน สำหรับเซิร์ฟเวอร์ที่จะรันเว็บ ต้องเปิดพอร์ตเว็บเพิ่มเติมด้วย ufw allow 80/tcp สำหรับ HTTP และ ufw allow 443/tcp สำหรับ HTTPS หรือถ้าติดตั้ง Nginx ไว้แล้วสามารถใช้ ufw allow "Nginx Full" เพื่อเปิดทั้งสอง port พร้อมกันในคำสั่งเดียว ตรวจสอบกฎทั้งหมดที่ตั้งไว้ได้ด้วย ufw status verbose ซึ่งจะแสดงทั้ง policy default และรายการ port ที่เปิดอยู่ทั้งหมด เทคนิคเสริมความปลอดภัยที่แนะนำคือใช้ ufw limit OpenSSH แทน allow ธรรมดา ซึ่งจะจำกัดจำนวนครั้งการเชื่อมต่อจาก IP เดียวกันในช่วงเวลาสั้นๆ ช่วยชะลอการโจมตีแบบ brute-force ได้ในระดับหนึ่งโดยไม่ต้องติดตั้งเครื่องมือเพิ่มเติมใดๆ ควรรู้ไว้ด้วยว่า UFW ทำงานอยู่ภายในตัว Droplet เท่านั้น (host-based firewall) ซึ่งแตกต่างจาก DigitalOcean Cloud Firewall ที่ทำงานอยู่ที่ระดับ network edge ก่อนทราฟฟิกจะมาถึง Droplet เลยด้วยซ้ำ และเป็นฟีเจอร์ฟรีไม่มีค่าใช้จ่ายเพิ่ม การใช้ทั้งสองชั้นร่วมกัน (defense in depth) ปลอดภัยกว่าการพึ่งอย่างใดอย่างหนึ่งเพียงอย่างเดียว เพราะถ้า UFW ถูกปิดหรือลบกฎผิดพลาดโดยไม่ตั้งใจ ยังมี Cloud Firewall เป็นด่านป้องกันสำรองอยู่เสมอ

สรุปสิ่งสำคัญ: รัน ufw allow OpenSSH ก่อนเสมอ แล้วค่อย ufw enable ไม่งั้นจะล็อกตัวเองออกจากเครื่อง

อัปเดตระบบและตั้งค่า Timezone

ในประสบการณ์ของเรา หลังตั้งค่าความปลอดภัยพื้นฐานเสร็จ ขั้นตอนถัดไปคืออัปเดตแพ็กเกจทั้งหมดให้เป็นเวอร์ชันล่าสุด เพราะ image ที่ DigitalOcean ให้มาอาจถูกสร้างไว้ล่วงหน้าหลายสัปดาห์ ใช้คำสั่ง apt update && apt upgrade -y โดย apt update จะดึงรายการแพ็กเกจล่าสุดจาก repository และ apt upgrade -y จะอัปเดตทุกแพ็กเกจที่มีเวอร์ชันใหม่กว่าโดยตอบ yes อัตโนมัติ หลังอัปเดตเสร็จ ตรวจสอบว่าต้อง reboot หรือไม่ด้วยการดูว่าไฟล์ /var/run/reboot-required มีอยู่หรือไม่ ถ้ามีแปลว่ามีการอัปเดต kernel หรือ library หลักที่ต้องรีสตาร์ทเครื่องจึงจะมีผลจริง เพื่อไม่ต้องคอย apt upgrade ด้วยมือทุกครั้ง แนะนำติดตั้ง unattended-upgrades ซึ่งเป็นแพ็กเกจมาตรฐานของ Ubuntu สำหรับติดตั้งอัปเดตด้านความปลอดภัยอัตโนมัติในเบื้องหลัง ติดตั้งด้วย apt install unattended-upgrades -y แล้วเปิดใช้งานด้วย dpkg-reconfigure --priority=low unattended-upgrades ซึ่งช่วยลดความเสี่ยงจากช่องโหว่ที่ถูกค้นพบใหม่โดยไม่ต้องเข้าไปดูแลเซิร์ฟเวอร์ทุกวัน อีกจุดที่มักถูกมองข้ามคือ Timezone ของระบบ ค่าเริ่มต้นของ Droplet มักตั้งเป็น UTC ซึ่งทำให้ timestamp ใน log หรือ cron job ไม่ตรงกับเวลาประเทศไทย ตั้งค่าให้ตรงด้วยคำสั่ง timedatectl set-timezone Asia/Bangkok เพียงคำสั่งเดียว ไม่ต้องแก้ไฟล์ config ด้วยมือ ตรวจสอบผลลัพธ์ด้วย timedatectl status ซึ่งจะแสดง Local time ที่เปลี่ยนเป็น UTC+7 ทันที การตั้ง Timezone ให้ถูกต้องตั้งแต่ต้นสำคัญมากสำหรับระบบที่มี cron job กำหนดเวลาทำงาน หรือแอปพลิเคชันที่บันทึก log พร้อม timestamp เพราะถ้าตั้งทีหลังเมื่อมีข้อมูลสะสมแล้ว การไล่เทียบเวลาย้อนหลังระหว่าง UTC กับเวลาไทยจะยุ่งยากกว่ามาก โดยเฉพาะเมื่อต้อง debug ปัญหาที่เกี่ยวกับเวลาข้ามหลายไฟล์ log พร้อมกัน

  1. อัปเดตระบบด้วย apt update && apt upgrade -y เสมอหลังสร้าง Droplet ใหม่
  2. เช็คว่าต้อง reboot หรือไม่ด้วยการดูไฟล์ /var/run/reboot-required
  3. ติดตั้ง unattended-upgrades ให้ระบบอัปเดตความปลอดภัยอัตโนมัติในเบื้องหลัง
  4. ตั้ง Timezone ด้วย timedatectl set-timezone Asia/Bangkok คำสั่งเดียวจบ

เปิด Swap สำหรับ Droplet RAM น้อย

Droplet ขนาดเล็กอย่างแผน 512 MiB หรือ 1 GiB RAM มีโอกาสเจอปัญหาหน่วยความจำไม่พอ (Out of Memory) ได้ง่าย โดยเฉพาะตอนรัน apt upgrade ที่ compile บาง package หรือรันแอปที่กิน memory เป็นช่วงสั้นๆ การเปิด Swap ช่วยเป็นพื้นที่สำรองไม่ให้ process ถูก OOM killer ฆ่าทิ้งกะทันหัน แม้จะช้ากว่า RAM จริงมากเพราะใช้ disk แต่ก็ดีกว่าแอปล่มทันทีโดยไม่มีทางป้องกัน สร้างไฟล์ swap ขนาด 2GB ด้วยคำสั่ง fallocate -l 2G /swapfile (ถ้า filesystem ไม่รองรับ fallocate ให้ใช้ dd if=/dev/zero of=/swapfile bs=1M count=2048 แทน) จากนั้นจำกัดสิทธิ์การเข้าถึงไฟล์ให้ root เท่านั้นด้วย chmod 600 /swapfile เพื่อความปลอดภัย เพราะไฟล์นี้อาจมีข้อมูลจาก RAM หลุดมาอยู่ชั่วคราว ขั้นตอนต่อมาคือตั้งค่าไฟล์ให้เป็น swap area จริงด้วย mkswap /swapfile แล้วเปิดใช้งานด้วย swapon /swapfile ตรวจสอบว่าเปิดสำเร็จด้วยคำสั่ง swapon --show หรือ free -h ซึ่งจะเห็นแถว Swap แสดงขนาดที่ตั้งไว้ แต่ขั้นตอนนี้จะหายไปทันทีที่ reboot เครื่อง ถ้าไม่เพิ่มบรรทัด /swapfile none swap sw 0 0 ลงในไฟล์ /etc/fstab ให้ระบบ mount swap กลับมาอัตโนมัติทุกครั้งที่บูต ซึ่งเป็นจุดที่ผู้เริ่มต้นมักลืมทำแล้วสงสัยทีหลังว่าทำไม swap หายไปหลัง reboot สุดท้ายควรปรับค่า vm.swappiness ให้เหมาะสม ค่าเริ่มต้นของ Ubuntu มักอยู่ที่ 60 ซึ่งระบบจะสลับไปใช้ swap ค่อนข้างเร็ว สำหรับเซิร์ฟเวอร์ที่อยากให้ใช้ RAM เต็มที่ก่อนแล้วค่อยพึ่ง swap เป็นทางเลือกสุดท้าย ปรับลดเหลือ 10 ได้โดยเพิ่มบรรทัด vm.swappiness=10 ลงในไฟล์ /etc/sysctl.conf แล้วรัน sysctl -p เพื่อให้มีผลทันทีโดยไม่ต้อง reboot เครื่อง

ข้อผิดพลาดที่พบบ่อยและวิธีแก้ไข

ข้อที่มักถูกมองข้ามคือ ข้อผิดพลาดที่พบบ่อยที่สุดในการตั้งค่า Droplet ใหม่คือการปิด Password Authentication หรือปิด root login ก่อนที่จะทดสอบว่า SSH Key ใช้งานได้จริง ทำให้ล็อกตัวเองออกจากเซิร์ฟเวอร์โดยไม่มีทางเข้าผ่าน SSH อีก ทางแก้คือใช้ Droplet Console บนหน้าเว็บ DigitalOcean (เมนู Access > Launch Droplet Console) ซึ่งเข้าเซิร์ฟเวอร์ผ่านเบราว์เซอร์โดยตรงไม่ต้องพึ่ง SSH เพื่อแก้ไขไฟล์ sshd_config กลับ และเป็นเหตุผลว่าทำไมบทความนี้ถึงย้ำเรื่องทดสอบก่อนปิดทุกครั้ง ข้อผิดพลาดอันดับสองคือ enable UFW ก่อนอนุญาต OpenSSH ทำให้ session ที่เชื่อมต่ออยู่หลุดทันทีและเชื่อมต่อใหม่ไม่ได้เลย ป้องกันได้ด้วยการรัน ufw allow OpenSSH ให้เรียบร้อยก่อน ufw enable เสมอ ถ้าเผลอพลาดไปแล้วต้องใช้ Droplet Console เข้าไปรัน ufw disable เพื่อกู้คืนการเชื่อมต่อก่อน อีกจุดที่พบบ่อยคือสร้าง user ใหม่แล้วลืมเพิ่มเข้ากลุ่ม sudo หรือลืมย้าย SSH Key ไปให้ user นั้น ทำให้เข้าใจผิดว่า setup เสร็จแล้วแต่จริงๆ ยังต้องพึ่ง root อยู่ ควรทดสอบ ssh deploy@ip และ sudo whoami ให้ผ่านก่อนปิด root login เสมอ สำหรับ Swap ปัญหาที่พบบ่อยคือลืมเพิ่มบรรทัดใน /etc/fstab ทำให้ swap หายไปทุกครั้งที่ reboot เซิร์ฟเวอร์ วิธีตรวจสอบง่ายๆ คือรัน free -h หลัง reboot ทุกครั้งที่มีการอัปเดต kernel เพื่อยืนยันว่า swap ยังทำงานอยู่ และสุดท้ายคือการเลือก Region ผิด เช่นเลือก region ฝั่งสหรัฐฯ ทั้งที่ผู้ใช้งานส่วนใหญ่อยู่ในไทย ทำให้ latency สูงโดยไม่จำเป็นทั้งที่แก้ได้ตั้งแต่ตอนสร้าง Droplet ด้วยการเลือก sgp1 (Singapore) หรือ blr1 (Bangalore) แทน การย้าย region ภายหลังทำไม่ได้โดยตรงต้องสร้าง Droplet ใหม่จาก Snapshot เท่านั้น

  1. ล็อกตัวเองออกจาก SSH เพราะปิด Password/root login ก่อนทดสอบ Key แก้ด้วย Droplet Console
  2. enable UFW ก่อนอนุญาต OpenSSH ทำ session หลุด ต้องแก้ผ่าน Droplet Console เช่นกัน
  3. ลืมเพิ่ม user เข้ากลุ่ม sudo หรือลืมย้าย SSH Key ให้ user ใหม่
  4. ลืมเพิ่มบรรทัดใน /etc/fstab ทำให้ swap หายหลัง reboot

แนวทางปฏิบัติที่ดีที่สุด (Best Practices)

หลังตั้งค่าเสร็จครบทุกขั้นตอนตามคู่มือนี้ แนะนำให้สร้าง Droplet Snapshot ทันทีเก็บไว้เป็น golden image ราคาของ Snapshot อยู่ที่ $0.06/GiB ต่อเดือน ซึ่งถูกมากเมื่อเทียบกับเวลาที่ต้องเสียถ้าต้องตั้งค่าทุกอย่างใหม่ตั้งแต่ต้น การมี Snapshot ที่ผ่านการตั้งค่าความปลอดภัยพื้นฐานแล้วยังช่วยให้สร้าง Droplet ตัวใหม่ในอนาคต (เช่นตอน scale out) ได้เร็วขึ้นมาก เพราะไม่ต้องไล่ทำ SSH Key, user, firewall ซ้ำทุกครั้ง ควรเปิดใช้งาน DigitalOcean Cloud Firewall เพิ่มอีกชั้นควบคู่กับ UFW เพราะเป็นฟีเจอร์ฟรีไม่มีค่าใช้จ่ายเพิ่ม และทำงานที่ network edge ก่อนทราฟฟิกเข้าถึง Droplet เลยด้วยซ้ำ ช่วยลดโหลดที่ตัวเซิร์ฟเวอร์เองต้องรับมือ อีกทั้งยังควรเปิด Monitoring และตั้ง Alert Policy แจ้งเตือนผ่านอีเมลเมื่อ CPU หรือ Disk ใกล้เต็ม ซึ่งเป็นฟีเจอร์ฟรีเช่นกันและช่วยให้รู้ปัญหาก่อนที่ผู้ใช้งานจริงจะเจอ ด้าน SSH Key แนะนำสร้าง Key แยกต่างหากสำหรับแต่ละอุปกรณ์ที่ใช้เชื่อมต่อ (เช่น laptop ทำงาน กับเครื่อง desktop ที่บ้าน) แทนการใช้ Key เดียวกันทุกที่ เพราะถ้าอุปกรณ์ใดอุปกรณ์หนึ่งหายหรือถูกขโมย สามารถลบเฉพาะ Key นั้นออกจาก authorized_keys หรือหน้า Control Panel ได้โดยไม่กระทบอุปกรณ์อื่น สำหรับทีมที่ต้องสร้าง Droplet ลักษณะนี้ซ้ำบ่อยๆ ควรพิจารณาเขียนขั้นตอนทั้งหมดเป็น cloud-init user data script แนบตอนสร้าง Droplet ผ่านหน้า Advanced Options เพื่อให้การสร้าง user, ตั้งค่า firewall, timezone และ swap เกิดขึ้นอัตโนมัติทันทีที่ Droplet บูตขึ้นครั้งแรก ลดโอกาสพลาดขั้นตอนเมื่อทำด้วยมือซ้ำๆ และสุดท้ายอย่าลืมตั้ง unattended-upgrades ให้ทำงานต่อเนื่องระยะยาว เพราะความปลอดภัยของเซิร์ฟเวอร์ไม่ใช่งานที่ทำครั้งเดียวจบ แต่ต้องดูแลต่อเนื่องตลอดอายุการใช้งานของ Droplet

รับ $200 Free Credit →

คำถามที่พบบ่อย (FAQ)

ทำไมคู่มือนี้แนะนำ Ubuntu 24.04 LTS แทนเวอร์ชันอื่น
เพราะ Ubuntu 24.04 (Noble Numbat) เป็นรุ่น LTS ที่ได้รับการซัพพอร์ตความปลอดภัยยาวถึงปี 2029 เหมาะกับเซิร์ฟเวอร์ production ที่ต้องการความเสถียรระยะยาวโดยไม่ต้องอัปเกรดเวอร์ชันบ่อย ต่างจากรุ่น interim release ที่ซัพพอร์ตสั้นกว่ามาก
ถ้าปิด Password Authentication แล้ว SSH เข้าไม่ได้เลยต้องทำยังไง
ใช้ Droplet Console บนหน้าเว็บ DigitalOcean (เมนู Access > Launch Droplet Console) ซึ่งเข้าเซิร์ฟเวอร์ผ่านเบราว์เซอร์โดยตรงไม่ผ่าน SSH เพื่อกลับไปแก้ไฟล์ /etc/ssh/sshd_config หรือ UFW ที่ตั้งค่าผิดพลาด แล้วค่อยกลับมาต่อผ่าน SSH ตามปกติ
จำเป็นต้องซื้อ Reserved IP สำหรับการตั้งค่าเบื้องต้นนี้หรือไม่
ไม่จำเป็น Droplet ทุกตัวได้รับ Public IPv4 Address ติดมาให้ฟรีตั้งแต่สร้าง Reserved IP มีประโยชน์เฉพาะกรณีต้องการ IP คงที่สำหรับทำ failover ข้าม Droplet ซึ่งถ้าผูกกับ Droplet ที่ใช้งานอยู่ก็ฟรีเช่นกัน จะเสียค่าใช้จ่าย $5/เดือน เฉพาะตอนที่จองไว้แต่ไม่ได้ผูกกับ Droplet ใดเลย
Droplet ที่มี RAM เยอะอยู่แล้วยังจำเป็นต้องเปิด Swap หรือไม่
ยังแนะนำให้เปิดไว้ แม้ RAM จะเหลือเฟือในสถานการณ์ปกติ แต่ Swap ยังทำหน้าที่เป็นตัวกันชนป้องกัน process ถูก OOM killer ฆ่าทิ้งกะทันหันในช่วงที่มีการใช้หน่วยความจำพุ่งสูงผิดปกติชั่วคราว เช่นตอน compile หรือ import ข้อมูลขนาดใหญ่
ใช้ UFW กับ DigitalOcean Cloud Firewall พร้อมกันได้ไหม ต่างกันอย่างไร
ใช้ร่วมกันได้และแนะนำให้ใช้ทั้งคู่ UFW ทำงานอยู่ภายใน Droplet เอง (host-based) ส่วน Cloud Firewall ทำงานที่ network edge ก่อนทราฟฟิกเข้าถึงเครื่องเลยด้วยซ้ำ และเป็นฟีเจอร์ฟรีของ DigitalOcean การใช้สองชั้นร่วมกันช่วยให้ระบบปลอดภัยขึ้นแบบ defense in depth
ต้อง reboot เครื่องหลัง apt upgrade ทุกครั้งหรือไม่
ไม่จำเป็นเสมอไป ให้ตรวจสอบด้วยการดูว่าไฟล์ /var/run/reboot-required มีอยู่หรือไม่ ถ้ามีไฟล์นี้แปลว่ามีการอัปเดต kernel หรือ library หลักที่ต้องรีสตาร์ทเครื่องจึงจะมีผลจริง ถ้าไม่มีไฟล์นี้แปลว่าอัปเดตแพ็กเกจทั่วไปมีผลทันทีโดยไม่ต้อง reboot