บริการ Database ของ AWS มีกี่บริการ?มาดูวิธีการเลือกใช้งานตาม Use Case กัน

บริการ Database ของ AWS มีกี่บริการ?มาดูวิธีการเลือกใช้งานตาม Use Case กัน

นี่เป็นบทความที่มีเนื้อหาดัดแปลงมาจากบทความภาษาญี่ปุ่นของ Classmethod, Inc. ในหัวข้อ AWSの各種DBサービスは一体いくつある?ユースケースに見る「使い分け」 หากผู้อ่านสนใจอ่านเนื้อหาต้นฉบับสามารถอ่านได้ที่ลิ้งค์ "บทความต้นฉบับ" ด้านล่าง เนื้อหาในบทความนี้มีการอัปเดตเนื้อหาบางอย่างเพื่อให้เข้าใจง่ายขึ้นทำให้แตกต่างจากต้นฉบับในบางจุด

Database หรือ ฐานข้อมูลที่จำเป็นในการสร้างระบบสารสนเทศ (ในบล็อกนี้เราจะเรียกย่อๆว่า DB)
AWS มีบริการ DB อยู่หลายบริการจึงอาจจะทำให้ผู้เริ่มต้นใช้งานรู้สึกยากเวลาที่ต้องเลือกว่าบริการใดจะเหมาะสมกับความต้องการสำหรับการใช้งานของบริษัท ในบล็อกนี้จะมาแนะนำ DB ที่ใช้กันอย่างแพร่หลายและอธิบายว่าแต่ละบริการเหมาะสำหรับอะไร use case และ วิธีการใช้งานอย่างเหมาะสม

สารบัญ
★ บริการ DB ประเภท RDB/SQL
★ บริการ DB ประเภท No SQL
★ Use Case การใช้งาน DB ใน AWS
★ เช็คสิลต์ที่ควรทราบก่อนการย้าย DB จาก On-Premise ไป AWS
★ การซัพพอร์ตการสร้างหรือโอนย้าย DB

บริการ DB ประเภท RDS/SQL

บริการ DB ของ AWS สามารถแบ่งได้กว้างๆเป็น 2 ประเภท โดยหนึ่งในนั้นคือ "RDB(Relational Database)/SQL"
ทำงานโดยใช้ SQL Query ที่ใช้อยู่ทั่วไป มีประวัติการใช้งานมาอย่างยาวนานและใช้กันอย่างแพร่หลายแม้แต่ใน On-Premise
ความโดดเด่นของ DB ประเภทนี้คือความสามารถในการประมวล transaction อันหนักหน่วงได้ มีการใช้งานอย่างแพร่หลายในระบบขององค์กรหรือเว็บ

Amazon Aurora

Amazon Aurora เป็น RDBMS ( Relational Database Management System หรือ ระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ ) ที่ AWS สร้างขึ้นโดยเฉพาะสำหรับการใช้งานบนคลาวด์ จุดเด่นคือความสามารถในการปรับขนาดที่ยอดเยี่ยมและมีความน่าเชื่อถือสูง อีกทั้งยังสามารถลดต้นทุนได้ 90% เมื่อเทียบกับบริการฐานข้อมูลในเชิงพาณิชย์อื่น ๆ
นอกจากนี้ยังสามารถเข้ากันได้กับ MySQL และ PostgreSQL ได้ และว่ากันว่าเร็วกว่า MySQL ทั่วไปถึง 5 เท่า และเร็วกว่า PostgreSQL ทั่วไปถึง 3 เท่า
Amazon Aurora จะเป็นทางเลือกแรกๆที่ได้รับการแนะนำหากคุณไม่มีข้อกำหนดเฉพาะเจาะจงหรือระบบของคุณไม่ใช่ขนาดที่เล็กมากๆ

Amazon Relational Database Service(Amazon RDS)

Managed DB service ของ AWS โดยรองรับทั้ง MySQL, MariaDB, PostgreSQL, Oracle Database, SQL Server
โดยเนื่องจาก AWS จะเป็นผู้จัดการงานในส่วน operation ของ RDBMS ให้ จึงทำให้มีข้อดีตรงที่สามารถช่วยลดภาระงานด้าน operation ให้แก่ยูสเซอร์ได้ แต่ก็จะมีข้อจำกัดในงานใช้งานฟังก์ชันบางส่วนเพิ่มขึ้นมาเช่นกัน
RDS จะเป็นบริการที่ได้รับการแนะนำหากคุณต้องการใช้บริการฐานข้อมูลในเชิงพาณิชย์

Amazon Redshift

เป็น Data warehouse ที่ใช้สำหรับวิเคราะห์ข้อมูลที่มีขนาดใหญ่ และมีความสามารถเข้ากันได้กับ PostgreSQL

