কম্পিউটার

অ্যামাজন অরোরা এইচএ কৌশলগুলি বোঝা

আপনি যদি এটি পড়ছেন, আপনি সম্ভবত অ্যামাজন অরোরার কথা শুনেছেন। আপনি জানেন, Amazon Aurora হল একটি PaaS পরিষেবা যা AWS পরিষেবার RDS স্যুটের অংশ হিসাবে প্রদান করে৷ এটি একটি সম্পূর্ণরূপে পরিচালিত রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেম (RDBMS) প্রদান করে যা দুটি স্বাদে আসে, MySQL এবং Postgres, উভয়ের সাথে তারের সামঞ্জস্য বজায় রেখে৷ কিন্তু, এটি কীভাবে আপনার উচ্চ প্রাপ্যতা কৌশল এবং বিকল্পগুলিকে প্রভাবিত করে?

আপনি হয়তো ভাবছেন যে অ্যামাজন আরডিএস-এ MySQL বা PostgreSQL থেকে অ্যামাজন অরোরা কীভাবে আলাদা। এগুলি সম্পূর্ণরূপে পরিচালিত RDBMS পরিষেবাগুলিও, তাই না? হ্যাঁ, কিন্তু এগুলি মূলত EC2 দৃষ্টান্তগুলির একটি ফ্লিটে চলমান এবং AWS দ্বারা পরিচালিত আদর্শ ওপেন-সোর্স বাস্তবায়ন। অরোরার সাথে মূল পার্থক্য হল যে AWS স্টোরেজ ইঞ্জিনকে ডাটাবেস ইঞ্জিন থেকে আলাদা করেছে। AWS ওপেন-সোর্স ডেটাবেসে উদ্বেগের বিচ্ছেদ নীতি প্রয়োগ করেছে।

উদ্বেগের বিচ্ছেদ

সাধারণত, একটি RDBMS সাধারণত উপলব্ধ হার্ডওয়্যারে চলতে হয়। এর মানে হল যে বাস্তবায়নকে অবশ্যই OS এবং হার্ডওয়্যারের দ্বারা আরোপিত সীমাবদ্ধতার মধ্যে কাজ করতে হবে যাতে আমরা একটি আধুনিক ডেটাবেস থেকে আশা করি এমন সমস্ত বৈশিষ্ট্যগুলি সম্পন্ন করতে পারি, যেমন:DML এবং DDL প্রক্রিয়াকরণ, ACID কমপ্লায়েন্ট লেনদেন, প্রতিলিপি, উচ্চ-প্রাপ্যতা (HA), এবং দোষ সহনশীলতা। তবে, যদি, সাধারণভাবে উপলব্ধ হার্ডওয়্যারে বাস্তবায়নের প্রয়োজন না হয় তবে শুধুমাত্র একটি ডাটাবেসের জন্য বিশেষভাবে ডিজাইন করা একটি পরিবেশে, বিভিন্ন দায়িত্বগুলি স্তরগুলিতে বিভক্ত করা যেতে পারে, যা ডাটাবেস ইঞ্জিন এবং স্টোরেজ ইঞ্জিনকে ফোকাস এবং বিশেষায়িত করার অনুমতি দেয়। ফলস্বরূপ, উচ্চ-উপলভ্যতা এবং কর্মক্ষমতা উল্লেখযোগ্যভাবে বৃদ্ধি করা যেতে পারে – MySQL এর তুলনায় 5x বেশি পারফরম্যান্স এবং স্ট্যান্ডার্ড PostgreSQL থেকে 3x পর্যন্ত বেশি।

