【สำหรับมือใหม่】เปรียบเทียบ RDS กับ RDB on EC2 บน AWS

นี่เป็นบทความแปล ที่มีเนื้อหามาจากบทความภาษาญี่ปุ่นของ Classmethod, Inc. ในหัวข้อ「【初心者向け】RDSとRDB on EC2を比較してみました」 หากผู้อ่านสนใจอ่านเนื้อหาต้นฉบับสามารถอ่านได้ที่ลิ้งค์ "บทความต้นฉบับ" ด้านล่าง เนื้อหาในบทความนี้การอธิบายบางอย่างจะถูกปรับให้เข้าใจง่ายขึ้นทำให้แตกต่างจากต้นฉบับในบางจุด
2022.06.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

สวัสดีครับ ฝ่ายขายของ AWS ซุซากิ ครับ!

ครั้งนี้ผมจะมาเปรียบเทียบ RDS กับ RDB on EC2 กันครับ

  • บทความนี้เหมาะสำหรับผู้เริ่มใช้ AWS ครับ
  • หากมีส่วนที่ไม่เข้าใจสามารถคอมเมนต์เข้ามาถามได้ครับ
  • บทความต้นฉบับเป็นข้อมูลของ วันที่ 23 เดือน 7 ปี 2020 ครับ (แต่คนแปลพยายามตรวจสอบให้เป็นข้อมูลของปัจจุบัน(6/23/2022)ให้แล้วครับ)

RDS คืออะไร

ถ้าจะให้สรุป RDS ในคำเดียวก็คือ Fully managed relational database service ของ AWS (แปลเป็นไทยโดย Google Translate คือ บริการฐานข้อมูลเชิงสัมพันธ์ที่มีการจัดการเต็มรูปแบบ) ครับ
Amazon Relational Database Service (RDS)

โดยมีความสามารถในการ Relational database setup, operation หรือ scale ได้อย่างง่ายๆครับ
RDS เป็น Managed service ของ AWS ทำให้ไม่ต้องห่วงเรื่องการจัดการบำรุงรักษา ทำให้ลดภาระในการจัดการได้เยอะเลยครับ

และนอกจากนี้ยังสามารถใช้ทำโครงสร้าง Multi-AZ ได้ง่ายๆ
เมื่อใช้ Multi-AZ จะทำให้สามารถสร้างตัวก๊อปปี้ standby instance ไว้ที่ availability zone อื่นๆได้
เมื่อเกิดปัญหากับ main instance ขึ้น ก็จะปรับเปลี่ยนไปใช้งาน standby instance ทำให้สามารถคงความพร้อมในการใช้งานไว้ได้ครับ

ณ ปัจจุบัน มี database engine ให้เลือกอยู่ 7 อย่างด้วยกันครับ

  1. Amazon Aurora ที่เข้ากันได้กับ PostgreSQL
  2. Amazon Aurora ที่เข้ากันได้กับ MySQL
  3. Amazon RDS for PostgreSQL
  4. Amazon RDS for MySQL
  5. Amazon RDS for MariaDB
  6. Amazon RDS for Oracle
  7. Amazon RDS for SQL Server

RDS or RDB on EC2

ในกรณีเลือก DB ใน Cloud จริงๆ จะต้องคิดว่าเลือกว่าจะใช้ RDS หรือ EC2 Instance ซึ่งอาจจะมีหลายคนที่กำลังลังเลใจอยู่
เราเลยจะมาเปรียบเทียบให้ดูกันว่าแต่ละอันมีข้อแตกต่างกันอย่างไร โดยหวังว่าจะเป็นประโยชน์ต่อผู้อ่านนะครับ
โดยถ้าจะให้พูดจากบทสรุปแล้วก็คือ ถ้าเป็นได้ ถ้าไม่มีปัญหาในการใช้ RDS ก็ให้ใช้ RDS ดีกว่าครับ
* ถ้ามีคอมเมนต์เพิ่มเติมก็ส่งกันมาได้ครับ