ข้อดีคือสามารถปรับขนาดได้ยืดหยุ่นตั้งแต่ข้อมูลขนาดเล็กไปจนถึงข้อมูลขนาดใหญ่ และควบคุมค่าใช้จ่ายได้ดีกว่าการใช้ data warehouse ใน On-Premise

อีกทั้งมีหลายเคสที่ใช้งานร่วมกับ BI หรือ AI เพื่อแสดงข้อมูล วิเคราะห์ และเรียนรู้จากข้อมูลที่จัดเก็บไว้ใน Amazon Redshift

บริการ DB ประเภท NoSQL

"NoSQL" เป็นคำย่อของ Not Only SQL ซึ่งหมายถึง database ทั้งหมดที่ไม่ใช่ RDB
จุดเด่นคือสามารถซับพอร์ทข้อมูลได้หลากหลายซึ่งต่างจาก RDB ที่มีการเก็บข้อมูลในตารางและจัดการค้นหาด้วย SQL
แม้ว่า RDB จะครอบคลุมการใช้งานที่หลากหลาย แต่ก็ยังมี DB อีกหลายตัวที่สร้างมาตามวัตถุประสงค์การใช้งานโดยเฉพาะ

Amazon DynamoDB

Amazon DynamoDB เป็นบริการ database แบบ fully managed serverless NoSQL โดยจัดเก็บข้อมูลในรูปแบบ JSON
สามารถปรับขนาดอัตโนมัติได้ตามปริมาณข้อมูล ทำให้เหมาะสำหรับการใช้งานที่ต้องจัดเก็บข้อมูลจำนวนมาก
มีการใช้งาน Amazon DynamoDB อย่างแพร่หลายใน IoT ที่สร้างข้อมูลเซ็นเซอร์ปริมาณมากและต่อเนื่อง หรือแม้แต่ Web System ที่มีโครงสร้างง่ายๆยังมีการนำ Amazon DynamoDB ไปประยุกต์ใช้งานด้วย

Amazon DocumentDB

เป็น document database ประเภทหนึ่งที่จัดเก็บข้อมูลเป็นเอกสาร เช่น JSON และเข้ากันได้กับ OSS database ยอดนิยมอย่าง MongoDB นอกจากนี้ยังสามารถ Query SQL ที่ซับซ้อนกว่า Amazon DynamoDB ที่จัดการด้วย JSON ได้ และสามารถประมวลผล transaction ง่ายๆได้ด้วย เรียกได้ว่าเป็นบริการที่อยู่กึ่งกลางระหว่าง Amazon DynamoDB กับบริการ DB ที่ใช้ RDB/SQL

มีการใช้ Amazon DocumentDB อย่างแพร่หลายใน IoT เช่นกัน และยังเหมาะสมกับการใช้งานที่ต้อง Query ข้อมูลที่มีความซับซ้อนที่ไม่สามารถจัดการได้ด้วย Amazon DynamoDB

Amazon ElastiCache

บริการ fully managed in-memory caching รองรับ OSS in-memory DB "Redis" และ "memcached"
เนื่องจากเป็นการจัดเก็บข้อมูลในหน่วยความจำ(in-memory) ซึ่งหมายความว่าจะสามารถตอบสนองได้รวดเร็ว จึงเหมาะกับการใช้งานสำหรับเป็นพื้นที่จัดเก็บข้อมูลชั่วคราวสำหรับข้อมูลธรรมดา ส่วนใหญ่มักจะใช้งานกันในฐานะพื้นที่จัดเก็บ Cache ตรงตามชื่อบริการ

Use Case การใช้งาน DB ใน AWS

<Case1:เว็บไซต์> ใช้ RDS กับ Amazon ElastiCache เป็นพื้นที่จัดเก็บ Cache

โดยทั่วไปแล้วข้อมูลที่ใช้บนเว็บไซต์จะถูกเก็บไว้ใน RDB และ ใช้ใน RDB ในการประมวลผล transaction หนักๆ เช่นข้อมูลการสั่งซื้อบนเว็บไซต์อีคอมเมิร์ซ แต่หากเราใช้งาน RDB กับ Amazon ElastiCache ในการจัดเก็บข้อมูลที่ถูกเรียกใช้งานบ่อยๆ จะสามารถช่วยลดภาระของ RDB และมีการตอบสนองที่เร็วยิ่งขึ้น นอกจากนี้ข้อมูลชั่วคราว เช่น ข้อมูลเซสชันของเว็บไซต์มักจะถูกเก็บไว้ใน Amazon ElastiCache

Case1

<Case2:การวิเคราะห์> รวบรวมข้อมูลจาก S3 ไปที่ Amazon Redshift

