วิธีการย้ายข้อมูลของ Amazon ElastiCache for Redis ไปยังภูมิภาคอื่น

วิธีการย้ายข้อมูลของ Amazon ElastiCache for Redis ไปยังภูมิภาคอื่น

บทความนี้จะมาแนะนำวิธีการ transfer ข้อมูลของ Amazon ElastiCache ไปยังภูมิภาคอื่น โดยในบทความนี้จะเลือก engine เป็น Redis OSS เพื่อเป็นประโยชน์สำหรับผู้ที่ต้องการย้ายข้อมูลไปยัง Thailand Region ที่เพิ่งเปิดใช้งานไปเมื่อต้นเดือนมกราคม 2025 ที่ผ่านมา

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

EC2

สร้าง EC2 โดยดูวิธีการสร้างตามบทความด้านล่าง

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

Amazon ElastiCache for Redis

สร้าง database ขึ้นมาและลองเชื่อมต่อกับ EC2 โดยดูบทความด้านล่าง

https://dev.classmethod.jp/articles/amazon-elasticache-for-redis-th/

ทรัพยากรต้นทางทั้งหมดจะถูกสร้างที่สิงคโปร์

1. สร้าง S3 Bucket

เข้ามาที่คอนโซลของ Amazon S3 ใน Singapore Region แล้วจึงคลิกที่ “Create bucket”

Elasticache transfer-11

ตั้งชื่อ Bucket ตามที่ต้องการ และติ๊กที่ ACLs enabled จากนั้นคลิก “Create bucket”

Elasticache transfer-12

เข้ามาที่ bucket ที่เราเพิ่งสร้าง มาที่หัวข้อ Permissions
เลื่อนลงมาที่หัวข้อ Access control list (ACL) จากนั้นคลิก “Edit”

Elasticache transfer-13

คลิกที่ Add grantee และใส่ข้อมูลตามนี้ เพื่อให้ Amazon ElastiCache สามารถเขียนข้อมูลลงใน S3 bucket ได้

Canonical Id : 540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353
Objects: List, Write
Bucket ACL: Read, Write

อ้างอิง Canonical Id จาก Exporting a backup

จากนั้นคลิก Save changes

Elasticache transfer-14

2. การทำ Backup ของ Amazon ElastiCache for Redis

กลับมาที่หัวข้อ Redis OSS caches
เลือก database จากนั้นคลิกที่ Actions > Backup

Elasticache transfer-15

ตั้งชื่อที่หัวข้อ New backup name ตามที่ต้องการ จากนั้นคลิก “Create backup”

Elasticache transfer-16

เลือก backup ที่เพิ่งจะสร้าง แล้วคลิกที่ Actions > Export

Elasticache transfer-17

ตั้งชื่อ backup ที่จะย้ายไปยัง S3 bucket และเลือก bucket ที่เพิ่งจะสร้างไป
จากนั้นคลิก “Export”

Elasticache transfer-18

เมื่อการ Export เสร็จแล้วสามารถไปตรวจสอบ backup ได้ที่ S3 bucket

Elasticache transfer-19

เพียงเท่านี้การทำ Backup ของ Amazon ElastiCache ไปยัง S3 bucket ก็เสร็จเรียบร้อย

3. การย้าย Backup จาก S3 bucket ไปยัง Region อื่น

สามารถดูขั้นตอนการย้ายข้อมูลข้าม region ระหว่าง S3 bucket ได้ที่บทความด้านล่าง

https://dev.classmethod.jp/articles/amazon-s3-cross-region-replication-th/

หลังจากนี้ region ที่เราจะทำการทดลองต่อ จะอยู่ใน region ปลายทาง

4. การ restore จาก backup

เข้ามาที่ S3 bucket ปลายทางที่ย้าย backup มาแล้ว
ไปที่หัวข้อ Permissions แล้วเลื่อนมาที่หัวข้อ Bucket policy จากนั้นคลิก “Edit”

Elasticache transfer-20

ใส่ 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]"
            ]
        }
    ]
}

Elasticache transfer-21

กลับมาที่ Amazon ElastiCache หัวข้อ Redis OSS caches
ให้คลิกที่ “Create Redis OSS cache”

Elasticache transfer-22

ครั้งนี้เราจะทำการสร้าง database จาก backup ของ S3 bucket โดยตั้งค่าตามรูปด้านล่าง ครั้งนี้เลือกเป็น Restore from backup
ซึ่งในส่วนของ location ให้ใส่ path ที่ backup อยู่

Elasticache transfer-23

หลังจากนี้จะเป็นการตั้งค่าที่เหมือนกับตอนสร้าง database ตัวแรกเลย
เมื่อสร้างเสร็จแล้ว ต่อไปจะทดลองเชื่อมต่อ EC2

5. ตรวจสอบด้วยการเชื่อมต่อ EC2

เชื่อมต่อ EC2 ด้วย SSH (สร้างใหม่ใน region ปลายทาง)

เมื่อทดลองค้นหาด้วยคำสั่ง set
ข้อมูลที่เพิ่มไว้ก่อนหน้านี้ก็จะขึ้นมา สรุปได้ว่าการ backup ได้ข้อมูลที่ครบถ้วน

Elasticache transfer-24

การลบ resource

ลบ Redis OSS cache

เลือก database ที่ต้องการลบ จากนั้นคลิก Actions > Delete

Elasticache transfer-25

ทำการยืนยันลบอีกครั้ง สามารถเลือกได้ว่าจะให้สร้าง backup หรือไม่ เมื่อเสร็จแล้วคลิก “Delete”

Elasticache transfer-26

ลบ Backup

เลือก backup ที่ต้องการลบ จากนั้นคลิก Actions > Delete

Elasticache transfer-27

ยืนยันการลบอีกครั้ง

Elasticache transfer-28

ลบ S3 bucket

สามารถดูขั้นตอนการลบ S3 bucket ได้ที่บทความด้านล่าง หัวข้อ "การลบ Buckets ใน Amazon S3"

https://dev.classmethod.jp/articles/how-to-use-s3-from-ec2-and-using-aws-cli-s3/#%25E0%25B8%2581%25E0%25B8%25B2%25E0%25B8%25A3%25E0%25B8%25A5%25E0%25B8%259A%2520Buckets%2520%25E0%25B9%2583%25E0%25B8%2599%2520Amazon%2520S3

สรุป

การย้ายข้อมูลไปยัง region อื่นของ Amazon ElastiCache ยังไม่สามารถทำได้โดยตรง จำเป็นต้องทำผ่านบริการอื่นอย่าง Amazon S3

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

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.