ঠিক আছে, এটি দ্রুত, কিন্তু কিভাবে একটি বিশেষ ডাটাবেস এবং স্টোরেজ ইঞ্জিন HA এর সাথে আমাদের সাহায্য করে? এটি আমাদের HA অর্জনে সহায়তা করে এমন বিভিন্ন উপায় রয়েছে। যদিও আমরা এটিতে প্রবেশ করার আগে, আসুন এই বিচ্ছেদ থেকে HA কীভাবে উদ্ভূত হয়েছে তা বুঝতে আমাদের সাহায্য করার জন্য অরোরা স্টোরেজ ইঞ্জিন কীভাবে কাজ করে তা দ্রুত দেখে নেওয়া যাক।

যখন অরোরা স্টোরেজ ইঞ্জিনে ডেটা লেখা হয়, তখন ইঞ্জিনটি নিশ্চিত করে যে ডেটা ধারাবাহিকভাবে, সঠিকভাবে এবং টেকসইভাবে লেখা হয়েছে। মোট ছয়টি ভিন্ন স্থানের জন্য তিনটি প্রাপ্যতা অঞ্চলের প্রতিটিতে দুটি স্থানে ডেটা লেখা হয়। স্টোরেজ ইঞ্জিন জটিলতাগুলি পরিচালনা করে যাতে সেগুলি সঠিকভাবে ঘটে। যদিও কিছুটা অত্যধিক সরলীকরণ হতে পারে, মূলত ডাটাবেস ইঞ্জিন এখন "ফায়ার-এন্ড-ফোরগেট" করতে পারে, ডেটা লেখা হয়েছে কিনা, লেনদেনের লগ, পুনরুদ্ধার করার সম্ভাবনা ইত্যাদি নিয়ে আর চিন্তা করার দরকার নেই৷

ডাটাবেস ইঞ্জিন থেকে স্টোরেজ উদ্বেগ অপসারণ করে, বেশ কয়েকটি HA কৌশল পাওয়া যায়।

প্রতিলিপি পড়ুন

যদিও রিড রেপ্লিকাস ধারণাটি অরোরার অনেক আগে থেকেই আছে, ইনোপেন-সোর্স সলিউশন বাস্তবায়নে লগ শিপিং বা ক্যোয়ারী রিপ্লে জড়িত। অরোরার সাথে, ReadReplicas-এর কাছে মাস্টারের মতো একই স্টোরেজ-এ শুধুমাত্র পঠনযোগ্য অ্যাক্সেস রয়েছে। এর মানে ডেটা লেখার সময় থেকে রিড রেপ্লিকাতে দৃশ্যমান হওয়ার সময় পর্যন্ত খুব কম প্রতিলিপি বিলম্বিত হয় (প্রতিলিপি ল্যাগ এই পরিস্থিতিতে একটি ভুল নাম হবে)। যখন একাধিক রিড রেপ্লিকা প্রয়োজন হয়, তখন সমস্ত রিড রেপ্লিকা একই ডেটা দেখে, ওভারহেড এবং জটিলতা অপসারণ করে মাস্টারের উপর রাখা হয়, ইনস্ট্যান্ডার্ড MySQL এবং PostgreSQL বাস্তবায়ন পাওয়া যায়। মাস্টার ব্যর্থ হলে একটি রিড রেপ্লিকাকে অবিলম্বে নেওয়ার অনুমতি দেওয়ার জন্য এই বৈশিষ্ট্যগুলি একত্রিত হয়। উপরন্তু, AWS ব্যর্থ দৃষ্টান্ত প্রতিস্থাপন করে, প্রবিধান করা ক্ষমতা পূরণ করতে, নতুন উদাহরণ সহ এবং নতুন মাস্টারের দিকে নির্দেশ করার জন্য DNS আপডেট করে।

