কম্পিউটার টিউটোরিয়াল

Amazon ElastiCache থেকে Redis Enterprise Cloud-এ সিমলেস মাইগ্রেশন: একটি সিম্পল, লো-ডাউনটাইম সমাধান

আজকাল উপলব্ধ অধিকাংশ ডাটাবেস মাইগ্রেশন টুল অফলাইন প্রাকৃতির। সেগুলো জটিল এবং ম্যানুয়াল ইন্টারভেনশন আপেক্ষা করে।

উদাহরণস্বরূপ, আপনি যদি আপনার ডেটা Amazon ElastiCache থেকে Redis Enterprise Cloud-এ মাইগ্রেট করতে চান, সাধারণ প্রক্রিয়া হলো আপনার ElastiCache ডেটা Amazon S3 বাকেটে ব্যাকআপ নেওয়া এবং তারপর Redis Enterprise Cloud UI ব্যবহার করে আপনার ডেটা ইম্পোর্ট করা। এই প্রক্রিয়া পেইনফুল ডাউনটাইম দাবি করতে পারে এবং ডেটা লস হতে পারে। অন্যান্য উপলব্ধ টেকনিকগুলোর মধ্যে হলো সোর্স Redis সার্ভারের পয়েন্ট-ইন-টাইম স্ন্যাপশট তৈরি করা এবং ডেস্টিনেশন সার্ভারগুলোর ওপর চেঞ্জগুলো অ্যাপ্লাই করা যাতে দুটি সার্ভার সিঙ্কে থাকে। সেটি ভালো পদ্ধতি শুনাতে পারে, কিন্তু এটি চ্যালেঞ্জিং হয়ে ওঠে যখন আপনাকে দर्जনાધিক স্ক্রিপ্ট মেইনটেইন করতে হয় মাইগ্রেশন স্ট্র্যাটেজি ইমপ্লিমেন্ট করতে।

তাই আমরা একটি আলাদা পদ্ধতি নিয়ে এসেছি:

RIOT পরিচিতি

RIOT হলো একটি ওপেন সোর্স অনলাইন মাইগ্রেশন টুল Julien Ruaux, Redis-এ একটি Solution Architect দ্বারা নির্মিত। RIOT ক্লায়েন্ট-সাইড রেপ্লিকেশন ইমপ্লিমেন্ট করে একটি প্রোডিউসার/কনসিউমার পদ্ধতিতে। প্রোডিউসার হলো কী এবং ভ্যালু রিডারের কম্বিনেশন যাদের ElastiCache-এ কানেকশন আছে। কী রিডার কম্পোনেন্ট SCAN এবং keyspace notifications ব্যবহার করে রেপ্লিকেট করার কীগুলো চিহ্নিত করে। প্রতিটি কী জন্য, ভ্যালু রিডার কম্পোনেন্ট DUMP পারফর্ম করে এবং ফলস্বরূপ কী+বাইটস কনসিউমার (রাইটার) কে হ্যান্ডেল করে, যা Redis Enterprise কানেকশনে RESTORE পারফর্ম করে।

Amazon ElastiCache থেকে Redis Enterprise Cloud-এ সিমলেস মাইগ্রেশন: একটি সিম্পল, লো-ডাউনটাইম সমাধান

এই ব্লগ পোস্ট দেখাবে কীভাবে ElastiCache থেকে Redis Enterprise Cloud-এ ডাটাবেসের একটি সিমলেস অনলাইন মাইগ্রেশন করা যায়।

মিস ন করুন: 6 Key Features to Consider When Choosing a DBaaS Provider এবং How Redis Enterprise Cloud Meets the Needs of Maturing Enterprise Customers on AWS

প্র리오রেসিটি:

মাইগ্রেশন টুল ব্যবহার করতে আপনার কিছু রিসোর্স প্রয়োজন:

  1. একটি Redis Enterprise Cloud সাবস্ক্রিপশন
  2. Amazon ElastiCache (সিঙ্গল-মাস্টার EC-এর জন্য প্রাইমারি এন্ডপয়েন্ট এবং ক্লাস্টার্ড EC-এর জন্য কনফিগারেশন এন্ডপয়েন্ট: কানেকশন এন্ডপয়েন্ট খুঁজে বের করার জন্য ElastiCache ডকুমেন্টেশন রেফার করুন)
  3. Linux-ভিত্তিক একটি Amazon EC2 ইনস্ট্যান্স

Amazon EC2 ইনস্ট্যান্স সেট আপ করা

আপনি হয় একটি নতুন EC2 ইনস্ট্যান্স তৈরি করতে পারেন অথবা একটি বিদ্যমানটি লিভারেজ করতে পারেন। আমাদের উদাহরণে, আমরা প্রথমে Amazon Web Services (AWS)-এ একটি ইনস্ট্যান্স তৈরি করব। সবচেয়ে সাধারণ সিনেরিও হলো একই Amazon Virtual Private Cloud (Amazon VPC)-এ একটি Amazon EC2 ইনস্ট্যান্স থেকে ElastiCache ক্লাস্টার অ্যাক্সেস করা। আমরা এই সেটআপের জন্য Ubuntu 16.04 LTS ব্যবহার করেছি, কিন্তু আপনি আপনার পছন্দের Ubuntu বা Debian ডিস্ট্রিবিউশন বেছে নিতে পারেন।

SSH ব্যবহার করে আপনার কম্পিউটার থেকে এই নতুন EC2 ইনস্ট্যান্সে কানেক্ট করুন নিচের মতো:

ssh -i “public key” <AWS EC2 Instance>

এই নতুন ইনস্ট্যান্সে redis-cli টুল ইনস্টল করুন এই কমান্ড রান করে:

$ sudo apt update # sudo apt install -y redis-tools

redis-cli ব্যবহার করে ElastiCache ডাটাবেসের সাথে কানেক্টিভিটি ভেরিফাই করা

সিনট্যাক্স:

$ redis-cli -h <Elasticache Primary Endpoint > -p 6379

কমান্ড:

$ sudo redis-cli -h <elasticache primary endpoint> -p 6379

নিশ্চিত করুন উপরের কমান্ড আপনাকে রিমোট Redis ডাটাবেসের সাথে সফলভাবে কানেক্ট করতে দিচ্ছে।

RIOT মাইগ্রেশন টুল ব্যবহার করা

Amazon ElastiCache থেকে Redis Enterprise Cloud-এ সিমলেস মাইগ্রেশন: একটি সিম্পল, লো-ডাউনটাইম সমাধান

নিচের কমান্ডগুলো রান করুন মাইগ্রেশন টুল সেট আপ করতে।

প্র리오রেসিটি:

Java ইনস্টল করুন: আমরা OpenJDK 11 বা তার পরে ব্যবহার করার সুপারিশ করি:

sudo add-apt-repository ppa:openjdk-r/ppa && sudo apt-get update -q && sudo apt install -y openjdk-11-jdk

RIOT ইনস্টল করা

প্যাকেজটি আনজিপ করুন এবং নিশ্চিত করুন RIOT বাইনারিগুলো জায়গায় আছে, নিচের মতো:

wget https://github.com/Redislabs-Solution-Architects/riot/releases/download/v2.0.8/riot-redis-2.0.8.zip unzip riot-redis-2.0.8.zip cd riot-redis-2.0.8/bin/

নিচের কমান্ড রান করে RIOT-এর ভার্সন চেক করতে পারেন:

./riot-redis --version RIOT version "2.0.8" bin/riot-redis --help Usage: riot-redis [OPTIONS] [COMMAND] -q, --quiet Log errors only -d, --debug Log in debug mode (includes normal stacktrace) -i, --info Set log level to info -h, --help Show this help message and exit. -V, --version Print version information and exit. Redis connection options -r, --redis=<uri> Redis connection string (default: redis://localhost:6379) -c, --cluster Connect to a Redis Cluster -m, --metrics Show metrics -p, --pool=<int> Max pool connections (default: 8) Commands: replicate, r Replicate a source Redis database in a target Redis database info, i Display INFO command output latency, l Calculate latency stats ping, p Execute PING command

Java এবং RIOT ইনস্টল হলে, আমরা মাইগ্রেশন প্রসেস শুরু করার জন্য প্রস্তুত নিচের কমান্ড দিয়ে, যা সরাসরি সোর্স (ElastiCache) থেকে টার্গেট (Redis Enterprise Cloud) রেপ্লিকেট করে ডেটা।

শেষে, ElastiCache থেকে Redis Enterprise Cloud-এ ডেটা রেপ্লিকেট করার সময় নিচের কমান্ড রান করুন:

sudo ./riot-redis -r redis://<source Elasticache endpoint>:6379 replicate -r redis://password@<Redis Enterprise Cloud endpoint>:port --live

ElastiCache আপনাকে দুটি ভাবে কনফিগার করতে দেয়: ক্লাস্টার্ড এবং নন-ক্লাস্টার্ড। নিচের চার্টে, প্রথম রো নন-ক্লাস্টার্ড সিনেরিওর জন্য কী কমান্ড করবেন সেটি দেখাচ্ছে, در দ্বিতীয় রো একটি নির্দিষ্ট ডাটাবেস نیمস্পেসসহ ক্লাস্টার্ড সিনেরিওর জন্য কমান্ড দেখাচ্ছে:

Amazon ElastiCache থেকে Redis Enterprise Cloud-এ সিমলেস মাইগ্রেশন: একটি সিম্পল, লো-ডাউনটাইম সমাধান

আপনি দেখতে পাচ্ছেন, যেকোনো সময় আপনার একটি ক্লাস্টার্ড ElastiCache থাকলে, আপনাকে –cluster অপশন পাস করতে হবে সোর্স ElastiCache এন্ডপয়েন্ট স্পেসিফাই করার আগে।

গুরুত্বপূর্ণ নোটস

  • প্রোডাকশনে ব্যবহার করার আগে মাইগ্রেশনটির ইউজার একসেপটেন্স টেস্টিং করুন।
  • মাইগ্রেশন কমপ্লিট হলে, নিশ্চিত করুন অ্যাপ্লিকেশন ট্রাফিক সফলভাবে Redis Enterprise এন্ডপয়েন্টে রিডাইরেক্ট হয়েছে।
  • কম ট্রাফিকের সময়ে মাইগ্রেশন প্রসেস চালান ডেটা লসের চান্স মিনিমাইজ করতে।

উপসংহার

আপনি যদি একটি সিম্পল এবং ইজি-টু-ইউজ লাইভ মাইগ্রেশন টুল খুঁজছেন যা আপনাকে Amazon ElastiCache থেকে Redis Enterprise Cloud-এ ডেটা সরাতে সাহায্য করতে পারে কোনো ডাউনটাইম ছাড়া, RIOT একটি आशাজনক অপশন।

রেফারেন্স:

  • RIOT – Redis input/output tools
  1. ডাইনোমাইট থেকে রিডিস এন্টারপ্রাইজ অ্যাক্টিভ-অ্যাক্টিভে सहজ মাইগ্রেশন: ধাপে ধাপে গাইড

  2. কেন ডাইনোমাইট থেকে রিডিস এন্টারপ্রাইজ অ্যাক্টিভ-অ্যাক্টিভে মাইগ্রেট করলে সুপেরিয়র পারফরম্যান্স এবং বিশ্বস্ততা মেলে

  3. Amazon S3 ব্যাকআপ দিয়ে আপনার Oracle ডেটাবেস সুরক্ষিত করুন

  4. রেডিস MOVE মাস্টার করুন: ডেটাবেস间 কী সুন্দরভাবে ট্রান্সফার করুন