AWS: การตั้งค่าหลายภูมิภาคโดยใช้อินสแตนซ์ RDS เดียว


11

ฉันพยายามปรับขนาดเว็บแอปพลิเคชันของเรา (PHP, MySQL, memcache) ในรูปแบบหลายภูมิภาค ขณะนี้เรากำลังใช้การตั้งค่ากับสองอินสแตนซ์ EC2 หลัง ELB และอินสแตนซ์ RDS ทั้งหมดในภูมิภาค US-EAST (เวอร์จิเนีย)

เราต้องการมีส่วนร่วมในภูมิภาค EU (ไอร์แลนด์) ด้วย ซึ่งหมายความว่าอย่างน้อย EC2 อินสแตนซ์ใหม่ที่นั่น (เหมือนกันกับที่อื่นให้บริการแอปพลิเคชันเดียวกัน)

ฉันได้คัดลอก AMI ที่ต้องการตั้งค่าอินสแตนซ์ใหม่ตั้งค่าการกำหนดค่า ELB เดียวกัน (จำเป็นสำหรับการยกเลิก SSL) และกำหนดเส้นทางตามเวลาแฝงที่กำหนดค่าใน Route53 และใช้งานได้ตามที่แนะนำ

แต่ลูกค้าจากสหภาพยุโรปมีปัญหาเรื่องความเร็ว นี่คือความจริงที่ว่าอินสแตนซ์ EU EC2 เชื่อมต่อกับอินสแตนซ์ RDS ที่ใช้ในสหรัฐอเมริกา เท่าที่ฉันรู้ว่า Amazon ยังไม่ได้เปิดใช้งานการจำลองแบบหลายภูมิภาค RDS

คุณมีข้อเสนอแนะเกี่ยวกับวิธีการตั้งค่าทั้งหมดอย่างรวดเร็วในขณะที่ใช้อินสแตนซ์ RDS เดี่ยวหรือไม่?

นอกจากนี้ความคิดทั่วไปเกี่ยวกับวิธีเพิ่มขนาด เป็นการดีที่เราต้องการใช้เทคโนโลยี RDS ต่อไปด้วยเหตุผลหลายประการ อย่างไรก็ตามฉันเปิดรับข้อเสนอแนะ (ฉันเดาว่าความคิดต่อไปคือการโฮสต์เซิร์ฟเวอร์ MySQL ของเราเอง)

คำตอบ:


5

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

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

แม้ว่าคุณจะย้ายออกจาก RDS และพยายามทำซ้ำข้อมูลของคุณระหว่างภูมิภาคไม่ว่าจะเป็น asynch หรือ synch ก็ตามคุณจะพบปัญหาเวลาในการตอบสนองซึ่งจะส่งผลเสียต่อผู้ใช้ของคุณ

วิธีที่ง่ายที่สุดคือการตั้งค่าเซิร์ฟเวอร์ RDS เฉพาะในสหภาพยุโรปและไม่แบ่งปันอะไรระหว่างอินสแตนซ์เหล่านี้


สวัสดี Guy ปัญหาที่นี่คือลูกค้าในสหภาพยุโรปและสหรัฐอเมริกาจำเป็นต้องเข้าถึงข้อมูลเดียวกัน มีวิธีแก้ปัญหา / ความคิดใด ๆ
ไอออน

มีการอัปเดตข้อมูลนี้บ่อยเพียงใด (หากไม่บ่อยครั้งคุณสามารถทำซ้ำระหว่างภูมิภาคได้)
Guy

ข้อมูลมีการปรับปรุงบ่อยครั้งโดยทั่วไป และพวกเขาจะเริ่มอัปเดตบ่อยขึ้นเมื่อแอปพลิเคชันเติบโตในผู้ใช้ ฉันคิดว่าเราต้องมองหาวิธีแก้ปัญหาอื่น ๆ
ไอออน

4

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


1
มีวิธีใด (กึ่ง) อัตโนมัติในการทำซ้ำอินสแตนซ์ RDS ในช่วงเวลาหรือไม่? ความคิดใด ๆ ฉันคิดว่าแบบจำลองนี้จะเป็นแบบอ่านอย่างเดียวใช่ไหม
ไอออน

AWS รองรับ read-replicas โดยค่าเริ่มต้นถูกต้อง: aws.amazon.com/rds/faqs/#86 - ฉันแน่ใจว่าเป็นไปได้ที่จะทำการอ่าน / เขียนการจำลอง แต่อยู่นอกขอบเขตของ SF (ฉันจะตรวจสอบกับเรา เว็บไซต์ DBA)
นาธาน C

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

2

เมื่อเร็ว ๆ นี้ AWS ได้ย้ายไปในทิศทางที่ผมเคยถามไว้ก่อนหน้านี้เกี่ยวกับในคำถามของฉันด้วยการประกาศRDS ข้ามภูมิภาคอ่านแบบจำลอง อย่างไรก็ตามนี่เป็นเพียงก้าวเล็ก ๆ ไปสู่การตั้งค่าหลายภูมิภาคอย่างแท้จริง


1

ฉันเชื่อว่านี่คือสิ่งที่คุณต้องการ การจำลองแบบ RDS ไปยัง EC2 กำลังใช้ mysql ในภูมิภาคอื่น

https://aws.amazon.com/about-aws/whats-new/2013/09/05/amazon-rds-new-data-migration-capabilities-mysql/


ยินดีต้อนรับสู่ Server Fault! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
slm

ขอบคุณดูเหมือนว่าน่าสนใจ! นี่คือลิงค์ที่เกี่ยวข้องเพิ่มเติม: docs.aws.amazon.com/AmazonRDS/latest/UserGuide/…
ไอออน

0

ทางออกหนึ่งที่เป็นไปได้ในการปรับปรุงเวลาแฝงอาจเป็นการใช้ Amazon ElastiCache (ซึ่งเป็น Memcached โดยทั่วไปภายใต้ฝาครอบ)

คุณจะต้องสร้าง ElastiCache Node ในแต่ละภูมิภาค (US-EST และ EU) และให้แอปพลิเคชันตรรกะ (EC2) ของคุณใช้โหนดแคชทุกครั้งที่ทำได้ หากคุณไปเส้นทางนี้คุณจะต้องสร้างแอปพลิเคชันของคุณอีกครั้ง 1) รู้ว่าควรแคชอะไรและเมื่อใดและ 2) เพื่อคว้ามากที่สุดเท่าที่จะทำได้จากโหนด ElastiCache ท้องถิ่น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.