RTO และ RPO: ตั้งเป้ากู้ระบบให้ไอทีกับธุรกิจเห็นตรงกัน

ตั้ง RTO และ RPO ของแต่ละระบบร่วมกับเจ้าของธุรกิจ เลือกวิธีสำรองและกู้คืนให้ทำได้ตามเป้า วัดเวลากู้จริง เขียน Runbook และทดสอบแผนกู้ระบบตามรอบ

โดย ทีมงาน THAI DATA CLOUD อ่าน 11 นาที

แชร์FacebookXLINELinkedIn
RTO — RTO และ RPO: ตั้งเป้ากู้ระบบให้ไอทีกับธุรกิจเห็นตรงกัน
RTO และ RPO: ตั้งเป้ากู้ระบบให้ไอทีกับธุรกิจเห็นตรงกัน

คำตอบสั้น ๆ: ตั้ง RTO และ RPO ของแต่ละระบบร่วมกับเจ้าของธุรกิจ เลือกวิธีสำรองและกู้คืนให้ทำได้ตามเป้า วัดเวลากู้จริง เขียน Runbook และทดสอบแผนกู้ระบบตามรอบ

คู่มือนี้อธิบาย RTO ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย

RTO (Recovery Time Objective) คือเวลานานที่สุดที่ระบบหนึ่งหยุดได้ตั้งแต่เกิดเหตุจนกลับมาให้บริการ ส่วน RPO (Recovery Point Objective) คือช่วงข้อมูลย้อนหลังที่ยอมเสียได้ นับจากจุดสำรองล่าสุดถึงเวลาที่เกิดเหตุ ถ้าตั้ง RTO 4 ชั่วโมงและ RPO 1 ชั่วโมง แปลว่าระบบต้องกลับมาภายใน 4 ชั่วโมง และข้อมูลที่หายต้องไม่เกิน 1 ชั่วโมงสุดท้าย สองตัวเลขนี้คือสิ่งที่ฝ่ายไอทีและฝ่ายธุรกิจต้องตกลงร่วมกันก่อนเกิดเหตุ ไม่ใช่ตอนเซิร์ฟเวอร์ล่มแล้ว

คู่มือนี้เหมาะกับผู้ดูแลระบบและผู้จัดการที่ต้องเขียนแผนกู้ระบบ (Disaster Recovery Plan) ให้เซิร์ฟเวอร์ขององค์กร เมื่อทำครบ คุณจะมีตาราง RTO และ RPO ของทุกระบบที่เจ้าของระบบลงชื่อรับรู้ วิธีสำรองข้อมูลที่ทำได้ตามเป้า ตัวเลขเวลากู้คืนที่วัดจริง Runbook ที่คนอื่นหยิบไปทำตามได้ และตารางทดสอบที่ทำให้ตัวเลขทั้งหมดยังเป็นจริงอยู่

สิ่งที่ต้องเตรียม

  • รายชื่อระบบและเซิร์ฟเวอร์ทั้งหมด พร้อมเจ้าของระบบฝั่งธุรกิจที่มีอำนาจตัดสินใจ เช่น ผู้จัดการฝ่ายขายสำหรับระบบร้านค้าออนไลน์
  • วิธีสำรองข้อมูลที่ใช้อยู่ตอนนี้ของแต่ละระบบ ความถี่ ที่เก็บ และขนาดข้อมูล ถ้ายังไม่เป็นระบบ ให้ทำตาม คู่มือวาง Backup Plan ตามกฎ 3-2-1 ควบคู่กัน
  • ประวัติเหตุขัดข้องที่ผ่านมา เช่น เคยล่มกี่ครั้ง นานเท่าไร และเสียหายอะไร ช่วยให้คุยเรื่องตัวเลขได้จากเหตุจริง
  • เซิร์ฟเวอร์ทดสอบหนึ่งเครื่องสำหรับวัดเวลากู้คืนในขั้นตอนที่ 4
  • เวลาประชุมกับเจ้าของระบบอย่างน้อยหนึ่งชั่วโมงต่อกลุ่มระบบ
