วิธีการย้ายข้อมูลของ Amazon RDS for MySQL ไปยัง Region อื่นด้วย AWS Backup
ในบทความนี้จะใช้ RDS database ที่เป็น MySQL ในการทดสอบ ซึ่งเป็นหนึ่งใน engine หลายๆตัวของ RDS
ซึ่งบางวิธีการย้ายข้อมูลก็ไม่ได้รองรับกับ engine ทุกตัว ซึ่งผมจะระบุว่าวิธีการไหนรองรับ engine ตัวไหนบ้าง
สิ่งที่ต้องมี
ในบทความนี้ เราจะทำการย้าย Amazon RDS for MySQL ไปยัง Region อื่น
โดยก่อนอื่น เราจะสร้าง EC2 เพื่อทำการเชื่อมต่อไปยัง RDS แล้วทำการสร้างข้อมูลใน Database ขึ้น
เพื่อพิสูจน์ว่า หลังจากการการย้ายเสร็จแล้ว เราจะได้ Amazon RDS for MySQL ที่มีข้อมูลเหมือนเดิม
สำหรับวิธีสร้าง EC2 และ RDS สามารถดูวิธีการสร้างตามบทความด้านล่าง
สำหรับ EC2
สำหรับ RDS
*ขั้นตอน “การ Login เชื่อมต่อไปยัง EC2” ให้ใช้คำสั่ง “sudo yum install -y mariadb105” แทนคำสั่ง “yum install -y mariadb”
หลังจากที่เตรียมทรัพยากรเรียบร้อยแล้ว
ผมจะทำการสร้างข้อมูลใน RDS database ตามรูปด้านล่าง
ขั้นตอนการทำ
วิธีการนี้รองรับ engine ทั้งหมดของ RDS ได้แก่
- Amazon Aurora
- MySQL
- PostgreSQL
- MariaDB
- Oracle
- Microsoft SQL Server
- IBM Db2
เข้ามาที่ AWS Backup เลือกหัวข้อ Vaults แล้วคลิก “Create new vault”
ตั้งชื่อ vault ตามที่ต้องการแล้วคลิก “Create vault”
มาที่หัวข้อ Recovery points แล้วคลิกที่ “Create on-demand backup”
ตั้งค่าตามรูปด้านล่าง
Resource type : RDS
Database name : เลือก database ที่เราต้องการจะ backup
Backup window : Create backup now
Total retention period : เลือกระยะเวลาตามที่ต้องการ
Backup vault : เลือก vault ที่ต้องการ จากนั้นคลิก “Create on-demand backup”
จากนั้นจะถูกพามาที่ Jobs ในแท็ป Backup jobs
กลับมาที่ Vaults โดยเลือกเมนูที่แถบด้านซ้ายแล้วเลือก vault ที่เราสร้างขึ้น
มาที่หัวข้อ Recovery points รอให้สถานะขึ้นเป็น Completed จากนั้นเลือก Actions > Copy
เลือก Region ปลายทาง vault และ retention period ตามที่ต้องการ ซึ่งหากยังไม่มี vault ใน Region นั้นๆ ก็ให้สร้างไว้ด้วยหรือสามารถสร้างใหม่โดยคลิกที่ “Create new vault”
จากนั้นจะถูกพามาที่ Copy Jobsในแท็ป Copy jobs
เมื่อลองตรวจสอบที่ vault ใน Region ไทยก็จะมี backup ที่ถูก copy มา
เลือก backup จากนั้นคลิก Actions > Restore
จากนั้นตั้งค่าเหมือนตอนตั้งค่า RDS
เพียงเท่านี้การสร้าง database จาก backup ก็เสร็จเรียบร้อย
เมื่อทดลองเชื่อมต่อเข้าไปที่ database ตัวใหม่ก็จะมีข้อมูลที่เหมือนกับ database ต้นฉบับ
เพิ่มเติม
สิ่งที่การใช้ AWS Backup แตกต่างจากการสร้าง Snapshot ก็คือ AWS Backup มีฟังก์ชั่น Backup plans ซึ่งจะช่วย Backup อัติโนมัติตามที่เรากำหนด
มาที่หัวข้อ Backup plans แล้วคลิกที่ “Create backup plan”
ตั้งชื่อ plan แล้วคลิก “Create plan”
จากนั้นจะมาที่ Create rule ให้ตั้งค่าตามที่ต้องการหรือตั้งค่าตามรูปด้านล่างก็ได้
Backup rule name : ตั้งชื่อตามที่ต้องการ
Backup vault : เลือก vault ที่เราต้องสร้างมา
Backup frequency : ตั้งค่าความถี่การ backup ตามที่ต้องการ
Start time : ตั้งเวลาในการ backup
Start within : เริ่มทำการ backup ภายในระยะเวลาเท่าไหร่
Complete within : backup เสร็จภายในระยะเวลาเท่าไหร่
ในส่วนของ Copy to destination ให้เลือก Region และ vault ที่เราต้องการจะ copy ข้อมูลไป จากนั้นคลิก “Add backup rule”
ต่อไปจะเป็นการตั้งค่า resources ที่เราต้องการนำมา backup
ในส่วนของ General ให้ตั้งชื่อตามที่ต้องการ
ส่วนของ Resource selection ให้ตั้งค่าตามนี้
Define resource selection : Include specific resource types
Resource type : RDS
Database names : เลือก Database ที่เราต้องการจะ backup
จากนั้นคลิก “Assign resources”
เมื่อถึงเวลาที่เราทำการตั้ง rule เอาไว้เราสามารถเข้ามาตรวจสอบได้ที่ Jobs
และเมื่อการ backup สำเร็จ ก็จะมี backup ขึ้นที่ Recovery points ใน vault ปลายทางที่เราตั้งค่าไว้
สรุป
การใช้ AWS Backup ก็เป็นอีกหนึ่งวิธีที่สามารถย้ายข้อมูลของ RDS ได้ นอกจากนี้ AWS Backup ยังรองรับบริการอื่นๆอีกนอกเหนือจาก RDS หวังว่าบทความนี้จะเป็นประโยชน์กับผู้ที่ต้องการจะย้ายข้อมูลไปยัง Region อื่น โดยเฉพาะ AWS Thailand Region