ประยุกต์ใช้ข้อมูลที่อยู่ใน Amazon Redshift ร่วมกับเทคโนโลยีการจัดการข้อมูลที่มีการพัฒนาโดยต่อเนื่องอย่าง BI หรือการใช้งาน AI
นอกจากนี้ยังสามารถเชื่อมโยงข้อมูลที่จัดเก็บในบริการจัดเก็บข้อมูลของ AWS อย่าง Amazon S3 เข้ากับ Amazon Redshift ได้อีกด้วย และยังสามารถเชื่อมโยงกับบริการ BI ของ AWS “Amazon QuickSight” และบริการ AI อื่นๆเพื่อนำไปใช้เป็นหลักในการวิเคราะห์ข้อมูลต่างได้

Case2

<Case3:IoT> จัดเก็บข้อมูลเซ็นเซอร์ ฯลฯ ใน Amazon DynamoDB

Amazon DynamoDB มีประโยชน์ในกรณีของ IoT เมื่อใช้ IoT เซ็นเซอร์จะต้องจัดเก็บข้อมูลที่รวบรวมได้ในช่วงเวลาสั้นๆอย่างต่อเนื่อง เช่น ทุกๆ2-3วินาทีแบบเรียลไทม์
Amazon DynamoDB จะปรับขนาดโดยอัตโนมัติตามการเพิ่มขึ้นของข้อมูลเพื่อให้แน่ใจว่าข้อมูลที่ส่งเข้ามาจะถูกจัดเก็บไว้อย่างต่อเนื่อง
การตั้งค่าจะแตกต่างกันไปขึ้นอยู่กับแอปพลิเคชัน แต่ในกรณีส่วนใหญ่ข้อมูลที่ส่งผ่านเน็ตเวิร์คจากเซ็นเซอร์และอุปกรณ์อื่นจะได้รับการประมวลผลผ่านบริการสตรีมมิ่งของ AWS และจัดเก็บไว้ใน Amazon DynamoDB

Case3

การตรวจสอบล่วงหน้าถือเป็นสิ่งสำคัญหากจะย้าย DB จาก On-premise ไปยัง AWS

อันดับแรก คุณต้องมีวัตถุประสงค์ของการโยกย้ายที่ชัดเจน และตรวจสอบข้อกำหนดการทำงานของฟังก์ชันที่จำเป็นและไม่จำเป็นอย่างถี่ถวนแล้วจึงจะพิจารณาว่าจะโยกย้ายไปยังบริการ DB หรือ DB Engine ชนิดใด
โดยทั่วไปแล้วลูกค้าจะย้ายไปที่ database แบบเดียวกันกับที่ใช้บน On-premise แต่ก็มีบางกรณีที่ลูกค้าเปลี่ยน DB engine เมื่อย้ายไปยัง AWS เช่น การสลับจาก DB เชิงพาณิชย์ไปยัง Amazon Aurora ในกรณีที่เปลี่ยน DB engine จะต้องมีการแก้ไขแอปพลิเคชันด้วย จึงควรพิจารณาล่วงหน้าอย่างรอบคอบทั้งในด้านค่าใช้จ่าย หรือ manpower รวมถึงข้อดีข้อเสียของการเปลี่ยน engine

นอกจากนี้ Amazon RDS เป็นตัวเลือกแรกๆสำหรับการย้ายข้อมูลของ Oracle และ SQL Server อย่างไรก็ตาม แม้ว่า Amazon RDS จะเป็น managed service ที่ช่วยลดภาระด้าน operation ได้แต่ก็มีข้อจำกัดในด้านฟังก์ชั่นและการตั้งค่า ดังนั้นเราจึงต้องพิจารณาปัจจัยที่เกี่ยวข้องล่วงหน้าก่อนตัดสินใจ เช่น การที่ไม่สามารถใช้งานได้ทุกอย่างแบบเดียวกับที่ใช้บน On-premise หรือ ไม่สามารถใช้งานฟังก์ชันที่สำคัญได้

AWS เองก็มีบริการสำหรับการย้าย database ได้แก่ "AWS Database Migration Service" บริการนี้จะช่วยให้คุณย้าย DB ได้จาก On-premise ไป AWS หรือแม้แต่การย้าย DB แบบเปลี่ยน engine ก็สามารถทำได้

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

AWS : Amazon RDS คืออะไร (Thai)
“RDS” vs. “RDB บน EC2” เลือกใช้งานตัวไหนดี? บทความนี้มีคำตอบ! (Thai)
Database ใช้อะไรดีระหว่าง Aurora กับ RDS (Thai)
มารู้จักกับ Amazon Redshift ในปลายปี 2022 กัน (Thai)
[AWS 101] : AWS Database Migration Service (DMS) คืออะไร? (Thai)

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

AWSの各種DBサービスは一体いくつある?ユースケースに見る「使い分け」 (Japanese)

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.