เส้นเวลาจาก Dump ล่าสุด เหตุขัดข้อง การตัดสินใจ การกู้ระบบ จนเปิดใช้งานอีกครั้งภายใน RTO 4 ชั่วโมงและ RPO 1 ชั่วโมง
ข้อมูลหลัง Dump ล่าสุดคือส่วนที่เสี่ยงหาย ส่วน RTO นับรวมทุกช่วงจนผู้ใช้กลับมาใช้ได้

ขั้นตอนที่ 1: ประเมินผลกระทบเมื่อแต่ละระบบหยุด

ก่อนตั้ง RTO ให้ถามเจ้าของระบบทีละระบบว่า ถ้าระบบนี้หยุด 1 ชั่วโมง 4 ชั่วโมง 1 วัน และ 3 วัน จะเกิดอะไรขึ้น คำตอบที่ต้องการคือผลกระทบที่จับต้องได้ เช่น รับออเดอร์ไม่ได้ ออกใบกำกับภาษีไม่ทัน พนักงานคลังสินค้าทำงานไม่ได้ หรือผิดสัญญาให้บริการกับลูกค้า

แนวทางของ NIST SP 800-34 (Contingency Planning Guide for Federal Information Systems) เรียกขั้นนี้ว่า Business Impact Analysis และกำหนดคำว่า Maximum Tolerable Downtime (MTD) คือเวลาหยุดสูงสุดที่ธุรกิจทนได้ก่อนเสียหายร้ายแรง RTO ของระบบต้องสั้นกว่า MTD เสมอ เพราะหลังระบบกลับมาแล้วยังต้องมีเวลาตรวจข้อมูลและตามงานที่ค้าง

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

ขั้นตอนที่ 2: ตั้งค่า RTO และ RPO ของแต่ละระบบ

จัดระบบเป็นกลุ่มตามผลกระทบ แล้วตั้ง RTO และ RPO ต่อกลุ่ม ตัวเลขในตารางด้านล่างเป็นตัวอย่างของบริษัทขนาดกลาง แต่ละองค์กรต้องตั้งเองจากผลในขั้นตอนที่ 1

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

บันทึกตารางนี้ในเอกสารที่เจ้าของระบบรับทราบ ระบุด้วยว่าตัวเลขใช้กับเหตุแบบใด เช่น เซิร์ฟเวอร์เสียหนึ่งเครื่อง ข้อมูลถูกลบหรือถูกเข้ารหัส หรือศูนย์ข้อมูลทั้งศูนย์ใช้ไม่ได้ เพราะ RTO ของสองกรณีแรกมักสั้นกว่ากรณีหลังมาก ถ้าเจ้าของระบบขอ RTO 15 นาทีแต่ไม่ยอมรับค่าใช้จ่ายของเครื่องสำรองที่เปิดรอ ให้บันทึกตัวเลขที่ทำได้จริงพร้อมเหตุผล ดีกว่าเขียนตัวเลขที่ไม่มีใครทำได้

ขั้นตอนที่ 3: เลือกวิธีสำรองและกู้คืนให้ทำได้ตามเป้า

RPO กำหนดความถี่ของการสำรอง

  • RPO 24 ชั่วโมง: สำรองวันละครั้งตอนกลางคืนเพียงพอ
  • RPO 1 ชั่วโมง: Dump ฐานข้อมูลทุกชั่วโมง หรือสำรองรายวันคู่กับเก็บ Binary Log แล้วกู้ย้อนถึงเวลาที่ต้องการตาม คู่มือกู้ MySQL ย้อนเวลาด้วย Binary Log
  • RPO ไม่กี่นาที: ต้องมีสำเนาที่ซิงก์ต่อเนื่อง เช่น MySQL Replication ไปยังเครื่องอีกศูนย์ข้อมูล ร่วมกับ Backup ปกติ เพราะ Replica ไม่กันการลบผิด

RTO กำหนดรูปแบบการกู้คืน

  • RTO หลายวัน: สร้างเครื่องใหม่แล้วกู้จาก Backup นอกสถานที่
  • RTO ไม่กี่ชั่วโมง: เตรียม Image หรือสคริปต์ติดตั้งเครื่องไว้ล่วงหน้า สำรองไว้ใกล้ที่จะกู้ และซ้อมจนรู้เวลาจริง
  • RTO ต่ำกว่าหนึ่งชั่วโมง: ต้องมีเครื่องสำรองที่เปิดรอ (DR site) มีข้อมูลล่าสุด และมีขั้นตอนสลับที่ทดสอบแล้ว

