#1. Archive Droplet หมายถึงอะไร

ในคู่มือนี้ Archive หมายถึงการเก็บสภาพระบบไว้ใน Snapshot เพื่อสร้างเครื่องกลับมาใช้ภายหลัง หากต้องการหยุดค่าเครื่อง ให้ลบ Droplet หลังจากสำรองและทดสอบกู้คืนสำเร็จแล้ว เป็นแนวทางปฏิบัติ ไม่ได้หมายถึงปุ่ม Archive หรือสถานะพักเครื่องที่ไม่คิดเงิน

Power Off ยังคิดค่า Droplet เพราะทรัพยากรยังถูกจัดสรรอยู่ การหยุดค่า Droplet ต้อง Destroy เครื่อง ส่วน Snapshot และทรัพยากรอื่นที่เก็บไว้ยังมีค่าใช้จ่ายตามบริการ [1][2]

ตัวอย่างการใช้งาน: หลังจบอบรม Docker หรือ Jenkins ให้เก็บระบบต้นแบบพร้อมข้อมูลตัวอย่าง จากนั้นสร้างเครื่องใหม่จาก Snapshot ในการอบรมรอบถัดไป ระหว่างที่ไม่มีเครื่องทำงานจะยังมีค่าจัดเก็บ Snapshot

#2. เลือกวิธีสำรองให้ตรงเป้าหมาย

วิธี เหมาะกับ สิ่งที่ต้องเข้าใจ
Power Off หยุดระบบชั่วคราว ไม่ใช่ Backup และยังมีค่าเครื่อง
Droplet Snapshot เก็บสภาพดิสก์ก่อนเปลี่ยนระบบหรือ Archive สร้างตามต้องการ; ไม่รวม Volume ที่แนบ
Automated Backups สำรองเป็นรอบสำหรับเครื่องที่ใช้งานต่อเนื่อง มีแผน ความถี่ และอายุเก็บตามนโยบายที่เลือก
Volume Snapshot สำรอง Block Storage ต้องสร้างและกู้คืนแยกจาก Droplet
Application/Data Backup สำรองฐานข้อมูล ไฟล์อัปโหลด หรือย้ายข้ามผู้ให้บริการ ต้องเลือกเครื่องมือและทดสอบการนำกลับเข้าใช้งาน

Snapshots และ Backups ช่วยคนละด้าน ควรมีสำเนาข้อมูลระดับแอปพลิเคชันร่วมด้วย โดยเฉพาะข้อมูลที่เปลี่ยนบ่อย เอกสาร Backups ปัจจุบันมีทั้งรูปแบบแผนและการกำหนด retention จึงควรอ่านนโยบายที่บัญชีเลือกใช้อยู่ ไม่ควรถือว่าทุกแผนเก็บข้อมูลเท่ากัน [3]

#3. Snapshot เก็บอะไร และไม่เก็บอะไร

Droplet Snapshot เก็บข้อมูลบนดิสก์ของเครื่อง เช่น OS โปรแกรม ไฟล์แอป และ configuration ที่อยู่บนดิสก์ ส่วนข้อมูลฐานข้อมูลจะใช้งานได้ถูกต้องหรือไม่ขึ้นอยู่กับความสอดคล้องของข้อมูลขณะถ่ายภาพ [4]

รายการ แนวทาง
ไฟล์บนดิสก์ Droplet อยู่ใน Snapshot ณ เวลาที่สร้าง
ข้อมูลใน RAM และ process ที่กำลังทำงาน ไม่ใช่สิ่งที่ disk snapshot เก็บเพื่อกลับมาทำงานต่อ
Attached Block Storage Volume สร้าง Volume Snapshot แยก [5]
Managed Database / Spaces / บริการภายนอก จัดทำแผนสำรองของบริการนั้นแยก
IP และ metadata ของ Droplet ไม่ได้ติดไปกับ Snapshot [6]
DNS, Cloud Firewall, VPC และ Load Balancer บันทึกและตรวจการเชื่อมโยงใหม่เมื่อสร้างเครื่อง

ข้อควรแยกให้ออกสำหรับ Docker: named volume ที่เก็บจริงบนดิสก์ Droplet มีข้อมูลอยู่บนดิสก์นั้น แต่ถ้า mount จาก DigitalOcean Volume หรือ external storage ต้องสำรองตำแหน่งจริงด้วย คำว่า Docker volume กับ DigitalOcean Volume ไม่ได้หมายถึงสิ่งเดียวกัน

#4. ขั้นตอน Archive ผ่าน Control Panel

