ข้ามไปเนื้อหาหลัก
ฐานข้อมูล· ~18 นาที· อัปเดตล่าสุด

RDS และ Amazon Aurora

ฐานข้อมูลเชิงสัมพันธ์ที่มีคนดูแลและรุ่นความเร็วแสง

พนักงานจัดแฟ้มตารางเอกสาร

RDS (ฐานข้อมูล Relational แบบดั้งเดิม) เหมือนแฟ้มเอกสารที่มีตารางชัดเจน ข้อมูลเชื่อมโยงกันได้. สมัยก่อนตั้งเองบน EC2 เหมือนคุณต้องสร้างตู้เอกสาร ประกอบตู้เอง และจ้างยามเฝ้าเอง แต่พอเป็น RDS AWS คือคนจัดการตู้/ซ่อม/อัปเดตระบบให้ คุณโฟกัสแค่การหยิบเอกสาร ส่วน Aurora คือตู้รุ่นซูเปอร์พรีเมียมที่ AWS ปรับแต่งสปริงและลิ้นชักจนทำให้ดึงเอกสารเร็วกว่าตู้ดั้งเดิม (MySQL/PostgreSQL) ถึง 5 เท่า!

RDS (Relational Database Service) คือบริการฐานข้อมูลชนิดที่มีความสัมพันธ์กัน (โครงสร้างแบบ SQL เป็นตารางคอลัมน์-แถวเป๊ะๆ) ซึ่งถ้าเอาไปตั้งเองบน EC2 คุณต้องนั่งอัปเดต OS ซ่อมฐานข้อมูลตอนพัง แต่บริการ RDS เป็นบริการแบบ "Managed" — AWS จะมาดูแลเรื่องสำรองข้อมูล, ติดตั้งแพตช์ (Patch), อัปเกรดเวอร์ชันซอฟต์แวร์ให้

  • มีตัวเครื่องยนต์ตระกูลดั้งเดิมให้เลือก 6 เจ้า: MySQL, PostgreSQL, MariaDB, Oracle, SQL Server และน้องใหม่ดาวรุ่งอย่าง Amazon Aurora
  • Multi-AZ (เพื่อความทนทานแบบ High Availability): RDS มีฟีเจอร์ Multi-AZ โดยมันจะปั๊มข้อมูลลง "เครื่องสำรอง" (Standby) ในโซน (AZ) ที่สองแบบอัตโนมัติ (ซิงก์กันระดับเสี้ยววิ) ถ้าเครื่องหลัก (Primary) ดับหรือไฟไหม้ ระบบจะสลับเส้นทางไปเครื่อง Standby ให้พริบตาเดียวโดยเราไม่ต้องเข้าไปเปลี่ยนการตั้งค่าโค้ดแอปเลย
  • Read Replica (เพื่อความเร็วและแบ่งโหลดการอ่าน): เป็นเครื่องสำเนาแบบที่ "ใช้อ่านอย่างเดียว" มีกี่เครื่องก็ได้ (ใช้แก้ปัญหาเวลาคนอ่านข้อมูล/ค้นหาหนักๆ จนเครื่องหลักค้าง) แต่ไม่สามารถทำเป็นเครื่อง Standby กรณีดับฉุกเฉินแบบอัตโนมัติ

สรุป Key Takeaways

  • RDS = Managed SQL database จัดการ patch/backup ให้
  • Multi-AZ มีไว้เพื่อ HA (failover อัตโนมัติเมื่อเครื่องหลักล่ม)
  • Read Replica มีไว้เพื่อสเกลงานอ่าน (ลดโหลดเครื่องหลัก)
  • Aurora = เร็วและทนกว่า RDS ปกติ (เก็บข้อมูล 6 ชุด กระจาย 3 AZ)

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

Multi-AZ กับ Read Replica ต่างกันยังไง สรุปสั้นที่สุด

Multi-AZ = เพื่อความอยู่รอด (HA) — เครื่องสำรอง sync แบบ synchronous ใช้งานอ่านเขียนไม่ได้ รอ failover อย่างเดียว ส่วน Read Replica = เพื่อความเร็ว — สำเนา async ที่แอปต่อเข้าไปอ่านได้จริง แบ่งโหลดการอ่านออกจากเครื่องหลัก ข้อสอบวัดคู่นี้บ่อยที่สุดในหมวดฐานข้อมูล

Read Replica โปรโมทเป็นเครื่องหลักได้ไหม

ได้ แต่ต้องสั่งเอง (manual promotion) และมีโอกาสเสียข้อมูลล่าสุดเพราะ replicate แบบ async — ต่างจาก Multi-AZ ที่ failover ให้อัตโนมัติและไม่เสียข้อมูล ถ้าโจทย์ต้องการ DR ข้าม region ราคาประหยัด คำตอบมักเป็น cross-region read replica แล้วค่อยโปรโมทเมื่อเกิดเหตุ

Aurora Serverless คืออะไร เหมาะกับงานแบบไหน

เป็น Aurora ที่ปรับกำลัง (ACU) ขึ้นลงเองตามโหลดและคิดเงินตามที่ใช้จริง เหมาะกับงานที่โหลดไม่สม่ำเสมอหรือเดายาก เช่น ระบบภายในที่ใช้เฉพาะเวลางาน, dev/test, แอปเปิดตัวใหม่ที่ยังไม่รู้ traffic — คีย์เวิร์ดข้อสอบคือ intermittent / unpredictable workload

RDS Proxy เอาไว้แก้ปัญหาอะไร

แก้ปัญหา connection ท่วมฐานข้อมูล — โดยเฉพาะแอป serverless อย่าง Lambda ที่เปิด connection ใหม่พร้อมกันจำนวนมาก RDS Proxy ทำ connection pooling ไว้ตรงกลาง ลดภาระเครื่องฐานข้อมูล และยังช่วยให้ failover เร็วขึ้นด้วย

ลองทำ Quiz ท้ายบท

คำถามแนวข้อสอบของโมดูลนี้ 5 ข้อ · เฉลยทันที

อ่านจบแล้วอย่าลืมทำเครื่องหมาย