วิธีการย้ายข้อมูลของ Amazon RDS for MySQL ไปยัง Region อื่นด้วย Read replica

วิธีการย้ายข้อมูลของ Amazon RDS for MySQL ไปยัง Region อื่นด้วย Read replica

บทความนี้จะมาแนะนำวิธีการ transfer ข้อมูลของ RDS ไปยัง Region อื่น เพื่อเป็นประโยชน์สำหรับผู้ที่ต้องการย้ายข้อมูลไปยัง AWS Thailand Region

ในบทความนี้จะใช้ RDS database ที่เป็น MySQL ในการทดสอบ ซึ่งเป็นหนึ่งใน engine หลายๆตัวของ RDS
ซึ่งบางวิธีการย้ายข้อมูลก็ไม่ได้รองรับกับ engine ทุกตัว ผมจะระบุว่าวิธีการไหนรองรับ engine ตัวไหนบ้างภายหลัง

อีกวิธีที่ย้ายข้อมูลของ RDS ได้คือการ replication ซึ่งจะแตกต่างกับการ backup ตรงที่หากเราทำการอัพเดทข้อมูลใน database ต้นฉบับ ก็จะมีการอัพเดทให้กับ database ที่ทำการคัดลอกด้วย

วิธีการย้ายข้อมูลของ Amazon RDS for MySQL ไปยัง Region อื่น ที่ผมได้ทดสอบจะมีอยู่ 3 วิธี
โดยในบทความนี้จะเกี่ยวกับการทำ Read replica
ผู้อ่านสามารถเลือกวิธีการตามที่สะดวกได้เลยครับ

บทความอื่นๆเกี่ยวกับ วิธีการย้ายข้อมูลของ Amazon RDS for MySQL ไปยัง Region อื่น

https://dev.classmethod.jp/articles/rds-mysql-cross-region-migration-snapshot/
https://dev.classmethod.jp/articles/rds-mysql-cross-region-migration-aws-backup/

สิ่งที่ต้องมี

ในบทความนี้ เราจะทำการย้าย Amazon RDS for MySQL ไปยัง Region อื่น
โดยก่อนอื่น เราจะสร้าง EC2 เพื่อทำการเชื่อมต่อไปยัง RDS แล้วทำการสร้างข้อมูลใน Database ขึ้น
เพื่อพิสูจน์ว่า หลังจากการการย้ายเสร็จแล้ว เราจะได้ Amazon RDS for MySQL ที่มีข้อมูลเหมือนเดิม
สำหรับวิธีสร้าง EC2 และ RDS สามารถดูวิธีการสร้างตามบทความด้านล่าง

สำหรับ EC2

https://dev.classmethod.jp/articles/how-to-install-amazon-linux-on-ec2/

สำหรับ RDS
*ขั้นตอน “การ Login เชื่อมต่อไปยัง EC2” ให้ใช้คำสั่ง “sudo yum install -y mariadb105” แทนคำสั่ง “yum install -y mariadb”

https://dev.classmethod.jp/articles/how-to-create-rds-and-connect-from-ec2/

หลังจากที่เตรียมทรัพยากรเรียบร้อยแล้ว
ผมจะทำการสร้างข้อมูลใน RDS database ตามรูปด้านล่าง

RDS transfer-1.1

ขั้นตอนการทำ

engine ที่รองรับกับวิธีการนี้ได้แก่

  • MySQL
  • MariaDB
  • PostgreSQL
  • Amazon Aurora

เริ่มด้วยการมาที่หัวข้อ Databases จากนั้นเลือก Actions > Create read replica

RDS transfer-29

ที่หัวข้อ Settings ให้ตั้งชื่อ database ตัวใหม่ที่ต้องการจะสร้าง

RDS transfer-30

จากนั้นเลือก Region ที่เราต้องการจะสร้าง replica database

RDS transfer-31

หัวข้อ Availability ในบทความนี้ขอเลือกเป็น Single DB instance และทำการเลือก security group สำหรับ database ที่เราสร้างไว้ใน Region ปลายทาง ซึ่งผมจะเลือกใช้ security group จากขั้นการ backup ก่อนหน้านี้

RDS transfer-32
RDS transfer-33

เพียงเท่านี้การสร้าง read-replica database ก็เสร็จเรียบร้อย จะเห็นที่แถบ Role ขึ้นคำว่า Replica
ในขณะที่ Database ตัวหลักจะเป็น Primary

RDS transfer-34

ทดลองอัพเดทข้อมูล database หลักที่อยู่ใน Region สิงคโปร์

RDS transfer-35

ข้อมูลนั้นก็จะถูกอัพเดทให้กับ read-replica database ด้วย
เมื่อลองอัพเดทข้อมูลที่ read-replica database จะพบว่าไม่สามารถบันทึกข้อมูลลงใน database ได้
เนื่องจาก read-replica database มีหน้าที่เพียงแค่อ่านข้อมูลเท่านั้น

RDS transfer-36

เราสามารถ promote ให้ read-replica database เปลี่ยนมาเป็นตัวหลักได้ด้วยการเลือกที่ read-replica database แล้วคลิก Actions > Promote

Screenshot 2024-12-20 165444

ในหน้านี้จะให้เลือกว่าจะทำการ backup หรือไม่
ซึ่งในบทความนี้ผมจะไม่ทำการ backup ด้วยการติ๊กเครื่องหมายถูกออก จากนั้นคลิกที่ “Promote read replica”

RDS transfer-37
RDS transfer-38

เพียงเท่านี้ read-replica database ก็จะกลายเป็นตัวหลักแล้ว โดย Role จะเปลี่ยนเป็นคำว่า Instance

RDS transfer-35

เมื่อทดสอบอัพเดทข้อมูลก็จะพบว่าสามารถอัพเดทข้อมูลได้แล้ว

RDS transfer-40

หากไม่ต้องการใช้งาน database ตัวหลักแล้ว ก็ให้ทำการลบทิ้งได้เลย โดยสามารถดูวิธีการลบได้ที่นี่

สรุป

การย้ายข้อมูลของ RDS มีหลายวิธีมากมาย ซึ่งในบทความนี้ได้เลือกมาเพียง 3 วิธีเพราะเป็นวิธีที่ไม่ซับซ้อนและเข้าใจง่าย หวังว่าบทความนี้จะเป็นประโยชน์กับผู้ที่ต้องการจะย้ายข้อมูลไปยัง Region อื่น โดยเฉพาะ AWS Thailand Region

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

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.