#ขั้นที่ 1: บันทึกสิ่งที่จำเป็นต่อการสร้างระบบกลับ

จัดทำรายการชื่อเครื่อง, region, ขนาดดิสก์, OS, app version, domain, mount point, service, scheduled job และ dependency ภายนอก เก็บ configuration ที่ไม่มีความลับใน Git และเก็บ secrets ในที่จัดการความลับที่เข้าถึงได้เมื่อเครื่องเดิมหายไป

ตัวอย่างตรวจสภาพเครื่อง Linux:

hostnamectl
lsblk -f
df -h
findmnt
systemctl --failed

ถ้าใช้ Docker ให้ตรวจ docker ps -a และ docker volume ls รวมทั้งไฟล์ Compose เพื่อทราบว่าข้อมูลอยู่ที่ใด อย่าเก็บสำเนาฐานข้อมูลไว้บนเครื่องเดิมเพียงแห่งเดียว

#ขั้นที่ 2: หยุดการเขียนข้อมูลและปิดเครื่องอย่างถูกต้อง

กำหนดช่วง downtime เปิด maintenance mode หยุด worker และงานตามเวลา สำรองฐานข้อมูลด้วยเครื่องมือของฐานข้อมูลตามรูปแบบ deployment แล้วตรวจผลการสำรอง

สำหรับระบบที่ใช้หลายดิสก์ ให้หยุดการเขียนข้อมูลค้างไว้ตลอดช่วงที่ถ่าย Snapshot ทุกดิสก์ เพื่อให้ชุดข้อมูลสอดคล้องกัน หากเป็นระบบหลายเครื่องต้องวางแผน coordination เพิ่ม ไม่ควรถือว่าการ Snapshot แยกเครื่องเกิดพร้อมกันโดยอัตโนมัติ

สั่งบน Droplet ที่ต้องการสำรอง:

sudo shutdown -h now

SSH จะหลุดตามปกติ รอจน Control Panel แสดงว่าเครื่องปิดแล้ว DigitalOcean อนุญาต live snapshot แต่ระบุว่าขณะเครื่องทำงานอาจกระทบประสิทธิภาพและความสอดคล้องของข้อมูล โดยเฉพาะฐานข้อมูล [4]

#ขั้นที่ 3: สร้าง Droplet Snapshot

  1. เปิด Control Panel และเลือก Droplet เป้าหมาย
  2. เปิดส่วน Snapshots หรือ Backups & Snapshots ตามหน้าจอที่แสดง
  3. ตั้งชื่อที่บอกระบบ วันที่ และจุดประสงค์ เช่น training-jenkins-2026-10-29-pre-archive
  4. กด Take Snapshot และรอจนเสร็จ
  5. บันทึก Snapshot ID, วันเวลา, region และข้อกำหนดขนาดดิสก์

ชื่อเมนูอาจต่างกันตามการปรับ UI ให้ยึดชื่อทรัพยากรและสถานะการทำงานเป็นหลัก [4][7]

#ขั้นที่ 4: สำรอง Volume แยก

ถ้ามี Block Storage ให้ไปที่ Volumes → More → Take Snapshot และสร้าง Snapshot ของแต่ละลูก บันทึกว่า Volume ใดจับคู่กับ Droplet Snapshot ชุดใด อย่าเปิดแอปให้เขียนข้อมูลต่อก่อนสร้างชุดสำรองครบ [5][7]

#ขั้นที่ 5: ทดลองกู้คืนก่อนลบเครื่องต้นฉบับ

สร้าง Droplet ทดสอบจาก Snapshot และ Volume ทดสอบถ้ามี ใช้เครือข่าย/Firewall ที่จำกัดการเข้าถึง ป้องกัน cron, worker หรือ webhook ที่ถูก clone ไปทำงานกับระบบจริงซ้ำ ตรวจ SSH ไฟล์ แอป และฐานข้อมูลตามหัวข้อ 8

ถ้าระบบต้นฉบับเปิดใช้งานและมีข้อมูลใหม่หลัง Snapshot ต้องหยุดเขียนและเก็บ Snapshot ชุดสุดท้ายอีกครั้งก่อน Archive ไม่เช่นนั้นข้อมูลที่เกิดภายหลังจะไม่อยู่ในสำเนา

#ขั้นที่ 6: Destroy เฉพาะทรัพยากรที่ตั้งใจเลิกใช้งาน

