Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

ทำความเข้าใจกับกลยุทธ์ Amazon Aurora HA

หากคุณกำลังอ่านข้อความนี้ คุณอาจเคยได้ยินเกี่ยวกับ Amazon Aurora อย่างที่คุณทราบ Amazon Aurora เป็นบริการ PaaS ที่ AWS ให้บริการโดยเป็นส่วนหนึ่งของชุดบริการ RDS โดยให้ระบบจัดการฐานข้อมูลเชิงสัมพันธ์ที่มีการจัดการเต็มรูปแบบ (RDBMS) ซึ่งมาในสองรสชาติ ได้แก่ MySQL และ Postgres โดยที่ยังคงความเข้ากันได้ของสายกับทั้งสองอย่าง แต่สิ่งนี้ส่งผลต่อกลยุทธ์และตัวเลือกความพร้อมใช้งานสูงของคุณอย่างไร

คุณอาจสงสัยว่า Amazon Aurora แตกต่างจาก MySQL หรือ PostgreSQL บน Amazon RDS อย่างไร สิ่งเหล่านี้เป็นบริการ RDBMS ที่มีการจัดการอย่างสมบูรณ์เช่นกันใช่ไหม ใช่ แต่โดยพื้นฐานแล้วเป็นการใช้งานโอเพ่นซอร์สมาตรฐานที่ทำงานบนฟลีตของอินสแตนซ์ EC2 และจัดการโดย AWS ความแตกต่างที่สำคัญของ Aurora คือ AWS แยกกลไกการจัดเก็บข้อมูลออกจากกลไกฐานข้อมูล AWS ใช้หลักการการแยกข้อกังวลกับฐานข้อมูลโอเพนซอร์ส

การแยกข้อกังวล

โดยปกติ RDBMS จะต้องทำงานบนฮาร์ดแวร์ที่มีอยู่ทั่วไป ซึ่งหมายความว่าการใช้งานต้องทำงานภายในข้อจำกัดที่กำหนดโดยระบบปฏิบัติการและฮาร์ดแวร์เพื่อให้คุณลักษณะทั้งหมดที่เราคาดหวังจากฐานข้อมูลสมัยใหม่บรรลุผลสำเร็จ เช่น:การประมวลผล DML และ DDL, ธุรกรรมที่สอดคล้องกับ ACID, การจำลองแบบ, ความพร้อมใช้งานสูง (HA) และทนต่อความผิดพลาด อย่างไรก็ตาม หากไม่จำเป็นต้องใช้งานบนฮาร์ดแวร์ที่มีอยู่ทั่วไป แต่ในสภาพแวดล้อมที่ออกแบบมาโดยเฉพาะสำหรับฐานข้อมูลเท่านั้น ความรับผิดชอบต่างๆ สามารถแยกออกเป็นชั้นๆ ได้ ทำให้กลไกฐานข้อมูลและเอ็นจิ้นการจัดเก็บข้อมูลสามารถมุ่งเน้นและเชี่ยวชาญเป็นพิเศษ ผลลัพธ์ที่ได้คือความพร้อมใช้งานสูงและประสิทธิภาพที่เพิ่มขึ้นอย่างมาก โดยมีประสิทธิภาพมากกว่า MySQL ถึง 5 เท่า และมากกว่า PostgreSQL มาตรฐานถึง 3 เท่า

โอเค มันเร็วกว่า แต่ฐานข้อมูลเฉพาะและเอ็นจิ้นการจัดเก็บข้อมูลช่วยเราด้วย HA ได้อย่างไร มีหลายวิธีที่ช่วยให้เราบรรลุ HA ก่อนที่เราจะพูดถึงเรื่องนี้ เรามาดูกันว่าเครื่องมือจัดเก็บข้อมูล Aurora ทำงานอย่างไรเพื่อช่วยให้เราเข้าใจว่า HA มาจากการแยกส่วนนี้อย่างไร