ข้อดีของ RDS

  • lead time ตอน build time สั้น (ถ้าเป็น RDS ก็สร้างได้ประมาณ 10 นาที)
  • สามารถสร้าง Backup ได้อย่าง่งายดายด้วย ฟังก์ชัน snapshots
  • สามารถใช้ Amazon Aurora ได้(ประสิทธิภาพมากกว่ามาตรฐาน mySQL ถึง 5 เท่า และมี Replication ระหว่าง 3 availability zone)
  • ใช้ทำโครงสร้าง Multi-AZ ได้
  • สามารถอัพ Patch แก้ไขโดยอัตโนมัติระหว่างช่วง Maintenance window

ข้อดีของ RDB on EC2

  • สามารถ Login ที่ OS ได้
  • มีคุณลักษณะบางอย่างไม่รองรับ RDS
  • มีประเภท Instance / Storage ที่ไม่มีใน RDS ให้ใช้

วิธีการตั้งค่า Multi-AZ

ช่วงนี้เราจะมานำเสนอวิธีการตั้งค่า Multi-AZ ซึ่งเป็นข้อดีอย่างนึงของ RDS ครับ
มีขั้นตอนสั้นมากๆ โปรดดูด้วยความตั้งใจ อย่ากระพริบตาครับ

ขั้นตอนที่ 1 กดปุ่ม Multi-AZ DB ตามภาพด้านล่าง

... แค่นี้ครับ! เพียงแค่เราก็จะมี standby instance ไว้ที่ availability zone อื่นๆได้แล้วครับ

ตอนที่เริ่มใช้งาน RDS ค่า standby instance ก็แสดงขึ้นด้วย ลองตรวจสอบกันดูนะครับ

การสร้าง architecture ที่สร้างมาเผื่อการพังหรือชำรุด คือ best practice ครับ (นอก AWS ก็สามารถนำไปใช้ได้เช่นกันครับ)
กรณีเป็นห่วงเรื่องค่าใช้จ่ายแล้วสร้าง architecture ที่ไม่มี standby instance(ไม่มีตัวสำรอง) เมื่อเกิดปัญหาอะไรขึ้นมีโอกาศสูงที่จะเกิดความเสียอย่างใหญ่ขึ้น
การที่เราออกแบบเพื่อป้องกันอุบัติเหตุต่างๆ เรียกว่า design for failure ครับ
แค่เรากด Multi-AZ ก็สามารถสร้างตัวก๊อปปี้ standby instance ไว้ที่ availability zone อื่นๆได้ ทำให้มีความพร้อมในการใช้งานเพิ่มขึ้น(เซิร์ฟไม่ล่มง่าย)

นอกจากนี้ ยังสามารถตั้งค่าการสำรองข้อมูลอัตโนมัติได้ด้วยคลิกเดียวเช่นเดียวกับ Multi-AZ

สรุป

ผมสรุปการเปรียบเทียบระหว่าง RDS และ RDB on ​​EC2 แล้ว เป็นยังไงกันบ้างครับ
RDS มีข้อได้เปรียบอย่างมากในแง่ของการทำงานและความพร้อมใช้งานเมื่อเปรียบเทียบกับ EC2
ถ้าลองได้ไปพิจารณาเกี่ยวกับ RDS ดู ผมก็ดีใจครับ

แล้วนอกจากนี้ ถ้าทำสัญญา AWS ผ่าน บริษัท Classmethod ของเราจะได้รับส่วนลด 5% ครับ

Classmethod Thailand | คลาสเมธอดประเทศไทย ผู้ให้บริการ AWS อันดับ 1 จากญี่ปุ่น

สำหรับบทความนี้ก็จบเพียงเท่านี้ครับ แล้วเจอกันในบทความต่อไปครับ สวัสดีครับ

บทความที่เกี่ยวข้อง

บทความต้นฉบับ