วิธีการย้ายข้อมูลของ Amazon ElastiCache for Redis ไปยังภูมิภาคอื่น
สิ่งที่ต้องมี
EC2
สร้าง EC2 โดยดูวิธีการสร้างตามบทความด้านล่าง
Amazon ElastiCache for Redis
สร้าง database ขึ้นมาและลองเชื่อมต่อกับ EC2 โดยดูบทความด้านล่าง
ทรัพยากรต้นทางทั้งหมดจะถูกสร้างที่สิงคโปร์
1. สร้าง S3 Bucket
เข้ามาที่คอนโซลของ Amazon S3 ใน Singapore Region แล้วจึงคลิกที่ “Create bucket”
ตั้งชื่อ Bucket ตามที่ต้องการ และติ๊กที่ ACLs enabled จากนั้นคลิก “Create bucket”
เข้ามาที่ bucket ที่เราเพิ่งสร้าง มาที่หัวข้อ Permissions
เลื่อนลงมาที่หัวข้อ Access control list (ACL) จากนั้นคลิก “Edit”
คลิกที่ Add grantee และใส่ข้อมูลตามนี้ เพื่อให้ Amazon ElastiCache สามารถเขียนข้อมูลลงใน S3 bucket ได้
Canonical Id : 540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353
Objects: List, Write
Bucket ACL: Read, Write
อ้างอิง Canonical Id จาก Exporting a backup
จากนั้นคลิก Save changes
2. การทำ Backup ของ Amazon ElastiCache for Redis
กลับมาที่หัวข้อ Redis OSS caches
เลือก database จากนั้นคลิกที่ Actions > Backup
ตั้งชื่อที่หัวข้อ New backup name ตามที่ต้องการ จากนั้นคลิก “Create backup”
เลือก backup ที่เพิ่งจะสร้าง แล้วคลิกที่ Actions > Export
ตั้งชื่อ backup ที่จะย้ายไปยัง S3 bucket และเลือก bucket ที่เพิ่งจะสร้างไป
จากนั้นคลิก “Export”
เมื่อการ Export เสร็จแล้วสามารถไปตรวจสอบ backup ได้ที่ S3 bucket
เพียงเท่านี้การทำ Backup ของ Amazon ElastiCache ไปยัง S3 bucket ก็เสร็จเรียบร้อย
3. การย้าย Backup จาก S3 bucket ไปยัง Region อื่น
สามารถดูขั้นตอนการย้ายข้อมูลข้าม region ระหว่าง S3 bucket ได้ที่บทความด้านล่าง
หลังจากนี้ region ที่เราจะทำการทดลองต่อ จะอยู่ใน region ปลายทาง
4. การ restore จาก backup
เข้ามาที่ S3 bucket ปลายทางที่ย้าย backup มาแล้ว
ไปที่หัวข้อ Permissions แล้วเลื่อนมาที่หัวข้อ Bucket policy จากนั้นคลิก “Edit”
ใส่ policy ตามด้านล่าง เพื่อให้ Amazon ElastiCache สามารถอ่านข้อมูล backup จาก S3 bucket ปลายทางได้ โดยทำการเปลี่ยนชื่อในช่อง [Region ปลายทาง], [ชื่อ S3 bucket ปลายทาง] และ [ที่อยู่ของ backup] ด้วย เมื่อเสร็จแล้วคลิก “Save changes”
{
"Version": "2012-10-17",
"Id": "Policy15397346",
"Statement": [
{
"Sid": "Stmt15399483",
"Effect": "Allow",
"Principal": {
"Service": "[Region ปลายทาง].elasticache-snapshot.amazonaws.com"
},
"Action": [
"s3:GetObject",
"s3:ListBucket",
"s3:GetBucketAcl"
],
"Resource": [
"Arn:aws:s3:::[ชื่อ S3 bucket ปลายทาง]",
"Arn:aws:s3:::[ที่อยู่ของ backup]"
]
}
]
}
กลับมาที่ Amazon ElastiCache หัวข้อ Redis OSS caches
ให้คลิกที่ “Create Redis OSS cache”
ครั้งนี้เราจะทำการสร้าง database จาก backup ของ S3 bucket โดยตั้งค่าตามรูปด้านล่าง ครั้งนี้เลือกเป็น Restore from backup
ซึ่งในส่วนของ location ให้ใส่ path ที่ backup อยู่
หลังจากนี้จะเป็นการตั้งค่าที่เหมือนกับตอนสร้าง database ตัวแรกเลย
เมื่อสร้างเสร็จแล้ว ต่อไปจะทดลองเชื่อมต่อ EC2
5. ตรวจสอบด้วยการเชื่อมต่อ EC2
เชื่อมต่อ EC2 ด้วย SSH (สร้างใหม่ใน region ปลายทาง)
เมื่อทดลองค้นหาด้วยคำสั่ง set
ข้อมูลที่เพิ่มไว้ก่อนหน้านี้ก็จะขึ้นมา สรุปได้ว่าการ backup ได้ข้อมูลที่ครบถ้วน
การลบ resource
ลบ Redis OSS cache
เลือก database ที่ต้องการลบ จากนั้นคลิก Actions > Delete
ทำการยืนยันลบอีกครั้ง สามารถเลือกได้ว่าจะให้สร้าง backup หรือไม่ เมื่อเสร็จแล้วคลิก “Delete”
ลบ Backup
เลือก backup ที่ต้องการลบ จากนั้นคลิก Actions > Delete
ยืนยันการลบอีกครั้ง
ลบ S3 bucket
สามารถดูขั้นตอนการลบ S3 bucket ได้ที่บทความด้านล่าง หัวข้อ "การลบ Buckets ใน Amazon S3"
สรุป
การย้ายข้อมูลไปยัง region อื่นของ Amazon ElastiCache ยังไม่สามารถทำได้โดยตรง จำเป็นต้องทำผ่านบริการอื่นอย่าง Amazon S3