ไม่มีใครรับประกันได้ว่าเว็บไซต์ WordPress จะไม่มีวันล่ม ไม่ว่าจะเป็น Server เสียหาย ถูกโจมตี หรือข้อมูลเสียหายจากการอัปเดตผิดพลาด Disaster Recovery Plan (DRP) คือแผนการรับมือเหตุฉุกเฉินที่จะช่วยให้คุณกู้คืนเว็บไซต์ได้อย่างรวดเร็วและมีระบบ บทความนี้จะแนะนำวิธีวางแผน DRP สำหรับ WordPress บน Cloud VPS ของ de.co.th
Disaster Recovery Plan คืออะไร?
Disaster Recovery Plan หรือ DRP คือแผนงานที่ระบุขั้นตอนและวิธีการในการกู้คืนระบบให้กลับมาทำงานได้ในเวลาที่กำหนด โดยครอบคลุมทั้งเรื่องของการสำรองข้อมูล การกู้คืนระบบ และการสื่อสารกับทีมที่เกี่ยวข้อง สำหรับเว็บไซต์ธุรกิจที่ทำรายได้ผ่านออนไลน์ DRP คือสิ่งจำเป็นที่ขาดไม่ได้
องค์ประกอบหลักของ DRP สำหรับ WordPress
1. Risk Assessment (ประเมินความเสี่ยง)
ระบุความเสี่ยงทั้งหมดที่อาจเกิดขึ้นกับเว็บไซต์ของคุณ ได้แก่ Server ล่มหรือ Hardware เสียหาย การถูกโจมตีหรือ Malware การอัปเดต WordPress Theme หรือ Plugin ที่ทำให้เว็บพัง ฐานข้อมูลเสียหายจาก Bug หรือ Human Error ภัยธรรมชาติหรือ Data Center มีปัญหา และ DDoS Attack ที่ทำให้ Server ล่ม การระบุความเสี่ยงช่วยให้คุณวางแผนรับมือได้ครบถ้วน
2. RTO และ RPO
Recovery Time Objective (RTO) คือเวลาสูงสุดที่ระบบสามารถหยุดทำงานได้ เช่น เว็บไซต์ต้องกลับมาออนไลน์ภายใน 1 ชั่วโมง Recovery Point Objective (RPO) คือปริมาณข้อมูลที่ยอมรับได้ว่าจะสูญเสีย เช่น RPO 24 ชั่วโมง หมายความว่าสูญเสียข้อมูลได้ไม่เกิน 24 ชั่วโมง ค่าทั้งสองนี้จะกำหนดว่าคุณต้อง Backup บ่อยแค่ไหนและต้องกู้คืนได้เร็วแค่ไหน
3. Backup Strategy
กำหนดแผนการสำรองข้อมูลตามหลัก 3-2-1 Rule คือมี Backup อย่างน้อย 3 ชุด เก็บไว้บน Storage อย่างน้อย 2 ประเภท และเก็บไว้นอกสถานที่อย่างน้อย 1 แห่ง ตัวอย่างเช่น Backup รายวันเก็บบน Server และ Remote Storage (S3) Backup รายสัปดาห์เก็บบน Remote Storage และ External Drive และ Backup รายเดือนเก็บไว้บน Cloud Storage อื่น
4. Recovery Procedure
เขียนขั้นตอนการกู้คืนอย่างละเอียด เพื่อให้ทุกคนในทีมสามารถทำตามได้ ขั้นตอนควรระบุชัดเจนตั้งแต่การระบุปัญหา การแจ้งทีมงาน การเลือก Backup ที่เหมาะสม การ Restore การตรวจสอบระบบ และการแจ้งผู้ที่เกี่ยวข้อง
5. Communication Plan
กำหนดว่าต้องแจ้งใครบ้างเมื่อเกิดเหตุ รวมถึงทีมเทคนิค ผู้บริหาร และลูกค้า เตรียม Status Page ไว้สำหรับแจ้งสถานะเว็บไซต์ให้ลูกค้าทราบ
ตัวอย่าง DRP สำหรับ WordPress บน Cloud VPS
Scenario 1: Server ล่มทั้งระบบ
เมื่อ Server ล่มทั้งระบบและไม่สามารถกู้คืนได้ แผนการคือสร้าง Cloud VPS ใหม่จาก de.co.th ติดตั้ง Plesk Control Panel กู้คืนจาก Remote Backup ที่เก็บไว้ก่อนหน้า ชี้ DNS ไปที่ IP ใหม่ ตรวจสอบและทดสอบเว็บไซต์
Scenario 2: เว็บไซต์ถูกแฮก
หากเว็บไซต์ถูกแฮกหรือติด Malware แผนการคือ แยกเว็บไซต์ออกจากอินเทอร์เน็ตทันที สแกนไฟล์ทั้งหมดด้วย Malware Scanner ระบุว่า Backup ใดยังสะอาด (ก่อนถูกแฮก) Restore จาก Backup ที่สะอาด อัปเดต WordPress Plugin และ Theme ทั้งหมดทันที เปลี่ยนรหัสผ่านทั้งหมด และเพิ่ม Security Plugin เช่น Wordfence
Scenario 3: ฐานข้อมูลเสียหาย
เมื่อฐานข้อมูลเสียหายจากการลบข้อมูลโดยไม่ตั้งใจ แผนการคือกู้คืนเฉพาะฐานข้อมูลผ่าน Plesk Backup หรือ phpMyAdmin Import ไฟล์ SQL ที่สำรองไว้ ตรวจสอบว่า wp-config.php ชี้ไปที่ฐานข้อมูลที่ถูกต้อง
เขียน DRP Document
DRP ที่ดีควรเขียนเป็นเอกสารที่เข้าถึงได้ง่ายและทีมทุกคนทำตามได้ ควรระบุสิ่งต่อไปนี้ในเอกสาร
# Disaster Recovery Plan - WordPress on Cloud VPS
## ข้อมูลทั่วไป
- ชื่อเว็บไซต์: example.com
- Server IP: xxx.xxx.xxx.xxx
- Hosting Provider: de.co.th Cloud VPS
- Control Panel: Plesk
- WordPress Version: x.x.x
## ผู้รับผิดชอบ
- Primary: [ชื่อ] - [เบอร์โทร] - [อีเมล]
- Secondary: [ชื่อ] - [เบอร์โทร] - [อีเมล]
## RTO / RPO
- RTO: 1 ชั่วโมง
- RPO: 24 ชั่วโมง
## Backup Locations
1. Local: /var/lib/psa/dumps/
2. Remote: S3 bucket - [bucket-name]
3. Monthly: External storage - [location]
## Recovery Steps
[ระบุขั้นตอนตาม Scenario]
การทดสอบ DRP (DR Drill)
มี DRP อย่างเดียวไม่พอ ต้องซ้อมทดสอบเป็นประจำด้วย ควรทำ DR Drill อย่างน้อยทุก 3 เดือน โดยใช้ Staging Environment เพื่อทดสอบการกู้คืนโดยไม่กระทบเว็บไซต์จริง ขั้นตอนการทดสอบคือ สร้าง Cloud VPS ใหม่สำหรับทดสอบ ทำการ Restore จาก Backup ล่าสุด ตรวจสอบเว็บไซต์ว่าทำงานปกติ จับเวลาที่ใช้ในแต่ละขั้นตอน และบันทึกผลเพื่อปรับปรุงแผน
เครื่องมือที่ช่วยในการทำ DRP
เครื่องมือหลายตัวช่วยให้การทำ DRP มีประสิทธิภาพมากขึ้น ได้แก่ Plesk Backup & Restore สำหรับการสำรองและกู้คืนอัตโนมัติ UptimeRobot หรือ Uptime Kuma สำหรับการมอนิเตอร์เว็บไซต์และแจ้งเตือนเมื่อล่ม Statuspage.io หรือ Cachet สำหรับสร้าง Status Page แจ้งสถานะเว็บไซต์ และ WP-CLI สำหรับการจัดการ WordPress ผ่าน Command Line อย่างรวดเร็ว
Automation Script สำหรับ DR
สามารถเขียน Script อัตโนมัติเพื่อช่วยในการกู้คืนแบบอัตโนมัติ ตัวอย่าง Script ที่ตรวจสอบเว็บไซต์และแจ้งเตือน
#!/bin/bash
# WordPress Health Check & Alert Script
SITE_URL="https://example.com"
ALERT_EMAIL="[email protected]"
# ตรวจสอบสถานะเว็บไซต์
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" $SITE_URL)
if [ "$HTTP_STATUS" != "200" ]; then
echo "ALERT: Website returned HTTP $HTTP_STATUS" | \
mail -s "DR Alert: Website Down" $ALERT_EMAIL
# บันทึก Log
echo "$(date): HTTP $HTTP_STATUS - Alert sent" >> /var/log/dr-check.log
fi
# ตรวจสอบพื้นที่ดิสก์
DISK_USAGE=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')
if [ "$DISK_USAGE" -gt 90 ]; then
echo "ALERT: Disk usage at ${DISK_USAGE}%" | \
mail -s "DR Alert: High Disk Usage" $ALERT_EMAIL
fi
# ตรวจสอบว่า Backup ล่าสุดยังใหม่อยู่
LAST_BACKUP=$(find /var/lib/psa/dumps/ -name "*.xml" -mtime -1 | wc -l)
if [ "$LAST_BACKUP" -eq 0 ]; then
echo "ALERT: No backup found in last 24 hours" | \
mail -s "DR Alert: Backup Missing" $ALERT_EMAIL
fi
สรุป
Disaster Recovery Plan เป็นสิ่งที่ทุกเว็บไซต์ WordPress ควรมี โดยเฉพาะอย่างยิ่งสำหรับเว็บไซต์ธุรกิจที่ทำรายได้ผ่านออนไลน์ Cloud VPS ของ de.co.th พร้อม Plesk Control Panel มีเครื่องมือครบครันในการสำรองและกู้คืนข้อมูล สิ่งสำคัญที่สุดคืออย่าเพิ่งเขียนแผนและเก็บไว้ แต่ต้องซ้อมทดสอบอย่างสม่ำเสมอ เพราะแผนที่ไม่ได้ทดสอบก็เหมือนไม่มีแผนเลย