RTO คือผลรวมของหลายช่วง ไม่ใช่แค่เวลาคัดลอกข้อมูล ให้แยกเวลาออกเป็น ตรวจพบเหตุ ตัดสินใจกู้ เตรียมเครื่อง กู้ข้อมูล ตรวจความถูกต้อง และสลับผู้ใช้มาที่ระบบใหม่ ช่วงสุดท้ายรวมเวลาที่ DNS ใช้กระจายค่าใหม่ ถ้า TTL ของระเบียนเป็น 3600 วินาที ผู้ใช้บางส่วนอาจยังวิ่งไป IP เดิมได้นานถึงหนึ่งชั่วโมง วิธีวางค่า TTL ดูใน คู่มือ TTL และการย้าย DNS

ขั้นตอนที่ 4: วัดเวลากู้คืนจริงแล้วเทียบกับ RTO

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

time restic restore latest --target /srv/restore-test
mysql -e "CREATE DATABASE shop_restore"
time sh -c 'gunzip < /srv/restore-test/var/backups/mysql/shop.sql.gz | mysql shop_restore'
ผลคำสั่ง time ขณะกู้ไฟล์ด้วย restic และนำเข้าฐานข้อมูล MariaDB บนเครื่องทดสอบ เพื่อวัดเวลาจริงเทียบกับ RTO
ค่า real คือเวลาที่ผ่านไปจริง นำไปบวกเวลาเตรียมเครื่องและตรวจรับก่อนเทียบกับ RTO

ใช้ค่า real ซึ่งเป็นเวลาที่ผ่านไปจริง นำมาบวกกับเวลาช่วงอื่นที่ไม่ใช่การคัดลอก เช่น สร้างเครื่องใหม่ ติดตั้งแอป และตรวจข้อมูล ถ้าผลรวมเกิน RTO มีทางเลือกสามทาง คือเปลี่ยนวิธีกู้ให้เร็วขึ้น (เช่น เตรียมเครื่องสำรองไว้ก่อน) ลดขนาดข้อมูลที่ต้องกู้ก่อนเปิดบริการ (กู้ข้อมูลปีปัจจุบันก่อน ข้อมูลเก่าตามมาทีหลัง) หรือเจรจาเป้า RTO ใหม่กับเจ้าของระบบ

ขั้นตอนที่ 5: เขียน Runbook การกู้ระบบ

Runbook คือคู่มือทีละขั้นที่ใช้ตอนเกิดเหตุ เขียนให้คนที่ไม่ได้สร้างระบบอ่านแล้วกู้ได้ภายใน RTO หนึ่งระบบหนึ่งเอกสาร เก็บสำเนาไว้นอกระบบที่จะกู้ เช่น พิมพ์ไว้หรือเก็บใน Drive ขององค์กร เพราะถ้าเก็บไว้บนเซิร์ฟเวอร์ที่ล่ม จะเปิดอ่านไม่ได้ในวันที่ต้องใช้

  1. เงื่อนไขประกาศเหตุ: ใครมีอำนาจตัดสินใจเริ่มกู้ และรอได้นานเท่าไรก่อนตัดสินใจ
  2. รายชื่อติดต่อ: ผู้ดูแล ผู้สำรอง เจ้าของระบบ และช่องทางแจ้งผู้ให้บริการคลาวด์ เช่น การเปิด Ticket บน TDC Enterprise
  3. ที่อยู่ของ Backup และรหัสที่ต้องใช้: ระบุว่ารหัสอยู่ใน Password Manager ใด ห้ามเขียนรหัสลงใน Runbook
  4. คำสั่งกู้ทีละขั้น: คัดลอกจากการซ้อมในขั้นตอนที่ 4 พร้อมผลลัพธ์ที่ควรเห็น
  5. การตรวจรับ: รายการที่เจ้าของระบบต้องตรวจก่อนประกาศว่าระบบกลับมาแล้ว เช่น ยอดออเดอร์ล่าสุดตรงกับที่คาด
  6. การสื่อสาร: ข้อความแจ้งผู้ใช้และลูกค้าช่วงหยุดและเมื่อกลับมา

