การวิเคราะห์ฟังก์ชันหลักของ Amazon RDS ฐานข้อมูลเชิงสัมพันธ์บนคลาวด์ของ Amazon
หากคุณเป็นฝ่ายพัฒนาส่วนหลังการดำเนินการและการบำรุงรักษาของบริษัทหรือหัวหน้าธุรกิจที่เพิ่งเริ่มต้นธุรกิจคุณต้องเคยประสบกับความกลัวที่จะถูกควบคุมโดยฐานข้อมูล
จะสร้างฐานข้อมูลแบบเดิมได้อย่างไร? ซื้อเซิร์ฟเวอร์ก่อนติดตั้งระบบปฏิบัติการกำหนดค่าสภาพแวดล้อมเครือข่ายดาวน์โหลดและติดตั้ง MySQL หรือ PostgreSQL จากนั้นปรับพารามิเตอร์กำหนดค่าการคัดลอกต้นแบบทาสทำการสำรองข้อมูลตามกำหนดเวลาติดตั้งปลั๊กอินการตรวจสอบ... หลังจากหมัดชุดนี้ผมร่วงครึ่งหนึ่งก่อนสิ่งที่ทำให้คนนอนไม่หลับมากที่สุดคือ: จะเกิดอะไรขึ้นถ้าห้องคอมพิวเตอร์ถูกปิดตอนตีสามฮาร์ดไดรฟ์ระเบิดและข้อมูลสูญหาย?
เพื่อแก้ปัญหาจุดเจ็บปวดที่ทรมานเหล่านี้ AWS ได้เปิดตัว
Amazon RDS
(Relational Database Service, บริการฐานข้อมูลเชิงสัมพันธ์) วันนี้เราจะใช้ภาษาพื้นถิ่นเพื่อถอดเสื้อคลุมลึกลับและดูว่าฟังก์ชันหลักของ "พี่เลี้ยงดูแลฐานข้อมูลอัตโนมัติ" นี้มีอะไรบ้างและจะปลดปล่อยโปรแกรมเมอร์และการดำเนินการและการบำรุงรักษาได้อย่างไร
Amazon RDS คืออะไร?
พูดง่ายๆก็คือ,
Amazon RDS ไม่ใช่ฐานข้อมูลใหม่แต่เป็น "บริการที่ช่วยให้ผู้คนจัดการฐานข้อมูล"
รองรับเอ็นจิ้นฐานข้อมูลหลัก6ตัวที่คุณคุ้นเคยได้แก่ MySQL, PostgreSQL, MariaDB, Oracle, SQL Server และ AWS Aurora ซึ่งได้รับการปรับแต่งเป็นพิเศษสำหรับระบบคลาวด์เนทีฟ
ด้วย RDS เซิร์ฟเวอร์ฮาร์ดแวร์พื้นฐานแพตช์ระบบปฏิบัติการการติดตั้งฐานข้อมูลและการกำหนดค่าพื้นฐานทั้งหมดจะถูกจัดการโดย AWS คุณต้องคลิกเมาส์สองสามครั้งบนคอนโซลหรือเขียนสคริปต์สองสามบรรทัดและคุณจะมีฐานข้อมูลเชิงสัมพันธ์ระดับองค์กรที่มีความพร้อมใช้งานสูงภายในไม่กี่นาทีคุณไม่จำเป็นต้องสนใจอีกต่อไปว่าซีพียูเซิร์ฟเวอร์เป็นรุ่นใดคุณเพียงแค่ต้องมุ่งเน้นไปที่สิ่งหนึ่ง:
เขียนคำสั่ง SQL ของคุณและทำงานที่ดีในการพัฒนาธุรกิจของคุณ
การวิเคราะห์ฟังก์ชันหลัก: ทำไมจึงทำให้ผู้คนกังวล?
สาเหตุที่ Amazon RDS กลายเป็นเกณฑ์มาตรฐานสำหรับฐานข้อมูลบนคลาวด์ส่วนใหญ่เป็นเพราะมันทำให้สถานการณ์หลักและเจ็บปวดที่สุดในการดำเนินการและการบำรุงรักษา (ความพร้อมใช้งานสูงการขยายการสำรองข้อมูลและความปลอดภัย) เป็นระบบอัตโนมัติเกือบทั้งหมด
1.Multi-Available Area (Multi-AZ) ที่มีอยู่สูง: ในที่สุดก็สามารถนอนหลับได้ดีในเวลาสามโมงเช้า
ในห้องคอมพิวเตอร์แบบเดิมการทำ "การสำรองข้อมูลแบบคู่" เป็นเรื่องยุ่งยากมากแต่ใน RDS นี่เป็นเพียงตัวเลือก
เมื่อคุณเปิด
Multi-AZ (หลายพื้นที่ว่าง) การปรับใช้
RDS จะสร้างอินสแตนซ์ฐานข้อมูลสองอินสแตนซ์โดยอัตโนมัติในห้องคอมพิวเตอร์อิสระสองห้อง (พื้นที่ว่าง A และพื้นที่ว่าง B) ในพื้นที่เดียวกัน
ตัวอย่างหลัก (Primary): รับผิดชอบในการจัดการกับการอ่านและเขียนธุรกิจทั้งหมดของคุณ
ตัวอย่างสแตนด์บาย (Standby): ซ่อนตัวอยู่ในห้องคอมพิวเตอร์อื่นอย่างเงียบๆซิงโครไนซ์ข้อมูลจากอินสแตนซ์หลักแบบเรียลไทม์
ส่วนที่ทรงพลังที่สุดคือ Failover
สมมติว่าห้องคอมพิวเตอร์ A ถูกฟ้าผ่าและไฟดับหรือไฟดับ
เมื่อสายเคเบิลถูกขุดระบบตรวจสอบ RDS จะพบความผิดปกติภายในไม่กี่สิบวินาทีอัปเกรดอินสแตนซ์สำรองเป็นอินสแตนซ์หลักใหม่โดยอัตโนมัติและชี้ชื่อโดเมนการเข้าถึงฐานข้อมูล (Endpoint) ไปยังห้องคอมพิวเตอร์ใหม่โดยตรงแอปพลิเคชันของคุณไม่จำเป็นต้องแก้ไข IP การเชื่อมต่อฐานข้อมูลใดๆเพียงแค่ลองคำขออีกครั้งและธุรกิจจะถูกกู้คืนความพร้อมใช้งานสูงนี้ช่วยให้ระบบของคุณเป็นไปตามมาตรฐานการกู้คืนระบบระดับการเงินโดยตรง
2.Read Replicas: จัดการกับการเข้าชม "Double Eleven" ได้อย่างง่ายดาย
ด้วยการพัฒนาธุรกิจและจำนวนผู้ใช้ที่เพิ่มขึ้นฐานข้อมูลของคุณอาจช้าเหมือนหอยทากเนื่องจากมีข้อความค้นหาจำนวนมาก (คำสั่งเลือก) ในขณะนี้ประสิทธิภาพของเซิร์ฟเวอร์เดียวถึงคอขวด
RDS มีฟังก์ชัน Read Replicas ซึ่งเป็นกระสุนเงินที่แก้ปัญหา "อ่านมากขึ้นและเขียนน้อยลง" พร้อมกันสูง
คุณสามารถโคลน "สำเนาแบบอ่านอย่างเดียว" หลายชุดสำหรับฐานข้อมูลหลักของคุณได้ด้วยคลิกเดียว
ฐานข้อมูลหลักมีหน้าที่ประมวลผลการเพิ่มการลบและการแก้ไขข้อมูล (Create, Update, Delete) และคัดลอกข้อมูลไปยังสำเนาเหล่านี้แบบอะซิงโครนัส
รหัสของคุณสามารถกำหนดเส้นทางคำขอแบบสอบถามทั้งหมด (เช่นการดูรายการผลิตภัณฑ์การอ่านข้อมูลผู้ใช้) ไปยังสำเนาแบบอ่านอย่างเดียว
ด้วยสถาปัตยกรรม "การแยกการอ่านและการเขียน" นี้ความกดดันที่สะสมอยู่ในฐานข้อมูลเดียวจะถูกเบี่ยงเบนไปทันทีสิ่งที่ทรงพลังกว่านั้นคือสำเนาแบบอ่านอย่างเดียวเหล่านี้ไม่เพียงแต่สามารถสร้างได้ในเมืองเดียวกันเท่านั้นแต่ยังสามารถสร้างในพื้นที่อื่นๆในต่างประเทศได้ด้วย (สำเนาแบบอ่านอย่างเดียวข้ามภูมิภาค) ทำให้ผู้ใช้ในต่างประเทศสามารถอ่านข้อมูลได้ในไม่กี่วินาที
3.การสำรองข้อมูลอัตโนมัติและ "ย้อนเวลา": การลบไลบรารีโดยไม่ได้ตั้งใจไม่จำเป็นต้องเตรียมหนี
ข่าวที่ว่า "โปรแกรมเมอร์ลบฐานข้อมูลสภาพแวดล้อมการผลิตโดยไม่ได้ตั้งใจ" ไม่ใช่เรื่องแปลกในโลกของ RDS ความผิดพลาดระดับต่ำนี้ไม่ใช่จุดจบของอาชีพอีกต่อไป
RDS มีกลไกการสำรองข้อมูลที่ผิดปกติอย่างมาก:
การสำรองข้อมูลเต็มรูปแบบอัตโนมัติรายวัน: ในช่วงเวลาธุรกิจที่คุณระบุระบบจะถ่ายภาพ "ทั้งตัว" (สแนปชอต) ของฐานข้อมูลโดยอัตโนมัติทุกวัน
การสำรองข้อมูลบันทึกอย่างต่อเนื่อง: RDS รวบรวมข้อมูลบันทึกธุรกรรมของคุณได้ตลอดเวลา
จากสองประเด็นนี้ RDS ใช้ไฟล์
"การกู้คืนณจุดใดๆก่อนหมดอายุ" (Point-in-Time Recovery)
ฟังก์ชันของตราบเท่าที่ในช่วงระยะเวลาการสำรองข้อมูลของคุณ (สูงสุด35วัน) คุณสามารถกู้คืนฐานข้อมูลเป็น
สถานะของนาทีและวินาทีใดๆในช่วง35วันที่ผ่านมา
。
ตัวอย่างเช่นคุณบังเอิญทำผิดพลาดเมื่อเวลา15:00น. ของวันที่27พฤษภาคม2569
DELETE
คำชี้แจงคุณสามารถเลือกที่จะกู้คืนฐานข้อมูลเป็น14:59:59น. บนคอนโซล RDS จะสร้างอินสแตนซ์ฐานข้อมูลใหม่โดยอัตโนมัติซึ่งเต็มไปด้วยข้อมูลจากจุดเวลาที่แม่นยำนั้น
4.ความยืดหยุ่น: ปรับการกำหนดค่าเช่นการบิดก๊อกน้ำ
ในสภาพแวดล้อมแบบเดิมการอัปเกรดการกำหนดค่าฐานข้อมูลเป็นการต่อสู้ที่ยากลำบากคุณต้องซื้อหน่วยความจำใหม่ฮาร์ดไดรฟ์ใหม่
จากนั้นปิดเครื่องย้ายข้อมูลและระบบขัดข้องหากคุณไม่ใส่ใจ
ใน Amazon RDS ทรัพยากรฮาร์ดแวร์ "ยืดหยุ่น"
การอัปเกรดทรัพยากรคอมพิวเตอร์: วันนี้เป็นช่วงนอกฤดูกาลคุณกำลังใช้อินสแตนซ์เล็กๆของ2คอร์4G หากคุณต้องการโปรโมตครั้งใหญ่ในเดือนหน้าคุณสามารถเปลี่ยนการกำหนดค่าเป็น16คอร์64G บนคอนโซลคลิกเพื่อยืนยันระบบจะเปลี่ยนสั้นๆทำการอัพเกรด
การขยายพื้นที่จัดเก็บโดยอัตโนมัติ: ในอดีตฉันกลัวมากที่สุดว่าฮาร์ดดิสก์จะเต็มและทำให้ฐานข้อมูลหยุดทำงาน RDS รองรับ "การขยายพื้นที่จัดเก็บอัตโนมัติ" เมื่อพบว่าพื้นที่ที่เหลือน้อยกว่า10% มันจะขยายความจุของฮาร์ดดิสก์โดยอัตโนมัติในพื้นหลังกระบวนการทั้งหมดไม่มีความรู้สึกต่อธุรกิจคุณไม่จำเป็นต้องสนใจด้วยซ้ำว่ามันจะเติบโตขึ้นเมื่อใด
มือใหม่หลีกเลี่ยงหลุม: คู่มือความจริงสำหรับการใช้ RDS
แม้ว่า RDS จะทรงพลังแต่ก็ไม่ใช่เวทมนตร์มือใหม่มีหลุมที่เหยียบง่ายมากเมื่อใช้งานนี่คือการฉีดวัคซีนล่วงหน้า:
ไม่มีสิทธิ์รูท (ระดับระบบ): การใช้ RDS หมายความว่าคุณไม่สามารถล็อกอินเข้าสู่เซิร์ฟเวอร์ที่ฐานข้อมูลตั้งอยู่ผ่าน SSH และคุณจะไม่ได้รับสิทธิ์ OS-level ของฐานข้อมูลหากคุณต้องแก้ไขพารามิเตอร์เคอร์เนลหลักที่ด้านล่างของระบบปฏิบัติการหรือติดตั้งปลั๊กอินภายในของบุคคลที่สามแปลกๆบนเซิร์ฟเวอร์ RDS อาจไม่เหมาะสำหรับคุณ (คุณต้องไปที่ EC2เพื่อติดตั้งฐานข้อมูลของคุณเอง) การวางตำแหน่งของ RDS คือการเสียสละส่วนหนึ่งของเสรีภาพที่รุนแรงเพื่อแลกกับความไร้กังวลขั้นสูงสุด
Multi-AZ ไม่ได้ใช้เพื่อปรับปรุงประสิทธิภาพ: หลายคนเข้าใจผิดคิดว่าการเปิดฐานข้อมูล Multi-AZ จะเร็วขึ้นในทางตรงกันข้ามเนื่องจากไลบรารีหลักต้องเขียนข้อมูลไปยังไลบรารีสแตนด์บายของห้องคอมพิวเตอร์อื่นแบบเรียลไทม์ความล่าช้าในการเขียนข้อมูลจะเพิ่มขึ้นเล็กน้อยเนื่องจากข้อจำกัดทางกายภาพของการส่งผ่านเครือข่ายใช้เพื่อช่วยชีวิต (ความพร้อมใช้งานสูง) ไม่ใช่เพื่อเร่งความเร็ว (ประสิทธิภาพสูง) หากต้องการเร่งความเร็วให้ไปที่สำเนาอ่านอย่างเดียว (Read Replicas)
ให้ความสนใจกับกลุ่มความปลอดภัย: ฉันเพิ่งสร้าง RDS และพบว่าไม่สามารถเชื่อมต่อได้? สาเหตุ99% คือทีมความปลอดภัยไม่ได้รับการจับคู่ที่ดี RDS ปฏิเสธการเชื่อมต่อภายนอกโดยค่าเริ่มต้นคุณต้องปล่อยที่อยู่ IP หรือเครือข่ายส่วนตัว (VPC) ที่เซิร์ฟเวอร์ตั้งอยู่อย่างชัดเจนในกลุ่มความปลอดภัยของ AWS และเปิดพอร์ตที่เกี่ยวข้อง (เช่น MySQL 3306) เพื่อให้โปรแกรมของคุณสามารถพูดคุยกับมันได้อย่างราบรื่น
บทสรุป
หากคุณเปรียบเทียบฐานข้อมูลที่สร้างขึ้นเองกับ "ซื้อที่ดินย้ายอิฐและสร้างบ้าน" Amazon RDS ก็คือ "อพาร์ทเมนต์ที่มีการจัดการเต็มรูปแบบระดับไฮเอนด์ที่มีปกแข็ง" คุณจ่ายเงินเพื่อย้ายเข้าทรัพย์สินน้ำและไฟฟ้าการรักษาความปลอดภัยและการทำความสะอาดทั้งหมดจะทำเพื่อคุณคุณต้องมุ่งเน้นไปที่การมีความสุขกับชีวิต (การพัฒนาธุรกิจ) เท่านั้น
แม้ว่าราคาของ RDS ดูเหมือนจะแพงกว่าการซื้อเซิร์ฟเวอร์คลาวด์ (EC2) ที่มีการกำหนดค่าเดียวกันหากคุณใช้จ่ายในการสำรองข้อมูลการกู้คืนระบบและการตรวจสอบ
ทรัพยากรมนุษย์
ต้นทุนเวลา
, และระบบอาจหยุดทำงาน
การสูญเสียทางธุรกิจ
นับรวมแล้ว RDS เป็นทางเลือกที่คุ้มค่าและชาญฉลาดที่สุดสำหรับองค์กรสมัยใหม่ในการไปที่ระบบคลาวด์