เมื่อข้อมูลถูกเขียนไปยังเอ็นจิ้นการจัดเก็บข้อมูล Aurora เอ็นจิ้นจะดูแลให้แน่ใจว่าข้อมูลถูกเขียนอย่างสม่ำเสมอ ถูกต้อง และทนทาน ข้อมูลถูกเขียนในสองตำแหน่งในแต่ละโซนความพร้อมใช้งานสามแห่ง รวมเป็นหกแห่งที่แตกต่างกัน เอ็นจิ้นการจัดเก็บจัดการความซับซ้อนของการทำให้แน่ใจว่าทุกอย่างเกิดขึ้นอย่างถูกต้อง แม้ว่าอาจจะดูเรียบง่ายเกินไป แต่โดยพื้นฐานแล้วกลไกฐานข้อมูลสามารถ "ยิงแล้วลืม" ได้โดยไม่ต้องกังวลอีกต่อไปว่าข้อมูลถูกเขียน บันทึกธุรกรรม ความเป็นไปได้ในการกู้คืน ฯลฯ

การนำข้อกังวลด้านการจัดเก็บออกจากกลไกฐานข้อมูล กลยุทธ์ HA จำนวนหนึ่งจะพร้อมใช้งาน

อ่านแบบจำลอง

ในขณะที่แนวคิดของ Read Replicas เกิดขึ้นก่อน Aurora การใช้งานในโซลูชันโอเพนซอร์สนั้นเกี่ยวข้องกับการจัดส่งบันทึกหรือการเล่นซ้ำของแบบสอบถาม ด้วย Aurora ReadReplicas มีสิทธิ์เข้าถึงแบบอ่านอย่างเดียวในที่เก็บข้อมูลเดียวกันกับต้นแบบ ซึ่งหมายความว่ามีเวลาแฝงในการจำลองน้อยมากตั้งแต่ข้อมูลเวลาที่เขียนจนถึงเวลาที่ Read Replica จะมองเห็นได้ (ความล่าช้าในการจำลองจะเป็นการเรียกชื่อผิดในสถานการณ์นี้) เมื่อจำเป็นต้องใช้ Read Replica หลายตัว Read Replica ทั้งหมดจะเห็นข้อมูลเดียวกัน ลบโอเวอร์เฮดและความซับซ้อนที่วางไว้บนต้นแบบ ซึ่งพบว่ามีการใช้งาน MySQL และ PostgreSQL ที่ไม่ได้มาตรฐาน คุณลักษณะเหล่านี้มารวมกันเพื่ออนุญาตให้ Read Replica เข้าควบคุมทันทีหากต้นแบบล้มเหลว นอกจากนี้ AWS ยังจัดการการแทนที่อินสแตนซ์ที่ล้มเหลว เพื่อให้เป็นไปตามความจุที่จัดเตรียมไว้ ด้วยอินสแตนซ์ใหม่และอัปเดต DNS เพื่อชี้ไปที่ต้นแบบใหม่

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

การปรับขนาดอัตโนมัติ

การปรับขนาดอัตโนมัติคือความสามารถในการปรับขนาดออกในแนวนอน (เพิ่มอินสแตนซ์) หรือปรับขนาดเข้า (ลบอินสแตนซ์) จากชุดเซิร์ฟเวอร์ที่พร้อมใช้งานของคุณ คุณอาจเคยได้ยินเรื่องการปรับขนาดอัตโนมัติสำหรับอินสแตนซ์ EC2 แต่คุณรู้หรือไม่ว่าคุณสามารถมีความยืดหยุ่นในAurora Read Replicas ได้เช่นกัน โดยทั่วไป คุณจะกำหนดค่าจำนวนขั้นต่ำของ Read Replica เพื่อจัดการโหลดพื้นฐานของคุณ และมีนโยบายการปรับขนาดอัตโนมัติเพื่อเพิ่มหรือลบอินสแตนซ์เมื่อความต้องการเปลี่ยนแปลง ความสามารถในการใช้ประโยชน์จากความยืดหยุ่นเป็นอีกปัจจัยหนึ่งมาจากข้อเท็จจริงที่ว่ากลไกการจัดเก็บข้อมูลแยกจากกลไกฐานข้อมูล

ตัวอย่างสถานการณ์ที่เป็นประโยชน์คือไซต์อีคอมเมิร์ซ B2B จะมีการจราจรหนาแน่นในช่วงเวลาทำการของวันธรรมดา แต่มีน้อยมากในชั่วข้ามคืนและวันหยุดสุดสัปดาห์ รูปภาพและคำอธิบายเนื้อหามีอัตราส่วนการอ่านต่อเขียนสูงและได้ประโยชน์จากทั้ง Read Replicas และ Autoscaling การปรับขนาด ReadReplicas อัตโนมัติช่วยให้คุณตอบสนองความต้องการในช่วงเวลาที่มีผู้ใช้บริการสูงสุด พร้อมลดต้นทุนในช่วงนอกเวลาทำการ

