ข้ามไปเนื้อหาหลัก
ประมวลผล· ~7 นาที· อัปเดตล่าสุด

Databases: RDS, DynamoDB และผองเพื่อน

เลือกฐานข้อมูลให้ถูกประเภท — relational, NoSQL, cache และ data warehouse

สี่ร้านในตลาดข้อมูล

RDS คือสมุดบัญชีแยกประเภทที่ทุกแถวอ้างถึงกันได้ (ตาราง + ความสัมพันธ์) · DynamoDB คือตู้ล็อกเกอร์ยักษ์ — รู้หมายเลขก็เปิดได้ทันที ไม่ว่าจะมีล้านตู้ · ElastiCache คือโพสต์อิทแปะหน้าจอไว้ดูของที่ถามกันบ่อย · Redshift คือห้องสมุดวิจัยที่นักวิเคราะห์เข้าไปขุดข้อมูลย้อนหลังสิบปี

จับคู่ประเภทฐานข้อมูลกับบริการ

  • Amazon RDS — managed relational database รองรับ engine ดัง (MySQL, PostgreSQL, MariaDB, SQL Server, Oracle) — AWS จัดการ patch, backup, Multi-AZ ให้
  • Amazon Aurora — relational ของ AWS เอง compatible MySQL/PostgreSQL ประสิทธิภาพและ availability สูงกว่า
  • Amazon DynamoDB — NoSQL key-value แบบ serverless: ไม่มีเครื่องให้จัดการ scale อัตโนมัติ latency มิลลิวินาทีเดียว
  • Amazon ElastiCache — in-memory cache (Redis / Memcached) สำหรับข้อมูลที่อ่านซ้ำบ่อยมาก
  • Amazon Redshift — data warehouse สำหรับ analytics ระดับ petabyte ใช้กับ BI/รายงาน
  • AWS DMS (Database Migration Service) — ย้ายฐานข้อมูลเข้า AWS โดย downtime ต่ำ

สิ่งที่ CLF อยากให้เข้าใจจริงๆ ไม่ใช่รายละเอียดของแต่ละ engine แต่คือแนวคิด "purpose-built database" — AWS ตั้งใจมีฐานข้อมูลหลายแบบให้เลือกตามลักษณะงาน แทนที่จะยัดทุกอย่างลง SQL ตัวเดียว โจทย์จึงมักเล่าลักษณะข้อมูลกับ access pattern แล้ววัดว่าเราจับคู่ถูกไหม

สรุป Key Takeaways

  • RDS/Aurora = relational (SQL) · DynamoDB = NoSQL serverless scale ใหญ่
  • ElastiCache = cache ในหน่วยความจำ ลดโหลด DB · Redshift = data warehouse งานวิเคราะห์
  • ทุกตัวเป็น managed — AWS ดูแล patch/backup ให้ เราออกแบบข้อมูลกับสิทธิ์

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

RDS กับ DynamoDB เลือกยังไง

RDS = ฐานข้อมูลแบบตาราง (SQL) เหมาะกับข้อมูลมีโครงสร้างสัมพันธ์กัน เช่น ระบบบัญชี ระบบสมาชิก · DynamoDB = NoSQL แบบ key-value ที่ serverless เต็มตัว ตอบเร็วระดับมิลลิวินาทีเดียวไม่ว่าข้อมูลจะโตแค่ไหน เหมาะกับ session, ตะกร้าสินค้า, เกม — โจทย์บอก "SQL/joins/transactions" ไป RDS บอก "key-value/serverless/scale มหาศาล" ไป DynamoDB

Aurora คืออะไร ต่างจาก RDS ปกติไหม

ฐานข้อมูล relational ที่ AWS สร้างเอง compatible กับ MySQL/PostgreSQL แต่เร็วกว่าและ scale เก่งกว่า อยู่ภายใต้ร่ม RDS — ระดับ CLF จำว่า "Aurora = RDS พรีเมียมของ AWS เอง" ก็พอ

ElastiCache กับ Redshift ใช้ตอนไหน

ElastiCache = in-memory cache (Redis/Memcached) เอาไว้พักข้อมูลที่ถูกอ่านซ้ำบ่อยให้ตอบไวและลดโหลดฐานข้อมูลหลัก · Redshift = data warehouse สำหรับงานวิเคราะห์ข้อมูลมหาศาล (analytics/BI) ไม่ใช่รับ transaction จากแอป

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