ขั้นตอนที่ 6: ทดสอบและทบทวน RTO กับ RPO ตามรอบ

แผนที่ไม่ได้ทดสอบมักพังในจุดเล็ก ๆ เช่น รหัสเข้ารหัส Backup หาไม่เจอ หรือสคริปต์อ้างถึงเครื่องที่ถูกปลดไปแล้ว ให้ทดสอบสองแบบ

  • Tabletop ทุกไตรมาส: นั่งไล่ Runbook กับทีมตามสถานการณ์สมมติ เช่น “ฐานข้อมูลถูกเข้ารหัสตอน 10 โมงวันจันทร์” หาจุดที่ขั้นตอนไม่ชัด
  • กู้จริงอย่างน้อยปีละครั้ง: กู้ระบบกลุ่มแรกขึ้นเครื่องทดสอบตาม Runbook จับเวลาเทียบกับ RTO และตรวจว่าข้อมูลล่าสุดที่ได้อยู่ภายใน RPO

หลังทดสอบ บันทึกค่า RTO และ RPO ที่ทำได้จริงคู่กับค่าเป้าหมาย ถ้าทำไม่ได้ตามเป้า ให้ระบุสิ่งที่ต้องแก้และวันที่จะทดสอบซ้ำ และทบทวนตารางทั้งหมดทุกครั้งที่มีระบบใหม่ ย้ายเซิร์ฟเวอร์ หรือข้อมูลโตจนเวลากู้เปลี่ยน

เช็กลิสต์หลังทดสอบแผนกู้ระบบ ตรวจว่าเวลากู้จริงอยู่ใน RTO ข้อมูลอยู่ใน RPO และ Runbook ใช้ได้เมื่อเซิร์ฟเวอร์ล่ม
ข้อสีแดงทำให้ตัวเลข RTO บนกระดาษใช้ไม่ได้ในวันจริง ต้องแก้ก่อนทดสอบรอบถัดไป

ปัญหาที่พบบ่อยเกี่ยวกับ RTO และ RPO

RTO กับ RPO ต่างกันอย่างไรแบบสั้นที่สุด?

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

ตั้ง RTO เป็นศูนย์ได้ไหม?

ในทางปฏิบัติไม่มีระบบใดที่ RTO เป็นศูนย์จริง ระบบที่หยุดแทบไม่ได้ต้องออกแบบให้ทำงานพร้อมกันหลายเครื่องหลายศูนย์ข้อมูล ซึ่งเป็นงานออกแบบสถาปัตยกรรม ไม่ใช่การสำรองข้อมูล ค่าใช้จ่ายสูงขึ้นมากตามเป้าที่สั้นลง จึงควรใช้เฉพาะระบบที่จำเป็นจริง

มี Backup ทุกคืนอยู่แล้ว ถือว่ามี RPO 24 ชั่วโมงใช่หรือไม่?

ใช่เฉพาะเมื่อ Backup ทุกคืนสำเร็จและกู้ได้ ถ้างานสำรองล้มเหลวไปสามคืนโดยไม่มีใครรู้ RPO จริงจะกลายเป็นสามวัน จึงควรตั้งการแจ้งเตือนเมื่องานสำรองไม่ทำงานตามเวลา และซ้อมกู้ตามขั้นตอนที่ 6

RTO ควรนับเริ่มจากตอนเกิดเหตุหรือตอนที่รู้ว่าเกิดเหตุ?

นับจากตอนเกิดเหตุ เพราะผู้ใช้เดือดร้อนตั้งแต่ตอนนั้น เวลาที่ใช้กว่าจะรู้ตัวจึงเป็นส่วนหนึ่งของ RTO การมีระบบเฝ้าระวังและแจ้งเตือนที่ดีช่วยลดช่วงนี้ได้มาก

ถ้าต้องการให้ทีมช่วยประเมิน RTO และ RPO ออกแบบที่เก็บข้อมูลสำรองหรือเครื่องสำรองในอีกศูนย์ข้อมูล ติดต่อทีมงาน THAI DATA CLOUD หรือดูรายละเอียดบริการ Disaster Recovery (DR) and Backup

อ่านเพิ่มเติมเกี่ยวกับ RTO

แชร์FacebookXLINELinkedIn

มีคำถามเรื่องบริการ? ติดต่อทีมงาน