এটি এমন অ্যাপ্লিকেশনগুলির জন্য একটি দুর্দান্ত সমাধান যার উচ্চ পাঠ-টু-রাইট অনুপাত রয়েছে৷ যাইহোক, মনে রাখবেন যে আপনার প্রাথমিক উদাহরণটি সম্পূর্ণ লেখার লোড পরিচালনা করার জন্য যথেষ্ট বড় হতে হবে৷ এছাড়াও, HA লেখার জন্য, আপনি অন্তত একটি রিড রেপ্লিকা প্রদান করতে চান যা আপনার মাস্টারের সমান আকারের। তারপর, প্রাথমিক দৃষ্টান্তে উন্নীত করার জন্য এই Read Replicaas অগ্রাধিকার দৃষ্টান্ত সেট করুন। ব্যর্থতার ক্ষেত্রে, আপনি পড়া এবং লেখার উভয় ক্ষমতার জন্য উচ্চ প্রাপ্যতা বজায় রাখবেন।

অটোস্কেলিং

অটোস্কেলিং হল আপনার উপলব্ধ সার্ভারের সেট থেকে অনুভূমিকভাবে স্কেল আউট (দৃষ্টান্ত যোগ করুন) বা স্কেল ইন (ইনস্ট্যান্সগুলি সরান) করার ক্ষমতা। আপনি EC2 দৃষ্টান্তগুলির জন্য অটোস্কেলিংয়ের কথা শুনে থাকতে পারেন, কিন্তু আপনি কি জানেন যে আপনার অরোরা রিড রেপ্লিকাগুলিতেও স্থিতিস্থাপকতা থাকতে পারে? সাধারণত, আপনি আপনার বেস লোড পরিচালনা করার জন্য ন্যূনতম সংখ্যক রিড রেপ্লিকা কনফিগার করবেন এবং চাহিদা পরিবর্তন হিসাবে উদাহরণ যোগ করতে বা সরানোর জন্য স্বয়ংক্রিয় স্কেলিং নীতিগুলি থাকবে৷ স্থিতিস্থাপকতা লাভ করার ক্ষমতা হল আরেকটি ডেরিভেটিভ যে স্টোরেজ ইঞ্জিন ডেটাবেস ইঞ্জিন থেকে আলাদা।

একটি উদাহরণ দৃশ্য যেখানে এটি দরকারী হবে একটি B2B ইকমার্স সাইট। এটি সপ্তাহের দিনের ব্যবসার সময় ভারী ট্র্যাফিকের সম্মুখীন হবে তবে রাতারাতি এবং সপ্তাহান্তে খুব কম। চিত্র এবং বিষয়বস্তুর বিবরণের উচ্চ পাঠ-টু-রাইট অনুপাত রয়েছে এবং রিড রেপ্লিকাস এবং অটোস্কেলিং উভয়ের সুবিধা রয়েছে। আপনার ReadReplicas স্বয়ংক্রিয়ভাবে স্কেল করা আপনাকে পিক আওয়ারে চাহিদা মেটাতে দেয় এবং বন্ধ থাকার সময় খরচ কমিয়ে দেয়।

ক্রস-অঞ্চল প্রতিলিপি

আপনি যদি পরবর্তী স্তরে প্রাপ্যতা আনতে চান তবে এটি অন্য অঞ্চলে প্রতিলিপি করুন। ডাটাবেস ইঞ্জিন অন্য অঞ্চলে ডেটা প্রতিলিপি করে, এটি স্থানীয়ভাবে পড়া বা প্রাথমিক অঞ্চলের ব্যর্থতার ক্ষেত্রে ব্যবহার করা যেতে পারে। সেকেন্ডারি অঞ্চলের ইনস্ট্যান্সকে রিড রেপ্লিকা হিসাবে ধরা হয় (এটি মাল্টি-মাস্টার নয়), তবে এটির নিজস্ব রিড রেপ্লিকাও থাকতে পারে বা প্রাথমিক অঞ্চল ব্যর্থ হলে মাস্টার হয়ে উঠতে পারে।