เมื่อผลทดสอบผ่านแล้ว จึงเปิดเมนู Destroy ของ Droplet ตรวจชื่อเครื่อง และ อย่าเลือก Snapshot ที่ต้องการเก็บให้ถูกลบตามไปด้วย หน้าจออาจเสนอให้ลบ Volume และ Volume Snapshot ที่เกี่ยวข้องด้วย ต้องตรวจทีละรายการ [8]

การ Destroy ย้อนกลับไม่ได้ หากมี Automated Backup ที่ต้องเก็บระยะยาว ให้แปลงเป็น Snapshot ก่อน อย่าอาศัย retention ของ Backup เป็นคลังถาวร [8]

หลังจบงาน ตรวจทรัพยากรที่ยังมีค่าบริการ เช่น เครื่องทดสอบ Volume Load Balancer และทรัพยากรเครือข่ายที่เก็บไว้ ค่า Snapshot ยังคงอยู่จนกว่าจะลบ Snapshot

#5. กู้คืนโดยสร้าง Droplet ใหม่จาก Snapshot

วิธีนี้เหมาะสำหรับระบบที่ Archive ไปแล้ว หรือเมื่อต้องการทดสอบก่อนเปลี่ยนเครื่องใช้งานจริง

  1. เลือก Create → Droplets
  2. ใน Choose an image เลือก Snapshots แล้วเลือกภาพที่ต้องการ
  3. เลือก region ที่มี Snapshot นั้น และขนาดดิสก์เท่ากับหรือมากกว่าข้อกำหนดของภาพ
  4. ตั้งค่าเครื่องและเครือข่าย แล้วกด Create
  5. ตรวจการเข้า SSH และ service จากนั้นคืน Volume และปรับการเชื่อมต่อระบบ

ขนาด Snapshot ที่คิดเงินไม่ใช่ขนาดดิสก์ขั้นต่ำสำหรับกู้คืน เช่น ภาพมีข้อมูล 12 GB จากดิสก์ 50 GB ไม่ได้แปลว่าสร้างเครื่องดิสก์ 25 GB ได้ ให้ตรวจ MinDiskSize และข้อจำกัดที่หน้าสร้างเครื่องแสดง [6][9]

เครื่องใหม่ไม่ได้รับ IP เดิมจาก Snapshot โดยอัตโนมัติ ตรวจ DNS และ IP allowlist หากใช้ Reserved IP ให้ตรวจเงื่อนไข region และการย้ายการผูก IP ก่อนนำมาใช้งาน [10]

เมื่อทดสอบผ่านจึงสลับ DNS หรือเส้นทาง traffic เปิด worker และงานตามเวลา แล้วติดตาม error log และข้อมูลที่ผู้ใช้สร้างใหม่

#6. กู้คืนทับ Droplet เดิม

ใช้เมื่อเครื่องเดิมยังอยู่และต้องการย้อนสภาพดิสก์กลับ เช่น อัปเกรดแอปผิดพลาด

Restore ทับเครื่องเดิมจะแทนที่ข้อมูลปัจจุบันบนดิสก์ด้วยข้อมูลใน Snapshot สำรองข้อมูลใหม่ที่ต้องการเก็บก่อน ไม่ใช่การ merge ไฟล์เก่ากับไฟล์ใหม่

เข้า Backups & Snapshots → Snapshots เลือก Snapshot ของเครื่องนั้น แล้วใช้ More → Restore Droplet ตรวจเป้าหมายและยืนยัน จากนั้นตรวจระบบอีกครั้ง ข้อมูล metadata ของเครื่องเดิมอยู่กับตัว Droplet ไม่ได้ถูกกู้มาจาก Snapshot [6]

หาก Droplet เดิมถูก Destroy ไปแล้ว ให้สร้างเครื่องใหม่ตามหัวข้อ 5 การเลือก Restore ที่ยังอ้างเครื่องเดิมอาจแจ้งว่าไม่พบ resource [10]

ประเด็น สร้างเครื่องใหม่ Restore เครื่องเดิม
เป้าหมาย กลับมาใช้หลัง Archive / ทดสอบ ย้อนระบบที่ยังมีเครื่องเดิม
ข้อมูลปัจจุบันของเครื่องเดิม ไม่ถูกแทนที่ด้วยขั้นตอนสร้างใหม่ ถูกแทนที่บนดิสก์ที่ Restore
การตรวจสอบ ทดสอบแยกก่อนสลับ traffic ได้ ต้องวางแผน downtime
IP ตรวจและปรับการชี้ใหม่ ตรวจ metadata และ network ของเครื่องเดิม

#7. กู้คืน Volume หรือเฉพาะไฟล์

