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 จากแอป