การจำลองแบบข้ามภูมิภาค

หากคุณต้องการเพิ่มความพร้อมใช้งานในระดับถัดไป ให้ทำซ้ำไปยังภูมิภาคอื่น ด้วยการให้กลไกฐานข้อมูลจำลองข้อมูลไปยังภูมิภาคอื่น มันสามารถอ่านในเครื่องหรือใช้ในกรณีที่เกิดความล้มเหลวของภูมิภาคหลัก อินสแตนซ์ในภูมิภาครองจะถือว่าเป็น Read Replica (นี่ไม่ใช่มัลติมาสเตอร์) แต่ก็สามารถมี Read Replica ของตัวเองหรือกลายเป็นมาสเตอร์ได้หากภูมิภาคหลักล้มเหลว

มีสาเหตุหลายประการที่จำเป็นต้องมีการจำลองแบบข้ามภูมิภาค บางครั้งข้อมูลมีความสำคัญเกินกว่าจะจัดเก็บไว้ในพื้นที่ทางภูมิศาสตร์เดียว ซึ่งอาจเนื่องมาจากความต่อเนื่องทางธุรกิจ กฎระเบียบ หรือเหตุผลทางการเงิน อีกเหตุผลหนึ่งคือเวลาแฝงที่ลดลงระหว่างผู้ใช้และแบ็กเอนด์ฐานข้อมูล การใช้อีคอมเมิร์ซเป็นตัวอย่างอีกครั้ง การเปลี่ยนแปลงในรูปภาพและคำอธิบายสามารถนำไปใช้กับต้นแบบในภูมิภาคเดียว แต่สามารถเผยแพร่ทั่วโลกเพื่อให้อ่านได้ในเครื่อง

การจำลองภายนอก

แล้วสถานการณ์ที่คุณต้องการข้อมูลภายนอกคลัสเตอร์ Aurora เป็นอย่างไร มีสถานการณ์ที่นโยบายขององค์กรหรือสภาพแวดล้อมด้านกฎระเบียบเรียกร้อง หรือคุณจำเป็นต้องประมวลผลข้อมูลหรือเรียกใช้รายงานนอก Aurora กรณีเหล่านี้ทั้งหมดสามารถจัดการได้โดยใช้ การจำลองภายนอก

เป็นเรื่องง่ายที่จะทำให้ Aurora จำลองข้อมูลไปยังอินสแตนซ์ Amazon EC2 MySQL, อินสแตนซ์ Amazon EC2 ที่เรียกใช้ MySQL หรือแม้แต่อินสแตนซ์ MySQL ที่ทำงานในศูนย์ข้อมูลองค์กรของคุณ เมื่อใช้การจำลองแบบทางเดียวนี้ ข้อมูลของคุณจะไม่ซิงโครไนซ์กับคลัสเตอร์ Aurora เสมอ และพร้อมใช้งานนอก Aurora

ไร้เซิร์ฟเวอร์

สุดท้าย แต่ไม่ท้ายสุดคือไม่มีเซิร์ฟเวอร์ บางทีหนึ่งในการพัฒนาที่สำคัญที่สุดสำหรับความพร้อมใช้งานและความสามารถในการขยายคือการเพิ่มสมการแบบไร้เซิร์ฟเวอร์ลงในสมการ เห็นได้ชัดว่าไม่มีเซิร์ฟเวอร์ไม่ได้หมายความว่าไม่มีเซิร์ฟเวอร์ หมายความว่าคุณไม่ต้องกังวลกับการจัดเตรียม การกำหนดค่า การปรับขนาด หรือการบำรุงรักษาเซิร์ฟเวอร์ใดๆ