ক্রস-অঞ্চল প্রতিলিপি প্রয়োজন হবে কেন অনেক কারণ আছে. কখনও কখনও ডেটা একটি একক ভৌগলিক অঞ্চলে সংরক্ষণ করা খুব গুরুত্বপূর্ণ। এটি ব্যবসার ধারাবাহিকতা, নিয়ন্ত্রক বা আর্থিক কারণে হতে পারে। আরেকটি কারণ হল ব্যবহারকারী এবং ডাটাবেস ব্যাকএন্ডের মধ্যে লেটেন্সি হ্রাস করা। আবারো উদাহরণ হিসেবে ইকমার্স ব্যবহার করে, ইমেজ এবং বর্ণনার পরিবর্তন একটি একক অঞ্চলে মাস্টারের কাছে প্রয়োগ করা যেতে পারে কিন্তু স্থানীয়ভাবে পড়ার জন্য বিশ্বব্যাপী বিতরণ করা যেতে পারে।

বাহ্যিক প্রতিলিপি

অরোরা ক্লাস্টারের বাইরে আপনার ডেটা প্রয়োজন এমন পরিস্থিতিতে কী হবে? এমন পরিস্থিতি রয়েছে যেখানে কর্পোরেট নীতি বা নিয়ন্ত্রক পরিবেশের চাহিদা রয়েছে, অথবা আপনার ডেটা প্রক্রিয়া করার প্রয়োজন বা অরোরার বাইরে রিপোর্ট চালানোর প্রয়োজন রয়েছে৷ এই সমস্ত ক্ষেত্রে ব্যবহার করে পরিচালনা করা যেতে পারে বাহ্যিক প্রতিলিপি।

একটি Amazon EC2 MySQL দৃষ্টান্তে, MySQL চালিত একটি Amazon EC2 দৃষ্টান্ত, এমনকি আপনার কর্পোরেট ডেটা সেন্টারে চলমান একটি MySQL দৃষ্টান্তে অরোরা ডেটার প্রতিলিপি করা সহজ। এই একমুখী প্রতিলিপি ব্যবহার করে, আপনার ডেটা সর্বদা আপনার অরোরা ক্লাস্টারের সাথে ইনসিঙ্ক থাকে এবং অরোরার বাইরে ব্যবহারের জন্য উপলব্ধ থাকে৷

সার্ভারহীন

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

অরোরা সার্ভারলেস কনফিগার করার জন্য, আপনি আপনার অ্যাপ্লিকেশনের জন্য উপলব্ধ ক্ষমতা নির্দিষ্ট করুন এবং AWS আপনার ক্লায়েন্টদের যখন প্রয়োজন তখন চাহিদা অনুযায়ী ক্ষমতা উপলব্ধ কিনা তা নিশ্চিত করার বিশদ পরিচালনা করে। সার্ভারহীনের জন্য, একটি অতিরিক্ত স্তর, অ্যাপ্রক্সি লেয়ার, দুটি বিদ্যমান স্তরে যোগ করা হয়েছে, ডাটাবেস ইঞ্জিন এবং স্টোরেজ ইঞ্জিন৷

AWS প্রক্সি সার্ভারের একটি বহর বজায় রাখে যা ইনকামিং অনুরোধের জন্য শোনে। উপরন্তু, ডিবি ক্ষমতার একটি উষ্ণ পুল অনুরোধ পরিবেশনের জন্য অপেক্ষা করছে। যখন আপনার প্রথম প্রশ্ন আসে, প্রক্সি ফ্লিট এটি গ্রহণ করে, উষ্ণ পুল থেকে একটি দৃষ্টান্তের অনুরোধ করে এবং আপনার ব্যবহারের জন্য বরাদ্দ করার পরে অনুরোধটি সেই উদাহরণে ফরোয়ার্ড করে৷ আরও ভাল, আপনার ব্যবহারের জন্য বরাদ্দকৃত দৃষ্টান্তের সংখ্যা ইলাস্টিক এবং চাহিদার ভিত্তিতে এবং অরোরা সার্ভারলেস কনফিগারেশনে আপনার নির্দিষ্ট করা সীমার উপর ভিত্তি করে স্কেল করা হয়। আগের কৌশলগুলির মতো, ডাটাবেস এবং স্টোরেজ আলাদা করার মাধ্যমে আপনার জন্য একটি ডাটাবেস ইঞ্জিনকে গতিশীলভাবে বরাদ্দ করার ক্ষমতা সম্ভব হয়েছে। আপনার কনফিগারেশনের উপর ভিত্তি করে, ডাটাবেস ইন্সট্যান্স আপনাকে বরাদ্দ করা থাকে এবং অবিলম্বে ব্যবহারের জন্য উপলব্ধ থাকে। সময়সীমার মেয়াদ শেষ হওয়ার পরে, উদাহরণটি উষ্ণ পুলে ফিরে আসে। আপনি শুধুমাত্র আপনি ব্যবহার করছেন সম্পদ জন্য চার্জ করা হয়. যখন আপনার ব্যবহারের জন্য একটি দৃষ্টান্ত বরাদ্দ করা হয়, তখন আপনাকে এটির জন্য চার্জ করা হয় এবং যেকোন খরচ করা স্টোরেজ। যখন বরাদ্দ না করা হয়, তখন আপনাকে শুধুমাত্র খরচ করা স্টোরেজের জন্য চার্জ করা হয়।

কাজের চাপের জন্য যেগুলি স্পাইকি, যেমন ডেভেলপমেন্ট এবং টেস্ট এনভায়রনমেন্ট বা নতুন অ্যাপ্লিকেশানগুলির জন্য যেগুলির ব্যবহার প্যাটার্নের ভবিষ্যদ্বাণী করার জন্য যথেষ্ট ইতিহাস নেই, সার্ভারহীনই হল পথ। আপনি আর ব্যবহার করছেন না এমন সম্পদের জন্য অর্থপ্রদান করবেন না, সপ্তাহান্তে যাওয়ার আগে ডেভেলপমেন্ট টিম লাইট জ্বালিয়েছে তা নিশ্চিত করার বিষয়ে চিন্তা করতে হবে না এবং ক্ষমতা সামঞ্জস্য করার জন্য আপনাকে মধ্যরাতে ঘুম থেকে উঠতে হবে না কারণ আপনার ব্যবহারকারীরা ' সময় অঞ্চল আপনার ঘুমের অঞ্চলের সাথে মিলে যায়৷

র্যাপিং আপ

Amazon Aurora প্রাপ্যতা, স্থায়িত্ব এবং স্কেলেবিলিটি মাথায় রেখে তৈরি করা হয়েছে৷ যদি স্ট্যান্ডার্ড ওপেন-সোর্স বাস্তবায়নের মতো ব্যবহার করা হয়, তাহলে আপনার কাছে একটি দৃঢ়, নির্ভরযোগ্য এবং কার্যকরী ডাটাবেস রয়েছে৷ অরোরার ক্ষমতা এবং সেগুলিকে কাজে লাগানোর প্যাটার্নগুলিকে একটু গভীরভাবে দেখে, আপনি স্থানীয় রিড অফলোডিং থেকে শুরু করে বিশ্বব্যাপী বিতরণ করা উপলব্ধতা পর্যন্ত আপনার চাহিদা মেটাতে একটি সমাধান বাস্তবায়ন করতে পারেন৷

কোনো মন্তব্য করতে বা প্রশ্ন জিজ্ঞাসা করতে প্রতিক্রিয়া ট্যাবটি ব্যবহার করুন৷


  1. AWS DBMS পরিষেবাগুলির একটি সংক্ষিপ্ত বিবরণ

  2. MongoDB স্থান ব্যবহার বোঝা

  3. মঙ্গোডিবিতে নষ্ট স্থান কমানোর কৌশল

  4. পড়তে ভালো কিছু চান? অনলাইনে ইবুক কেনার জন্য এই ইবুক স্টোরগুলি দেখুন