สำหรับ Volume Snapshot ให้ไปที่ Backups & Snapshots → Snapshots → Volumes เลือก Create Volume สร้างใน region เดิมโดยใช้ขนาดไม่น้อยกว่า Volume ต้นฉบับ แล้ว attach กับ Droplet และตรวจ mount point [11]

lsblk -f
findmnt
df -h

ตรวจ /etc/fstab และ UUID ให้ถูกต้อง อย่าสั่ง format หรือ mkfs กับ Volume ที่กู้จาก Snapshot เพราะมี filesystem และข้อมูลอยู่แล้ว ขั้นตอน format ในคู่มือสร้างดิสก์เปล่าใช้แทนขั้นตอนกู้คืนไม่ได้

หากต้องการเพียงไฟล์ที่เผลอลบ ให้สร้างเครื่องหรือ Volume ชั่วคราวจาก Snapshot แล้วคัดลอกไฟล์ออกมา ตรวจ checksum/เนื้อหาและสิทธิ์ไฟล์ก่อนแทนที่ไฟล์ปลายทาง ไม่จำเป็นต้องย้อนระบบทั้งหมด [10]

#8. Checklist ยืนยันว่ากู้คืนได้จริง

  • [ ] เข้า SSH ด้วยบัญชีที่เตรียมไว้ได้
  • [ ] ดิสก์และ Volume mount ถูกตำแหน่ง
  • [ ] ไฟล์สำคัญครบ และอ่านข้อมูลตัวอย่างได้
  • [ ] ฐานข้อมูลเริ่มทำงานได้และผล query สำคัญถูกต้อง
  • [ ] แอปทำงานครบเส้นทางหลัก เช่น login อ่านข้อมูล และบันทึกข้อมูลในชุดทดสอบ
  • [ ] DNS, TLS, Firewall และการเชื่อมต่อ dependency ถูกต้อง
  • [ ] cron, queue worker, email และ webhook ไม่ทำงานซ้ำกับระบบจริง
  • [ ] เปิดนโยบาย Backup/monitoring ที่ต้องการสำหรับเครื่องใหม่แล้ว
  • [ ] บันทึกเวลากู้คืนจริงและจุดเวลาข้อมูลล่าสุดที่กู้ได้

ตัวอย่างตรวจ service ที่ใช้ systemd:

systemctl --failed
journalctl -b -p err --no-pager

RPO คือช่วงข้อมูลย้อนหลังที่ยอมสูญเสียได้ ส่วน RTO คือเวลาที่ต้องการให้ระบบกลับมาใช้งาน การมี Snapshot ไม่ได้ยืนยันสองค่านี้จนกว่าจะทดลองกู้คืนทั้งแอปและ dependency

#9. ตัวอย่าง doctl สำหรับการสำรอง

ติดตั้ง doctl ตามเอกสารทางการและเข้าสู่บัญชีที่ถูกต้อง เก็บ token ให้ปลอดภัย ตัวอย่างต่อไปนี้ใช้ Bash และตั้งใจให้หยุดหากยังไม่ได้กำหนด ID เพื่อหลีกเลี่ยงการใช้เลขตัวอย่างกับเครื่องจริง

doctl auth init
doctl compute droplet list

# กำหนด ID ที่ตรวจสอบแล้วก่อนรันคำสั่งถัดไป
# export DROPLET_ID=เลข_ID_จริง
: "${DROPLET_ID:?Set the verified Droplet ID first}"

# ปิดเครื่องผ่าน SSH ตามหัวข้อ 4 ก่อน แล้วตรวจสถานะ
doctl compute droplet get "$DROPLET_ID"

# รันเมื่อยืนยันว่าเครื่องปิดแล้ว
doctl compute droplet-action snapshot "$DROPLET_ID" \
  --snapshot-name "training-archive-$(date -u +%Y%m%dT%H%M%SZ)" \
  --wait

doctl compute snapshot list --resource droplet \
  --format ID,Name,Regions,MinDiskSize,Size

--wait รอ action จบ แต่หาก CLI timeout ไม่ได้แปลว่างานฝั่งคลาวด์ถูกยกเลิก ให้ตรวจสถานะก่อนสั่งซ้ำ ชื่อ Snapshot ใช้เวลา UTC ตามอักษร Z เพื่อให้ค้นหาร่วมกับระบบอัตโนมัติได้ง่าย [9][12]

ตัวอย่างสร้างเครื่องกลับจาก Snapshot โดยต้องกำหนดค่าจริงก่อน:

