เอนจิน RDS และคลาสอินสแตนซ์
เปรียบเทียบ MySQL, PostgreSQL, MariaDB, Oracle, SQL Server และ Aurora พร้อมเลือกคลาสอินสแตนซ์ที่เหมาะกับงานของคุณ
เอนจิน RDS และคลาสอินสแตนซ์ เป็นบทเรียน AWS Solutions Architect ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AWS Solutions Architect และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AWS Solutions Architect มีบทเรียนทั้งหมด 4 บทเรียน
บทนำสู่เอนจิน Amazon RDS
Amazon RDS รองรับเอนจินฐานข้อมูล 6 ประเภท ได้แก่ MySQL, PostgreSQL, MariaDB, ออราเคิล, Microsoft SQL Server และ Amazon Aurora เอนจินแต่ละประเภทเป็นเวอร์ชันที่มีการจัดการเต็มรูปแบบของฐานข้อมูลแบบโอเพนซอร์สหรือเชิงพาณิชย์ที่คุณคุ้นเคยอยู่แล้ว AWS จัดการการติดตั้งแพตช์ การสำรองข้อมูล และการสลับระบบเมื่อเกิดข้อขัดข้อง เพื่อให้คุณมุ่งเน้นที่ตรรกะของแอปพลิเคชันได้
การเลือกเอนจินที่เหมาะสมขึ้นอยู่กับข้อกำหนดของแอปพลิเคชันที่มีอยู่ ค่าใช้จ่ายด้านลิขสิทธิ์ และฟีเจอร์ที่เอนจินแต่ละประเภทมีให้ Aurora เป็นตัวเลือกแบบคลาวด์เนทีฟของ AWS ที่สร้างมาเพื่อประสิทธิภาพและความพร้อมใช้งาน
MySQL และ PostgreSQL บน RDS
MySQL เป็นฐานข้อมูลเชิงสัมพันธ์แบบโอเพนซอร์สที่ได้รับความนิยมสูงสุดในโลก และเหมาะโดยธรรมชาติสำหรับแอปพลิเคชันเว็บและระบบจัดการเนื้อหา PostgreSQL รองรับมาตรฐาน SQL ขั้นสูง มีการรองรับ JSONB ที่แข็งแกร่ง และมีระบบนิเวศส่วนขยายที่ทรงพลัง จึงได้รับความนิยมสำหรับงานวิเคราะห์ข้อมูลและงานด้านภูมิสารสนเทศ
เอนจินทั้งสองประเภทบน RDS รองรับการสำรองข้อมูลอัตโนมัติ การติดตั้งใช้งานแบบ Multi-AZ และแบบจำลองสำหรับอ่าน PostgreSQL Read Replicas สามารถครอบคลุมหลายรีเจียนได้ ขณะที่ MySQL รองรับแบบจำลองข้ามรีเจียนได้สูงสุด 15 ตัวเมื่อใช้ Aurora MySQL
# Creating an RDS MySQL instance via CLI
aws rds create-db-instance \
--db-instance-identifier mydb \
--db-instance-class db.t3.micro \
--engine mysql \
--master-username admin \
--master-user-password MyPass123! \
--allocated-storage 20MariaDB และกรณีการใช้งาน
MariaDB เป็นสาขาที่พัฒนาโดยชุมชนซึ่งแยกมาจาก MySQL และเข้ากันได้อย่างสมบูรณ์ในระดับโพรโทคอลการสื่อสารกับไคลเอ็นต์ MySQL โดยมีเอนจินจัดเก็บข้อมูลเพิ่มเติม ประสิทธิภาพที่ดีกว่าในงานบางประเภท และรูปแบบการพัฒนาแบบเปิดที่ไม่มีฟีเจอร์เฉพาะของผู้ให้บริการ
บน RDS, MariaDB สามารถใช้แทน MySQL ได้ทันที หากคุณต้องการหลีกเลี่ยงการใช้ลิขสิทธิ์ MySQL ของออราเคิล หรือชื่นชอบสาขาที่พัฒนาโดยชุมชน โดยรองรับฟีเจอร์การสำรองข้อมูลอัตโนมัติ Multi-AZ และ Read Replica เช่นเดียวกับ MySQL
Oracle และ SQL Server บน RDS
ฐานข้อมูลออราเคิล บน RDS รองรับทั้งรูปแบบ License Included (LI) และ Bring Your Own License (BYOL) โดย LI รวมใบอนุญาต Oracle SE2 ไว้ในอัตรารายชั่วโมง ส่วน BYOL ให้คุณใช้ใบอนุญาต Enterprise Edition ที่มีอยู่แล้วสำหรับฟีเจอร์ต่าง ๆ เช่น การแบ่งพาร์ทิชันและ Advanced Security
Microsoft SQL Server บน RDS ก็มีรุ่น LI (Express, Web, Standard, Enterprise) และ BYOL เช่นเดียวกัน เอนจินทั้งสองประเภทรองรับ Multi-AZ ด้วยการทำมิเรอร์แบบซิงโครนัส แต่ไม่รองรับ Read Replicas ในลักษณะเดียวกับเอนจินโอเพนซอร์ส
Amazon Aurora: เอนจินแบบคลาวด์เนทีฟ
Amazon Aurora เป็นฐานข้อมูลเชิงสัมพันธ์แบบคลาวด์เนทีฟที่เข้ากันได้กับทั้ง MySQL และ PostgreSQL Aurora ให้ปริมาณงานสูงสุด 5 เท่าของ MySQL และ 3 เท่าของ PostgreSQL บนฮาร์ดแวร์เดียวกัน โดยใช้ชั้นจัดเก็บข้อมูลแบบกระจายที่จำลองข้อมูลโดยอัตโนมัติ 6 ชุดข้าม 3 Availability Zones
พื้นที่จัดเก็บของ Aurora จะเพิ่มขึ้นโดยอัตโนมัติครั้งละ 10 GB สูงสุด 128 TiB ทำให้ไม่ต้องจัดสรรพื้นที่จัดเก็บด้วยตนเอง การแยกส่วนประมวลผลออกจากพื้นที่จัดเก็บยังช่วยให้ Aurora Serverless ปรับขนาดความจุขึ้นลงโดยอัตโนมัติได้
ตระกูลคลาสอินสแตนซ์ของ RDS
คลาสอินสแตนซ์ของ RDS ใช้หลักการตั้งชื่อเดียวกับ EC2 แต่เติม db. ไว้หน้าอักษรของตระกูลแทนที่จะใช้อักษรของตระกูลเพียงอย่างเดียว ตระกูลหลักมีดังนี้:
- db.t — ประสิทธิภาพแบบปรับเพิ่มได้ เหมาะด้านต้นทุนสำหรับการพัฒนา/ทดสอบ (เช่น db.t3.micro, db.t4g.small)
- db.m — การใช้งานทั่วไป สมดุลระหว่าง CPU และหน่วยความจำ (เช่น db.m6g.large)
- db.r — ปรับให้เหมาะกับหน่วยความจำ สำหรับแคชขนาดใหญ่และตารางในหน่วยความจำ (เช่น db.r6g.xlarge)
- db.x — หน่วยความจำขนาดใหญ่มากสำหรับ Oracle และ SQL Server ที่มีงาน SAP
เลือก db.t สำหรับการพัฒนา เลือก db.m สำหรับระบบที่ใช้งานจริงทั่วไป และเลือก db.r สำหรับฐานข้อมูลที่มีชุดข้อมูลที่กำลังใช้งานขนาดใหญ่
การเลือกคลาสอินสแตนซ์ที่เหมาะสม
การเลือกคลาสอินสแตนซ์ของ RDS จำเป็นต้องวิเคราะห์ลักษณะงานในด้าน การใช้งาน CPU, การใช้หน่วยความจำ, ความต้องการ IOPS และ แบนด์วิดท์เครือข่าย AWS Compute Optimizer และเครื่องมือ RDS Performance Insights ช่วยระบุได้ว่าอินสแตนซ์ปัจจุบันของคุณได้รับการจัดสรรทรัพยากรมากหรือน้อยเกินไป
แนวทางทั่วไปคือเริ่มด้วย db.t3 สำหรับการสร้างต้นแบบ เปลี่ยนเป็น db.m6g เมื่อภาระงานเริ่มคงที่ และเปลี่ยนเป็น db.r6g เมื่อการสืบค้นได้ประโยชน์จากบัฟเฟอร์พูลที่ใหญ่ขึ้น โดยทั่วไปอินสแตนซ์ที่ใช้ Graviton2 (db.m6g, db.r6g) มีประสิทธิภาพด้านราคาดีกว่าอินสแตนซ์ x86 ที่เทียบเท่ากันสูงสุด 35%
# List available DB instance classes for MySQL 8.0
aws rds describe-orderable-db-instance-options \
--engine mysql \
--engine-version 8.0 \
--query 'OrderableDBInstanceOptions[].DBInstanceClass' \
--output text | tr '\t' '\n' | sort -u | head -20ตัวเลือกพื้นที่จัดเก็บสำหรับ RDS
RDS มีพื้นที่จัดเก็บ 3 ประเภท ซึ่งเบื้องหลังจะเชื่อมโยงกับวอลุ่ม EBS:
- gp2 / gp3 — SSD สำหรับการใช้งานทั่วไป โดย gp3 ช่วยให้คุณจัดสรร IOPS และปริมาณงานได้อย่างอิสระโดยไม่ต้องจ่ายเงินเพื่อเพิ่มพื้นที่จัดเก็บ
- io1 / io2 — SSD ที่จัดสรร IOPS ไว้ล่วงหน้า สำหรับฐานข้อมูล OLTP ที่ไวต่อเวลาแฝงและต้องการการตอบสนองที่สม่ำเสมอต่ำกว่าหนึ่งมิลลิวินาที
- st1 — HDD ที่ปรับให้เหมาะกับปริมาณงาน มีให้ใช้เฉพาะกับเอนจินและงานทดสอบบางประเภท
สำหรับการติดตั้งใช้งาน RDS จริงส่วนใหญ่ gp3 เป็นค่าเริ่มต้นที่แนะนำ เนื่องจากมี 3,000 IOPS โดยไม่มีค่าใช้จ่ายเพิ่มเติม และสามารถปรับขนาดได้อย่างอิสระจากขนาดพื้นที่จัดเก็บ
การปรับขนาด RDS: แนวตั้งและแนวนอน
RDS รองรับการปรับขนาด 2 มิติ การปรับขนาดแนวตั้ง (การเปลี่ยนคลาสอินสแตนซ์) จำเป็นต้องมีช่วงเวลาหยุดให้บริการสั้น ๆ หากไม่ได้เปิดใช้ Multi-AZ แต่เมื่อใช้ Multi-AZ การสลับระบบจะทำให้แทบไม่มีช่วงหยุดให้บริการระหว่างการปรับขนาด คุณสามารถกำหนดให้การแก้ไขเกิดขึ้นในช่วงเวลาบำรุงรักษาครั้งถัดไป หรือดำเนินการทันทีได้
การปรับขนาดแนวนอน ใช้สำหรับการอ่านเท่านั้น โดยเพิ่ม Read Replicas เพื่อกระจายการสืบค้น SELECT ออกจากฐานข้อมูลหลัก Read Replicas ใช้การจำลองแบบไม่พร้อมกัน จึงมีความล่าช้าในการจำลองข้อมูลเล็กน้อยที่แอปพลิเคชันของคุณต้องรองรับ
# Modify an RDS instance class (apply immediately)
aws rds modify-db-instance \
--db-instance-identifier mydb \
--db-instance-class db.m6g.large \
--apply-immediatelyAurora เทียบกับเอนจินชุมชน: ความแตกต่างสำคัญ
เมื่อเลือกระหว่าง Aurora กับ MySQL/PostgreSQL ของชุมชน ให้พิจารณาข้อแลกเปลี่ยนต่อไปนี้:
- Aurora: ปริมาณงานสูงกว่า การจำลองข้อมูลอัตโนมัติ 6 ชุด การสลับระบบที่รวดเร็ว (~30 วินาที) ไม่ต้องจัดการพื้นที่จัดเก็บด้วยตนเอง แต่มีค่าใช้จ่ายรายชั่วโมงสูงกว่า
- MySQL/PostgreSQL: ค่าใช้จ่ายต่ำกว่า ส่วนขยายจากชุมชนมีหลากหลายกว่า มีตัวเลือก BYOL และมีเครื่องมือดำเนินงานที่คุ้นเคย
สำหรับสถานการณ์ในการสอบ ควรเลือก Aurora เมื่อโจทย์เน้น ความพร้อมใช้งานสูง, การเพิ่มพื้นที่จัดเก็บโดยอัตโนมัติ หรือ ประสิทธิภาพใกล้เคียงฐานข้อมูลเชิงพาณิชย์ในราคาแบบโอเพนซอร์ส ส่วนเอนจินจากชุมชนเหมาะกว่าเมื่อ การลดค่าใช้จ่ายให้ต่ำที่สุด หรือ ความเท่าเทียมของฟีเจอร์กับระบบภายในองค์กร เป็นสิ่งสำคัญที่สุด
การอัปเกรดเวอร์ชันเอนจินบน RDS
RDS แยก การอัปเกรดเวอร์ชันย่อย (เช่น MySQL 8.0.32 → 8.0.36) ออกจาก การอัปเกรดเวอร์ชันหลัก (เช่น MySQL 5.7 → 8.0) การอัปเกรดเวอร์ชันย่อยสามารถตั้งค่าให้ดำเนินการโดยอัตโนมัติในช่วงเวลาบำรุงรักษาได้โดยเปิดใช้ --auto-minor-version-upgrade ส่วนการอัปเกรดเวอร์ชันหลักต้องดำเนินการด้วยตนเอง และอาจจำเป็นต้องทดสอบความเข้ากันได้ของแอปพลิเคชัน
ทดสอบการอัปเกรดเวอร์ชันหลักในสภาพแวดล้อมเตรียมใช้งานก่อนเสมอ คุณสามารถสร้างสแนปช็อต DB ก่อนการอัปเกรดเพื่อย้อนกลับได้หากเกิดปัญหา คลัสเตอร์ Aurora รองรับการอัปเกรดเวอร์ชันหลักแบบปรับปรุงอยู่กับที่ โดยมีการหยุดชะงักน้อยที่สุด
# Enable auto minor version upgrade
aws rds modify-db-instance \
--db-instance-identifier mydb \
--auto-minor-version-upgrade \
--apply-immediatelyตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความเข้าใจแนวคิด AWS Solutions Architect (SAA-C03) จากบทเรียนนี้
สรุปบทเรียน
ในบทเรียนนี้ คุณได้เรียนรู้ว่า RDS รองรับเอนจิน 6 ประเภท (MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, Aurora), คลาสอินสแตนซ์สอดคล้องกับลักษณะงาน (db.t สำหรับการพัฒนา/ทดสอบ, db.m สำหรับการใช้งานทั่วไป, db.r สำหรับงานที่ใช้หน่วยความจำมาก) และ Aurora ให้ปริมาณงานที่สูงกว่าและปรับขนาดพื้นที่จัดเก็บโดยอัตโนมัติ เมื่อเทียบกับเอนจินจากชุมชน ต่อไปเราจะสำรวจการติดตั้งใช้งานแบบ Multi-AZ และการสำรองข้อมูลอัตโนมัติเพื่อความพร้อมใช้งานสูง
คำถามที่พบบ่อย
บทเรียน “เอนจิน RDS และคลาสอินสแตนซ์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เอนจิน RDS และคลาสอินสแตนซ์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AWS Solutions Architect ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AWS Solutions Architect มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เอนจิน RDS และคลาสอินสแตนซ์”
เปรียบเทียบ MySQL, PostgreSQL, MariaDB, Oracle, SQL Server และ Aurora พร้อมเลือกคลาสอินสแตนซ์ที่เหมาะกับงานของคุณ คุณปฏิบัติ AWS Solutions Architect ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AWS Solutions Architect หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AWS Solutions Architect บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “เอนจิน RDS และคลาสอินสแตนซ์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AWS Solutions Architect นี้ได้ไหม
ได้ บทเรียน AWS Solutions Architect ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เอนจิน RDS และคลาสอินสแตนซ์
- Multi-AZ และการสำรองข้อมูลอัตโนมัติ
- รีดเรพลิกาสำหรับการขยายการอ่าน
- ความปลอดภัยของ RDS: การเข้ารหัสและกลุ่มพารามิเตอร์