ในการกำหนดค่า Aurora Serverless คุณต้องระบุความจุที่พร้อมใช้งานสำหรับแอปพลิเคชันของคุณและ AWS จะจัดการรายละเอียดเพื่อให้แน่ใจว่าความจุนั้นพร้อมใช้งานตามความต้องการ เมื่อลูกค้าของคุณต้องการ สำหรับแบบไร้เซิร์ฟเวอร์ เลเยอร์เพิ่มเติมคือ aproxy layer ถูกเพิ่มลงในเลเยอร์ที่มีอยู่ 2 เลเยอร์ นั่นคือเอ็นจิ้นฐานข้อมูลและเอ็นจิ้นการจัดเก็บ

AWS รักษาฟลีตของพร็อกซีเซิร์ฟเวอร์ที่รับฟังคำขอที่เข้ามา นอกจากนี้ ความจุ DB อันอบอุ่นกำลังรอให้บริการตามคำขอ เมื่อการสืบค้นข้อมูลครั้งแรกของคุณเข้ามา ฟลีตพร็อกซีจะได้รับ ร้องขออินสแตนซ์จากวอร์มพูล และส่งต่อคำขอไปยังอินสแตนซ์นั้น หลังจากที่จัดสรรไว้สำหรับการใช้งานของคุณ ยิ่งไปกว่านั้น จำนวนของอินสแตนซ์ที่จัดสรรสำหรับการใช้งานของคุณนั้นไม่ยืดหยุ่นและขยายเข้าและออกตามความต้องการและขีดจำกัดที่คุณระบุในการกำหนดค่าออโรร่าแบบไร้เซิร์ฟเวอร์ เช่นเดียวกับกลยุทธ์ก่อนหน้านี้ ความสามารถในการจัดสรรกลไกฐานข้อมูลให้กับคุณแบบไดนามิกนั้นเป็นไปได้โดยการแยกฐานข้อมูลและที่เก็บข้อมูล ตามการกำหนดค่าของคุณ อินสแตนซ์ฐานข้อมูลยังคงถูกกำหนดให้กับคุณและพร้อมใช้งานทันที หลังจากหมดเวลาหมดเวลา อินสแตนซ์จะกลับสู่วอร์มพูล คุณจะถูกเรียกเก็บเงินสำหรับทรัพยากรที่คุณใช้เท่านั้น เมื่อมีการจัดสรรอินสแตนซ์สำหรับการใช้งานของคุณ คุณจะถูกเรียกเก็บเงินสำหรับอินสแตนซ์นั้นบวกกับพื้นที่เก็บข้อมูลที่ใช้ไป เมื่อไม่ได้จัดสรร คุณจะถูกเรียกเก็บเงินสำหรับพื้นที่เก็บข้อมูลที่ใช้ไปเท่านั้น

สำหรับปริมาณงานที่ขัดขวาง เช่น การพัฒนาและสภาพแวดล้อมการทดสอบ หรือแอปพลิเคชันใหม่ที่มีประวัติไม่เพียงพอที่จะคาดการณ์รูปแบบการใช้งาน การใช้เซิร์ฟเวอร์แบบไร้เซิร์ฟเวอร์เป็นวิธีที่จะไป คุณไม่ต้องจ่ายสำหรับทรัพยากรที่คุณไม่ได้ใช้อีกต่อไป ไม่ต้องกังวลกับการตรวจสอบให้แน่ใจว่าทีมพัฒนาได้ปิดไฟก่อนออกเดินทางในช่วงสุดสัปดาห์ และคุณจะไม่ถูกปลุกให้ตื่นกลางดึกเพื่อปรับความจุเพราะผู้ใช้ของคุณ ' เขตเวลาตรงกับเขตการนอนหลับของคุณ

สรุปผล

Amazon Aurora สร้างขึ้นโดยคำนึงถึงความพร้อมใช้งาน ความทนทาน และความสามารถในการปรับขนาด หากใช้เหมือนกับการใช้งานโอเพนซอร์สมาตรฐาน คุณจะมีฐานข้อมูลที่มั่นคง เชื่อถือได้ และมีประสิทธิภาพ เมื่อมองลึกลงไปอีกเล็กน้อยเกี่ยวกับความสามารถของ Aurora และรูปแบบที่จะใช้ประโยชน์ได้ คุณจะใช้โซลูชันเพื่อตอบสนองความต้องการของคุณได้ ตั้งแต่การอ่านออฟโหลดในเครื่องไปจนถึงความพร้อมใช้งานแบบกระจายทั่วโลก

ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม