
AWS Summit Bangkok 2025: เพิ่มประสิทธิภาพและลดต้นทุนสำหรับภาระงานด้าน Database พร้อม Use Case จาก Bitkub Exchange
สวัสดีค่ะผู้อ่าน DevelopersIO ทุกคน เฟินจาก Classmethod Thailand ค่ะ
วันนี้จะมาแชร์ข้อมูลจากเซสชั่นที่ได้เข้าร่วมฟังมาเมื่อวันที่ 29 เมษายนที่งาน AWS Summit Bangkok 2025 ที่ผ่านมาค่า
“Boost performance and reduce costs for your database workloads” หรือภาษาไทยก็คือ “เพิ่มประสิทธิภาพและลดต้นทุนสำหรับภาระงานด้าน Database”
ในเซสชั่นนี้หลักๆจะพูดถึง Amazon RDS Aurora นะคะ ซึ่งเป็น Managed Service Database ที่ทาง AWS ได้พัฒนามาให้มีประสิทธิภาพเทียบเท่ากับ Commercial Database ที่ใช้กันในท้องตลาดเลย
ทำไมเราต้องใช้ Amazon RDS?
1.Easy to administer
จากที่เมื่อก่อนการที่เราจะมีดาต้าเบสได้ต้องเตรียมนู่นเตรียมนี่คุยกับ Security ต่างๆเยอะมาก AWS ออกตัว RDS Managed Service เพียงแค่ผู้ใช้งานกดคลิ๊กก็สร้าง Managed Database ได้เลย ทำให้บริการนี้ลดภาระงานจุกจิกไปได้เยอะและฝั่งงานของผู้ใช้งานก็เหลือแค่ Core งานสำคัญๆ เช่น จะ integrated แอปเข้ากับดาต้าเบสยังไง เป็นต้น
2.Secure and compliant
เรื่องนี้เป็นสิ่งที่ AWS เน้นย้ำมาตั้งแต่ Day 0 ตัว RDS ที่เราสร้างจะอยู่ภายใต้ AWS Environment ตราบใดที่เราจัดการอย่างเป็นระบบและไม่อนุญาตให้ใครเข้ามาใน VPC ของเราก็จะไม่มีสามารถแอคเซสดาต้าเบสของเราได้ และในส่วนของ compliant สามารถกางตัว AWS Artifact มาเทียบกับมาตรฐานที่ต้องไป Comply ได้เลย
3.Available and durable
ข้อมูลที่เราจัดเก็บใน RDS จะถูกเก็บมากกว่า 1 ก๊อปปี้ หากมีตัวใดตัวหนึ่งตาย AWS สามารถไปดึงจาก DC อื่นมาได้
4.Performant and scalable
RDS สามารถปรับสเกลให้เหมาะกับการใช้งานในแต่ละช่วงเวลาได้โดยส่งผลกับแอปพลิเคชันน้อยที่สุด
AWS RDS Cost
ในความเป็นจริงก็ต้องยอมรับว่า Cost ของการใช้งาน RDS ค่อนข้างจะพอสมควร
เราจะมาดู Cost Dimensions กันว่า Factor ค่าใช้งาน RDS มาจากอะไรบ้าง
AWS RDS Cost dimensions
แบ่งเลเยอร์ได้ตามนี้ค่ะ
Every DB cluster : Cost ที่เลี่ยงไม่ได้เลยของการใช้งาน RDS คือ Compute และ Storage
Most DB clusters : ทุกที่ควรจะใช้กันปกติ
Use case or feature dependent : ตรงนี้จะขึ้นอยู่กับการ Add-on ของแต่ละการใช้งาน
Key Amazon Aurora cost dimensions
เจาะลึก Key หลักๆที่ทำให้เกิดค่าใช้จ่าย
Compute
AWS ต้องการให้ยูสเซอร์สามารถใช้งานได้อย่าง flexible จึงมี compute สำหรับบริการ RDS ให้ผู้ใช้งานเลือกใช้งานได้หลายประเภทเหมือนที่ให้บริการใน EC2 เพราะฉะนั้นเราควรเลือก instance class ให้เหมาะสมกับการใช้งาน
โดย RDS มีเครื่องมือที่ใช้งานได้ฟรี คือ Performance Insights ที่จะช่วยให้เราประเมินการใช้งาน RDS ของเราได้ว่าขนาดที่เราใช้อยู่เหมาะหรือไม่ และอีกเครื่องมือนึงที่เราสามารถใช้ได้ฟรีอีกตัวคือ Cost Optimizer
นอกจากนี้หากเราใช้งาน Aurora เราสามารถใช้ Read Replica เผื่อไม่ให้ query มารบกวนกับตัว Instance หลัก
Storage
ทุกครั้งที่เราเก็บข้อมูล Aurora จะส่งไปเก็บทุก AZ หากเราใช้งาน Aurora เราแทบไม่ต้องประเมินขนาดล่วงหน้าเพราะ Aurora คิดเงินตามการใช้งานจริงและมี Aurora I/O Optimized ที่ไม่มีการชาร์จค่า I/O สามารถตั้งค่า On/Off โดยไม่มี impact กับการใช้งาน ส่วนใหญ่ว่ากันว่าลด Cost ไปได้ราวๆ 40%
Backup
มีให้เลือกทั้ง Retention อัตโนมัติหรือ Manual Snapshot เองได้
เพื่อลด Cost ได้มากขึ้นเราสามารถ Export ดาต้าไปอยู่ที่อื่นได้ หรือลด Retention period หรือ ไซส์
Amazon Aurora Global Database
ในกรณีที่เรามีการใช้งานมากกว่า 1 รีเจี้ยน ทาง AWS แนะนำให้เลือกใช้งาน Amazon Aurora Global Database ที่สามารถซิงค์ข้อมูลข้ามรีเจี้ยนอัตโนมัติได้เลย
Use Case ที่สำคัญก็ตามข้อมูลด้านล่างนี้เลยค่ะ
Use Case from Bitkub
จะเป็นในส่วนของทาง CTO จาก Bitkub มาแชร์ประสบการณ์การใช้งานดาต้าเบสบน AWS ค่ะ
โดยทางแพลตฟอร์ม Bitkub Exchange มีเป้าหมายที่จะเป็นแพลตฟอร์มที่น่าเชื่อถือที่สุดของรีเจี้ยน จึงแปลว่าจะต้องสามารถ Scale ตามความต้องการของลูกค้าแต่ละช่วงเวลาได้โดยที่ performance ไม่ตกและใช้เงินอย่างสมเหตุสมผลซึ่งบริการที่ตอบโจทย์ที่ทาง Bitkub ใช้คือ Amazon Aurora Global Database โดยใน Journey นี้ Bitkub ทำงานร่วมกับ AWS อย่างใกล้ชิดและสามารถคุมค่าใช้จ่ายได้ตาม Key หลักครบเลยค่ะ
สรุป
ตามข้อมูลในหัวข้อทำไมเราต้องใช้ RDS ที่กล่าวไปแล้วข้างต้นเลยนะคะ AWS RDS เป็น Managed Service Database ที่ช่วยลดภาระการเตรียมงานด้านอินฟราให้ผู้ใช้งานได้อย่างมาก อีกทั้งยังสามารถช่วยคุมค่าใช้จ่ายหากเราเลือกใช้และตั้งค่าสิ่งที่เกี่ยวข้องต่างๆได้เหมาะสมกับการใช้งาน ทั้งนี้ผู้ใช้งานสามารถทดลองใช้งานได้ตั้งแต่ขนาดเล็กที่สุดของตัวบริการและปรับเพิ่มตามความเหมาะสมได้ทุกเมื่อเลยค่ะ