: "${SNAPSHOT_ID:?Set a verified snapshot ID}"
: "${TARGET_REGION:?Set a region where the snapshot is available}"
: "${TARGET_SIZE:?Set a supported size with enough disk}"

doctl compute droplet create restored-lab \
  --image "$SNAPSHOT_ID" \
  --region "$TARGET_REGION" \
  --size "$TARGET_SIZE"

คำสั่งนี้เป็นโครงสร้างขั้นต่ำ ตรวจการเข้าถึง SSH, VPC, Firewall และตัวเลือก deployment ของระบบจริงก่อนใช้งาน ใช้บัญชีและ key ที่ตรวจแล้วในภาพต้นฉบับ และไม่ควรสมมติว่าตัวเลือก SSH key ใหม่จะลบ key เดิมที่ฝังใน Snapshot [6]

#10. ค่าใช้จ่ายและข้อจำกัด

อัตราที่ตรวจสอบวันที่ 29 ตุลาคม 2026: Droplet Snapshot 0.06 USD/GB/เดือน และ Volume Snapshot 0.06 USD/GiB/เดือน มีขั้นต่ำ 0.01 USD ตามเงื่อนไข คิดตามขนาด Snapshot และเอกสารระบุว่าไม่มีค่าบริการเพิ่มสำหรับทำ Snapshot ให้ใช้ได้หลาย region [2]

ตัวอย่างประมาณการสำหรับ Droplet Snapshot ที่มีขนาดคิดเงินจริง 20 GB:

20 × 0.06 = 1.20 USD ต่อเดือน

ตัวอย่างนี้สมมติเก็บเต็มเดือน ไม่รวมภาษี ค่าเครื่องขณะทดสอบ หรือทรัพยากรอื่น ตรวจอัตราปัจจุบันและใบเรียกเก็บเงินก่อนวางงบ

ข้อจำกัดที่ควรรู้:

  • Snapshot เป็น full disk image ไม่ใช่ incremental snapshot [5]
  • Volume Snapshot ย้ายข้าม region หรือโอนไปบัญชี DigitalOcean อื่นไม่ได้ตามข้อจำกัดที่ตรวจสอบ [5]
  • ไม่สามารถดาวน์โหลด DigitalOcean Snapshot/Backup เป็น image file ออกมาโดยตรงได้ ควรมีสำเนาระดับข้อมูลด้วยเครื่องมืออื่นเมื่อต้องการเก็บนอกบัญชีหรือข้ามผู้ให้บริการ [10]
  • Snapshot เก่าอาจมี software และ secrets เก่า ต้องตรวจแพตช์และสิทธิ์เข้าถึงก่อนเปิดใช้ต่อ

#11. แบบฝึกปฏิบัติ

ใช้เครื่องทดลองและข้อมูลจำลอง สร้างไฟล์ archive-proof.txt บน Droplet บันทึก checksum แล้ว Snapshot เครื่อง จากนั้นสร้าง Droplet ใหม่และตรวจว่าไฟล์กับ checksum ตรงกัน พร้อมทดสอบหน้าเว็บหนึ่งหน้า

ถ้ามี Volume ให้สร้างไฟล์ทดสอบอีกชุดบน Volume แล้วพิสูจน์ว่าต้องกู้ Volume แยกจึงจะอ่านข้อมูลชุดนั้นได้ ส่งผลการทดลองเป็นตาราง Snapshot ID, เวลาเริ่มกู้, เวลาที่เว็บพร้อม, ผลตรวจไฟล์ และสิ่งที่ต้องตั้งค่าใหม่

เกณฑ์ผ่าน: ระบบเปิดได้ ข้อมูลตรงกับจุดที่สำรอง และอธิบายได้ว่าเหตุใด Power Off ไม่หยุดค่าเครื่อง เหตุใดเครื่องใหม่ต้องตรวจ IP และเหตุใด Volume ต้องมีชุดสำรองแยก

#เอกสารอ้างอิง

  1. DigitalOcean — Droplet Pricing
  2. DigitalOcean — Snapshots Pricing
  3. DigitalOcean — Backups
  4. DigitalOcean — Create Snapshots of Droplets
  5. DigitalOcean — Snapshots Limits
  6. DigitalOcean — Create or Restore Droplets from Snapshots
  7. DigitalOcean — Snapshots Quickstart
  8. DigitalOcean — Destroy a Droplet
  9. DigitalOcean — doctl compute snapshot list
  10. DigitalOcean — Snapshots Support
  11. DigitalOcean — Create Volumes from Snapshots
  12. DigitalOcean — doctl compute droplet-action snapshot

info-digitalocean-droplets-archive-snapshot