DynamoDB এর প্রধান উপাদান হল Tables। টেবিলগুলি হল সেই স্থান যেখানে আপনার ডেটা সংরক্ষিত থাকে। DynamoDB-তে টেবিল তৈরি এবং ম্যানেজমেন্ট একটি সহজ প্রক্রিয়া, তবে এটি কিছু গুরুত্বপূর্ণ ধারণা এবং কনফিগারেশন থাকতে পারে, যেমন Primary Key, Sort Key, Provisioned Capacity, এবং On-Demand Capacity। এই টিউটোরিয়ালে আমরা DynamoDB টেবিল তৈরি এবং ম্যানেজ করার মৌলিক ধারণাগুলি নিয়ে আলোচনা করব।
১. DynamoDB টেবিল তৈরি করা
ধাপ ১: AWS Management Console দিয়ে টেবিল তৈরি করা
- AWS Management Console এ লগ ইন করুন এবং DynamoDB সার্ভিসে যান।
- Create table বাটনে ক্লিক করুন।
এখন আপনাকে টেবিলের নাম এবং প্রাথমিক কী (Primary Key) কনফিগার করতে হবে।
Primary Key কনফিগারেশন:
- Partition Key (PK): এটি ডেটাবেসের প্রথম স্তরের সূচক (index) হিসাবে কাজ করবে। প্রতিটি রেকর্ডে এটি ইউনিক হতে হবে।
- Sort Key (SK): এটি একটি ঐচ্ছিক কী যা ডেটাকে আরও সূক্ষ্মভাবে শ্রেণীবদ্ধ করে। এটি ব্যবহার করলে আপনি আরও উন্নত কুয়েরি অপারেশন করতে পারবেন।
উদাহরণস্বরূপ:
- Partition Key:
UserId(String) - Sort Key:
OrderId(String)
- Table Settings:
- Provisioned vs On-Demand: আপনাকে টেবিলের জন্য Provisioned বা On-Demand ক্যাপাসিটি নির্বাচন করতে হবে:
- Provisioned Capacity: নির্দিষ্ট সংখ্যক Read Capacity Units (RCU) এবং Write Capacity Units (WCU) বরাদ্দ করা হয়।
- On-Demand Capacity: এখানে কোনো নির্দিষ্ট কনফিগারেশন প্রয়োজন হয় না, ডেটা ট্র্যাফিকের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে স্কেল করে।
- Provisioned vs On-Demand: আপনাকে টেবিলের জন্য Provisioned বা On-Demand ক্যাপাসিটি নির্বাচন করতে হবে:
- টেবিল তৈরি করার পর, আপনি চাইলে Secondary Indexes (GSI বা LSI) কনফিগার করতে পারেন, যা কুয়েরি অপটিমাইজেশনে সহায়ক।
- টেবিল তৈরি শেষ হলে Create বাটনে ক্লিক করুন। টেবিলটি AWS Management Console এ তৈরি হয়ে যাবে এবং আপনি সেটির ডেটা পরিচালনা করতে পারবেন।
২. টেবিলের মধ্যে ডেটা ম্যানেজমেন্ট
ডেটা ইনসার্ট (Insert Data)
DynamoDB টেবিলের মধ্যে ডেটা ইনসার্ট করার জন্য আপনি PutItem API বা Insert কমান্ড ব্যবহার করতে পারেন। এটি একটি একক রেকর্ড ডেটা টেবিলে যোগ করে।
ধাপ ১: PutItem দিয়ে ডেটা ইনসার্ট করা
- AWS Management Console এ আপনার তৈরি টেবিল নির্বাচন করুন।
- Items ট্যাব এ ক্লিক করুন এবং Create Item বাটনে ক্লিক করুন।
- রেকর্ড ইনপুট করুন, যেমন:
- UserId: "user123"
- OrderId: "order456"
- OrderAmount: 1000
- ইনপুট করার পর Save বাটনে ক্লিক করুন।
ডেটা আপডেট (Update Data)
আপনি DynamoDB টেবিলের মধ্যে বিদ্যমান ডেটা আপডেট করতে পারেন UpdateItem API এর মাধ্যমে।
ধাপ ১: UpdateItem দিয়ে ডেটা আপডেট করা
- AWS Management Console এর Items ট্যাবে যান।
- আপডেট করতে চাইলে Update অপশন সিলেক্ট করুন।
- নির্দিষ্ট অ্যাট্রিবিউট পরিবর্তন করুন এবং Save বাটনে ক্লিক করুন।
ডেটা ডিলিট (Delete Data)
আপনি টেবিল থেকে ডেটা মুছতে পারেন DeleteItem API ব্যবহার করে।
ধাপ ১: DeleteItem দিয়ে ডেটা ডিলিট করা
- AWS Management Console এর Items ট্যাব এ যান।
- যেই রেকর্ডটি মুছতে চান তা নির্বাচন করুন এবং Delete বাটনে ক্লিক করুন।
৩. টেবিল ম্যানেজমেন্ট: স্কেলিং এবং কনফিগারেশন
Provisioned vs On-Demand Capacity Mode
- Provisioned Capacity: আপনি নির্দিষ্ট RCU (Read Capacity Units) এবং WCU (Write Capacity Units) কনফিগার করেন। যদি আপনার অ্যাপ্লিকেশন ট্রাফিক পূর্বানুমানযোগ্য হয়, তাহলে এটি উপযুক্ত।
- On-Demand Capacity: যদি আপনার অ্যাপ্লিকেশন ট্রাফিক অনির্দিষ্ট এবং পরিবর্তনশীল হয়, তাহলে On-Demand ক্যাপাসিটি ব্যবহৃত হতে পারে, যা স্বয়ংক্রিয়ভাবে পারফরম্যান্স অনুযায়ী স্কেল হয়।
Auto Scaling
DynamoDB অটোমেটিক্যালি আপনার টেবিল স্কেল করতে পারে, যদি আপনি Auto Scaling কনফিগার করেন। আপনি নির্দিষ্ট থ্রেশহোল্ড সেট করতে পারেন, এবং যখন ট্রাফিক বৃদ্ধি পাবে, DynamoDB স্বয়ংক্রিয়ভাবে স্কেল করে।
৪. টেবিলের ইনডেক্স ম্যানেজমেন্ট
DynamoDB টেবিলের মধ্যে Secondary Indexes তৈরি করা খুবই গুরুত্বপূর্ণ, বিশেষত যখন আপনি বিভিন্ন ধরণের কুয়েরি করতে চান।
- Global Secondary Index (GSI): এটি প্রাথমিক কির বাইরে আরও দ্রুত কুয়েরি সাপোর্ট করতে সাহায্য করে।
- Local Secondary Index (LSI): এটি শুধুমাত্র Partition Key এর জন্য এবং Sort Key এর উপর আরও অ্যাডভান্স কুয়েরি সাপোর্ট প্রদান করে।
সারাংশ:
- টেবিল তৈরি করা এবং ম্যানেজমেন্ট DynamoDB তে সহজ এবং সুবিধাজনক।
- আপনি Primary Key, Sort Key, Provisioned vs On-Demand Capacity, এবং Indexes এর মাধ্যমে টেবিল কনফিগার করতে পারবেন।
- টেবিলের মধ্যে ডেটা ইনসার্ট, আপডেট, ডিলিট, এবং কুয়েরি অপারেশনগুলো AWS Management Console বা API এর মাধ্যমে করা যায়।
এটি DynamoDB টেবিল তৈরি এবং ম্যানেজমেন্ট সম্পর্কিত একটি মৌলিক গাইড। আপনি যদি আরও গভীরে যেতে চান, তাহলে আমি আরও বিস্তারিত ব্যাখ্যা দিতে পারব।
DynamoDB তে নতুন টেবিল তৈরি করা অত্যন্ত সহজ। আপনি AWS Management Console, AWS CLI, অথবা SDK ব্যবহার করে DynamoDB টেবিল তৈরি করতে পারেন। এখানে, আমি AWS Management Console ব্যবহার করে DynamoDB তে একটি নতুন টেবিল তৈরি করার পদক্ষেপগুলি বিস্তারিতভাবে দেখাবো।
ধাপ ১: AWS Management Console এ লগ ইন করা
- প্রথমে, AWS Management Console এ লগ ইন করুন।
- লগ ইন করার পর, Services মেনু থেকে DynamoDB সার্ভিস নির্বাচন করুন অথবা সরাসরি DynamoDB সার্চ করুন।
ধাপ ২: টেবিল তৈরি করার জন্য "Create Table" বাটনে ক্লিক করা
- DynamoDB কনসোলের ড্যাশবোর্ডে, Tables ট্যাবের নিচে, Create table বাটনে ক্লিক করুন।
ধাপ ৩: টেবিল কনফিগারেশন সেট করা
এখন আপনি টেবিল তৈরি করার জন্য প্রয়োজনীয় কনফিগারেশন সেট করবেন। নিচে গুরুত্বপূর্ণ সেটিংস গুলি বর্ণনা করা হলো:
- Table name:
- এখানে আপনি টেবিলের নাম প্রদান করবেন। উদাহরণস্বরূপ,
UsersবাProducts।
- এখানে আপনি টেবিলের নাম প্রদান করবেন। উদাহরণস্বরূপ,
- Primary key:
- Partition key (Primary key): DynamoDB এ প্রাথমিক চাবি বা Partition key হল একটি কলাম, যা ডেটাবেসের রেকর্ডগুলোকে অনন্যভাবে চিহ্নিত করে। উদাহরণস্বরূপ,
UserIDবাProductID। - Sort key (Optional): যদি আপনি টেবিলের মধ্যে আরও ভিন্নভাবে ডেটা সংগঠিত করতে চান, তাহলে আপনি Sort key ব্যবহার করতে পারেন। উদাহরণস্বরূপ,
TimestampবাOrderID। - এই দুটি ফিল্ড Partition key এবং Sort key মিলে প্রাথমিক চাবি গঠন করবে।
- Partition key (Primary key): DynamoDB এ প্রাথমিক চাবি বা Partition key হল একটি কলাম, যা ডেটাবেসের রেকর্ডগুলোকে অনন্যভাবে চিহ্নিত করে। উদাহরণস্বরূপ,
- Table settings:
- Provisioned: যদি আপনি নির্দিষ্ট পরিমাণ রিড এবং রাইট ক্যাপাসিটি সেট করতে চান, তবে এই অপশনটি নির্বাচন করুন। এখানে আপনি Read capacity units (RCU) এবং Write capacity units (WCU) কনফিগার করতে পারবেন।
- On-demand: এই অপশনটি নির্বাচন করলে DynamoDB স্বয়ংক্রিয়ভাবে লোড অনুযায়ী রিড/রাইট সক্ষমতা অ্যাডজাস্ট করবে, এবং আপনাকে ম্যানুয়ালি ক্যাপাসিটি নির্ধারণ করতে হবে না।
- Encryption (Optional):
- DynamoDB তে ডেটা এনক্রিপ্ট করা যায় Encryption at Rest এর মাধ্যমে। আপনি চাইলে এটি সক্ষম বা নিষ্ক্রিয় করতে পারেন।
- Additional Settings:
- এখানে আপনি Time to Live (TTL), Point-in-Time Recovery (PITR), এবং অন্যান্য অপশন কনফিগার করতে পারবেন।
ধাপ ৪: টেবিল তৈরি করা
- সব কনফিগারেশন সঠিকভাবে পূর্ণ হলে, Create বাটনে ক্লিক করুন।
- DynamoDB আপনার জন্য নতুন টেবিল তৈরি করবে। এটি কিছু সময় নিতে পারে, এবং আপনি কনসোলের Tables ট্যাবে গিয়ে আপনার নতুন টেবিলটি দেখতে পারবেন।
ধাপ ৫: টেবিল ব্যবহারের জন্য প্রস্তুত
একবার টেবিল তৈরি হয়ে গেলে, আপনি বিভিন্ন Data Operations করতে পারেন যেমন:
- Insert: নতুন ডেটা ইনসার্ট করা।
- Update: বিদ্যমান ডেটা আপডেট করা।
- Delete: ডেটা মুছে ফেলা।
- Query: নির্দিষ্ট শর্তে ডেটা খোঁজা।
আপনি AWS CLI, SDK, বা কনসোলের মাধ্যমে এই অপারেশনগুলি চালাতে পারবেন।
এখন আপনি DynamoDB তে নতুন টেবিল তৈরি করতে প্রস্তুত। যদি আরও কোনও প্রশ্ন থাকে বা অন্য কোনও সাহায্য প্রয়োজন হয়, তাহলে আমাকে জানাবেন!
Amazon DynamoDB একটি NoSQL ডেটাবেস যা টেবিলের মধ্যে Primary Key ব্যবহার করে ডেটা স্টোর এবং রিট্রিভ করার প্রক্রিয়া পরিচালনা করে। DynamoDB এ ডেটার সঠিকভাবে অ্যাক্সেস এবং সঞ্চয়ের জন্য Primary Key খুবই গুরুত্বপূর্ণ।
ডাইনামিক ডেটা মডেল এবং স্কেলেবিলিটি নিশ্চিত করার জন্য, DynamoDB দুই ধরনের কিপ্রকারের কনফিগারেশন সমর্থন করে:
- Partition Key (Primary Key)
- Sort Key
এই কনফিগারেশনগুলির মাধ্যমে ডেটা বিতরণ এবং সংরক্ষণ কার্যকরভাবে পরিচালিত হয়।
১. Primary Key
প্রাথমিক কীটি প্রতিটি টেবিলের জন্য একেবারে অপরিহার্য। এটি একটি একক বা দুটি অংশের সমন্বয়ে গঠিত হতে পারে:
- Partition Key (PK): একটি ইউনিক আইডেন্টিফায়ার, যা এককভাবে টেবিলের মধ্যে ডেটা পার্টিশন করতে ব্যবহৃত হয়।
- Partition Key + Sort Key (Composite Primary Key): এটি দুটি অংশ নিয়ে গঠিত: একটি Partition Key (PK) এবং একটি Sort Key (SK), যা ডেটাকে আরো বিস্তারিতভাবে গ্রুপ এবং ফিল্টার করতে সাহায্য করে।
Partition Key (PK)
Partition Key হল ডেটা প্রাথমিক চিহ্নিতকারী যা DynamoDB ডেটাবেসকে জানায় কোন ডেটা কোথায় সঞ্চিত হবে। এটি একটি ইউনিক মান যা পুরো টেবিলের মধ্যে পার্টিশন তৈরি করতে ব্যবহৃত হয়।
- উদাহরণ: আপনার যদি একজন ব্যবহারকারীর ডেটা সঞ্চয় করতে হয়, তবে আপনি UserID কে Partition Key হিসেবে ব্যবহার করতে পারেন, যেমন:
Partition Key: UserIDValue: 12345
এতে UserID এককভাবে ডেটাকে বিভিন্ন পার্টিশনে ভেঙে সঞ্চিত করবে।
Sort Key (SK)
Sort Key হল দ্বিতীয় কিপ্রকার যা একটি টেবিলের মধ্যে ডেটাকে আরও সুসংগঠিত করতে সাহায্য করে। এটি Partition Key এর সাথে কাজ করে এবং ডেটা সঠিকভাবে সাজানোর এবং ফিল্টার করার জন্য ব্যবহৃত হয়।
- উদাহরণ: ধরুন, আপনি যদি UserID এর ভিত্তিতে সমস্ত ইনভয়েসের ডেটা সঞ্চয় করতে চান, তবে Sort Key হিসেবে আপনি InvoiceDate ব্যবহার করতে পারেন:
Partition Key: UserIDSort Key: InvoiceDateValue: 2024-01-15
এতে, একেকটি UserID এর সাথে যুক্ত সমস্ত ইনভয়েস গুলি InvoiceDate এর ভিত্তিতে সাজানো হবে।
২. Primary Key কনফিগারেশন কিভাবে করবেন
আপনি যখন DynamoDB টেবিল তৈরি করেন, তখন Primary Key কনফিগার করতে হবে। এটি আপনি AWS Management Console থেকে অথবা AWS CLI বা SDK এর মাধ্যমে কনফিগার করতে পারেন।
AWS Management Console থেকে কনফিগারেশন:
- AWS Management Console এ লগ ইন করুন এবং DynamoDB সার্ভিসে যান।
- Create Table এ ক্লিক করুন।
- Table Name দিন এবং Primary Key কনফিগার করুন:
- Partition Key: একটি ফিল্ড নাম দিন (যেমন
UserID), এবং তার জন্য ডেটা টাইপ নির্বাচন করুন (যেমনString,Numberইত্যাদি)। - Sort Key (Optional): যদি প্রয়োজন হয়, তাহলে Sort Key যোগ করুন (যেমন
InvoiceDate), এবং তার জন্য ডেটা টাইপ নির্বাচন করুন।
- Partition Key: একটি ফিল্ড নাম দিন (যেমন
- Create বাটনে ক্লিক করে টেবিলটি তৈরি করুন।
AWS CLI এর মাধ্যমে কনফিগারেশন:
AWS CLI ব্যবহার করে DynamoDB টেবিল তৈরি করার জন্য, নিচের কমান্ডটি ব্যবহার করুন:
aws dynamodb create-table \
--table-name Users \
--attribute-definitions \
AttributeName=UserID,AttributeType=S \
AttributeName=InvoiceDate,AttributeType=S \
--key-schema \
AttributeName=UserID,KeyType=HASH \
AttributeName=InvoiceDate,KeyType=RANGE \
--provisioned-throughput \
ReadCapacityUnits=5,WriteCapacityUnits=5
এখানে:
--key-schema: Partition Key (UserID) এবং Sort Key (InvoiceDate) কনফিগার করা হয়েছে।--provisioned-throughput: টেবিলের জন্য পাঠযোগ্য এবং লেখার ক্ষমতা নির্ধারণ করা হয়েছে (যেমন ৫ RCU এবং ৫ WCU)।
৩. Primary Key কনফিগারেশনের সুবিধা
- ডেটা পার্টিশনিং: Partition Key এর মাধ্যমে ডেটা ভৌগলিকভাবে বিভক্ত হয়ে যায়, যা ডেটাবেসের পারফরম্যান্স উন্নত করে।
- ডেটা ফিল্টারিং: Sort Key ব্যবহার করে আপনি একই Partition Key এর অধীনে ডেটাকে বিভিন্ন উপায়ে সাজাতে এবং ফিল্টার করতে পারেন।
- স্কেলেবিলিটি: DynamoDB এর পার্টিশনিং এবং স্কেলিং ক্ষমতা, Primary Key এর মাধ্যমে ডেটার লোড সমানভাবে বিতরণ করে, যা একে বিশাল পরিমাণ ডেটা পরিচালনা করতে সক্ষম করে।
উপসংহার
DynamoDB এর Primary Key এবং Sort Key কনফিগারেশন ব্যবহারের মাধ্যমে আপনি আপনার ডেটাবেস টেবিলের পারফরম্যান্স ও কার্যকারিতা বৃদ্ধি করতে পারেন। Partition Key ডেটাকে পার্টিশন করে এবং Sort Key ডেটাকে নির্দিষ্ট সাজানো বা ফিল্টার করতে সাহায্য করে। এই কনফিগারেশনগুলি ডেটার কাঠামোকে আরও উন্নত, স্কেলযোগ্য এবং ম্যানেজেবল করে তোলে।
Amazon DynamoDB Table Capacity Mode দুটি মূল অপশন প্রদান করে: Provisioned এবং On-Demand। প্রতিটি অপশন আপনাকে ডেটাবেসের কর্মক্ষমতা এবং খরচের উপর বিভিন্ন স্তরের নিয়ন্ত্রণ প্রদান করে। সঠিক মডেলটি নির্বাচন করা আপনার অ্যাপ্লিকেশনের ট্রাফিক এবং স্কেলিং চাহিদার উপর নির্ভর করে।
এখানে আমরা Provisioned এবং On-Demand মডেলের মধ্যে প্রধান পার্থক্য এবং প্রতিটির সুবিধা ও অসুবিধা আলোচনা করব।
1. Provisioned Capacity Mode
Provisioned Capacity Mode হল সেই ডেটাবেস কনফিগারেশন যেখানে আপনি প্রতি সেকেন্ডে কতটি রিড (Read) এবং রাইট (Write) অপারেশন প্রয়োজন হবে তা পূর্বনির্ধারণ করেন।
কীভাবে কাজ করে:
- Read Capacity Units (RCU) এবং Write Capacity Units (WCU) নির্ধারণ করতে হবে।
- RCU (Read Capacity Units): প্রতি সেকেন্ডে 4 KB ডেটা পড়ার ক্ষমতা।
- WCU (Write Capacity Units): প্রতি সেকেন্ডে 1 KB ডেটা লেখার ক্ষমতা।
- যখন আপনি DynamoDB টেবিল তৈরি করেন, তখন আপনি নির্দিষ্ট সংখ্যক RCU এবং WCU নির্ধারণ করেন। এই মডেল আপনাকে নির্দিষ্ট ক্ষমতা ব্যবহার করে পূর্বনির্ধারিত পারফরম্যান্স গ্যারান্টি প্রদান করে।
ফায়দা:
- নির্দিষ্ট স্কেলিং: আপনি যে পরিমাণ পারফরম্যান্স প্রয়োজন তা নির্দিষ্ট করতে পারবেন এবং পূর্বনির্ধারিত কনফিগারেশনের ভিত্তিতে টেবিলের পারফরম্যান্স স্থির থাকে।
- কম খরচে: যদি আপনার অ্যাপ্লিকেশনের রিড এবং রাইট অপারেশন কম থাকে, তবে এটি কম খরচে হতে পারে।
সীমাবদ্ধতা:
- স্কেলিং চ্যালেঞ্জ: ট্র্যাফিকের পরিবর্তন অনুযায়ী পারফরম্যান্স স্কেল করতে হবে। যেমন, আপনার যদি ট্রাফিক হঠাৎ বৃদ্ধি পায়, তাহলে আপনাকে RCPU/WCPU এর মান বাড়াতে হবে।
- থ্রুপুট সীমা: নির্দিষ্ট সংখ্যা RCU/WCU সীমাবদ্ধ থাকে, তাই যদি আপনি সেটার বাইরে ট্র্যাফিক চান, তাহলে কনফিগারেশন পরিবর্তন করতে হতে পারে।
2. On-Demand Capacity Mode
On-Demand Capacity Mode হল একটি ফ্লেক্সিবল অপশন, যা আপনাকে ট্রাফিকের উপর ভিত্তি করে অটোমেটিক্যালি স্কেল করতে দেয়। আপনাকে পূর্বনির্ধারিত RCU এবং WCU নির্ধারণ করতে হয় না। DynamoDB স্বয়ংক্রিয়ভাবে ইনকামিং রিড এবং রাইট ট্র্যাফিকের ভিত্তিতে প্রয়োজনীয় রিসোর্স প্রদান করবে।
কীভাবে কাজ করে:
- আপনি রিড এবং রাইট অপারেশনের জন্য নির্দিষ্ট সীমা সেট করতে হবে না। DynamoDB স্বয়ংক্রিয়ভাবে প্রয়োজনীয় ক্ষমতা সরবরাহ করে, এবং অতিরিক্ত ক্ষমতা চাহিদা পূরণ করতে ট্র্যাফিকের উপর ভিত্তি করে সম্পদ বাড়ায়।
ফায়দা:
- অটো-স্কেলিং: আপনার অ্যাপ্লিকেশন যদি ট্রাফিকের উপর ভিত্তি করে দ্রুত পরিবর্তিত হয় (যেমন হালকা ওভারলোড বা আউটেজ), তবে DynamoDB অটোমেটিকভাবে স্কেলিং প্রক্রিয়া পরিচালনা করবে।
- সরল ব্যবস্থাপনা: RCPU/WCPU কনফিগারেশনের দরকার নেই। DynamoDB আপনাকে সঠিক ক্ষমতা দিয়ে থাকে, যেটি আপনার অ্যাপ্লিকেশনের প্রয়োজন অনুসারে।
সীমাবদ্ধতা:
- অতিরিক্ত খরচ: On-demand মডেলে আপনাকে একটানা ব্যবহারের জন্য বেশি অর্থ প্রদান করতে হতে পারে। কারণ এখানে আপনি ব্যবহৃত ক্ষমতার জন্য পেমেন্ট করবেন, সুতরাং উচ্চ ট্রাফিকের জন্য খরচ বেশি হতে পারে।
- বিকল্পে অপটিমাইজেশন কম: পূর্বনির্ধারিত কনফিগারেশন না থাকায়, কখনো কখনো আপনার নির্দিষ্ট কেসের জন্য অপটিমাইজেশন কম হতে পারে।
Provisioned vs On-Demand: কখন কোনটা ব্যবহার করবেন?
| ক্যাপাসিটি মোড | কখন ব্যবহার করবেন | ফায়দা | সীমাবদ্ধতা |
|---|---|---|---|
| Provisioned | যখন আপনি পূর্বানুমান করতে পারেন কতটুকু রিড এবং রাইট প্রয়োজন হবে এবং যদি ট্র্যাফিক স্থিতিশীল থাকে। | সস্তা (কম ট্রাফিক হলে), কন্ট্রোলড পারফরম্যান্স | স্কেলিংয়ের জন্য কনফিগারেশন পরিবর্তন করা দরকার। |
| On-Demand | যখন আপনি জানেন না কতটুকু ট্রাফিক আসবে বা আপনি চাচ্ছেন স্বয়ংক্রিয়ভাবে স্কেল করতে। | অটো-স্কেলিং, সহজ ব্যবস্থাপনা | খরচ বেশি হতে পারে, নিয়ন্ত্রণ কম। |
চূড়ান্ত সিদ্ধান্ত:
- যদি আপনার অ্যাপ্লিকেশন ট্রাফিক পূর্বানুমানযোগ্য এবং প্রেডিক্টেবল হয়, তবে Provisioned Mode আপনার জন্য ভাল হতে পারে, কারণ এতে খরচ কম থাকবে।
- যদি আপনার অ্যাপ্লিকেশন ট্রাফিক অনেক বেশি পরিবর্তনশীল হয় বা আপনি রিয়েল-টাইম স্কেলিং চান, তবে On-Demand Mode নির্বাচন করা ভালো।
DynamoDB-এর ক্ষমতা এবং আপনার অ্যাপ্লিকেশনের প্রয়োজনীয়তা অনুযায়ী এই দুটি মডেলের মধ্যে থেকে সঠিকটি বেছে নিন।
Amazon DynamoDB এ Table Scaling এবং Auto Scaling কনফিগারেশন একটি অত্যন্ত গুরুত্বপূর্ণ অংশ। DynamoDB এর স্কেলেবিলিটি বৈশিষ্ট্য নিশ্চিত করে যে আপনার ডেটাবেস অ্যাপ্লিকেশনটি হাই ট্রাফিক সময়ে পারফরম্যান্স বজায় রাখতে সক্ষম হয়, এবং স্বয়ংক্রিয়ভাবে সক্ষম হয় যখন প্রয়োজন হয় বেশি বা কম থ্রুপুট ক্ষমতার। এখানে আমরা DynamoDB এর Table Scaling এবং Auto Scaling কনফিগারেশন সম্পর্কে বিস্তারিত আলোচনা করব।
1. Table Scaling: DynamoDB টেবিলের সাইজ বা ক্ষমতা বাড়ানো এবং কমানো
DynamoDB টেবিলের scaling মানে হল টেবিলের রিড এবং রাইট ক্যাপাসিটি ইউনিট (RCU, WCU) বৃদ্ধি বা কমানো। এটি দুটি মোডে কাজ করে:
Provisioned Capacity Mode (Provisioned Mode)
এই মোডে, আপনি রিড এবং রাইট ক্যাপাসিটি ইউনিট নির্ধারণ করে দেন, যা টেবিলের ট্র্যাফিকের ভিত্তিতে আপনার প্রয়োজন হয়। এই পদ্ধতিতে আপনি যত রিড বা রাইট অপারেশন চাচ্ছেন, তত ইউনিট প্রদান করতে হবে।
- RCU (Read Capacity Units): প্রতি সেকেন্ডে যতটি রিড অপারেশন প্রক্রিয়া হবে, তার জন্য ইউনিট।
- WCU (Write Capacity Units): প্রতি সেকেন্ডে যতটি রাইট অপারেশন প্রক্রিয়া হবে, তার জন্য ইউনিট।
যত বেশি রিড এবং রাইট ক্যাপাসিটি ইউনিট কনফিগার করবেন, তত বেশি ডেটা প্রোসেস করতে পারবেন। তবে এটি অতিরিক্ত খরচ হতে পারে।
On-Demand Capacity Mode
এই মোডে, আপনি কোনও নির্দিষ্ট রিড বা রাইট ক্যাপাসিটি ইউনিট সেট না করে, ডেটাবেস স্বয়ংক্রিয়ভাবে রিড এবং রাইট অপারেশন ম্যানেজ করে। এই মোডে, ডেটাবেস আপনার ট্রাফিকের উপর ভিত্তি করে পারফরম্যান্স প্রদান করে, অর্থাৎ এটি স্বয়ংক্রিয়ভাবে স্কেল হয়।
- এটি ছোট বা মিড-সাইজ অ্যাপ্লিকেশনগুলির জন্য খুব উপযোগী, যেখানে ট্রাফিকের প্যাটার্ন পূর্বানুমান করা কঠিন।
2. Auto Scaling: DynamoDB টেবিলের ক্যাপাসিটি স্বয়ংক্রিয়ভাবে বৃদ্ধি বা কমানো
Auto Scaling হল একটি বৈশিষ্ট্য যা আপনাকে DynamoDB টেবিলের রিড এবং রাইট ক্যাপাসিটি স্বয়ংক্রিয়ভাবে পরিচালনা করতে সাহায্য করে। এটি আপনার টেবিলের ব্যবহার অনুসারে ক্যাপাসিটি পরিবর্তন করে, যাতে আপনি অতিরিক্ত খরচ এড়িয়ে যেতে পারেন এবং একই সময়ে পারফরম্যান্স বজায় রাখতে পারেন।
Auto Scaling কনফিগারেশন প্রক্রিয়া:
- AWS Management Console ব্যবহার করে Auto Scaling কনফিগার করা:
- Step 1: AWS Management Console এ লগ ইন করুন।
- Step 2: DynamoDB সার্ভিসে যান।
- Step 3: Tables থেকে আপনার টেবিল নির্বাচন করুন, যার জন্য আপনি Auto Scaling কনফিগার করতে চান।
- Step 4: টেবিলের Capacity ট্যাবে ক্লিক করুন।
- Step 5: Provisioned Capacity নির্বাচন করুন।
- Step 6: Auto Scaling সেকশনে যান এবং "Enable Auto Scaling" এ ক্লিক করুন।
- Step 7: রিড এবং রাইট ক্যাপাসিটি ইউনিটের জন্য উপযুক্ত Min, Max এবং Target utilization মান নির্ধারণ করুন।
- Min Capacity: এটি হল সর্বনিম্ন ক্যাপাসিটি যা আপনার টেবিল ব্যবহার করবে।
- Max Capacity: এটি হল সর্বোচ্চ ক্যাপাসিটি যা টেবিল ব্যবহার করবে।
- Target Utilization: এটি হল ঐ মান যা DynamoDB আশা করবে।
- Step 8: Save changes ক্লিক করে আপনার কনফিগারেশন সেভ করুন।
AWS CLI বা API ব্যবহার করে Auto Scaling কনফিগার করা:
আপনি AWS CLI ব্যবহার করে DynamoDB টেবিলের জন্য Auto Scaling কনফিগার করতে পারেন। এখানে একটি উদাহরণ দেওয়া হল:
aws dynamodb update-table --table-name <TableName> --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 --scaling-policy TargetTrackingScalingPolicyConfiguration={ "TargetValue": 70.0, "ScaleInCooldown": 300, "ScaleOutCooldown": 300, "MinimumCapacity": 5, "MaximumCapacity": 100 }এই কমান্ডটি Target Tracking স্কেলিং পলিসি ব্যবহার করে এবং আপনি রিড এবং রাইট ক্যাপাসিটি ইউনিটের জন্য মিনিমাম এবং ম্যাক্সিমাম মান নির্ধারণ করতে পারবেন।
3. Auto Scaling এর সুবিধা:
- লচিলতা (Flexibility): আপনার ডেটাবেসের ট্রাফিক অনুযায়ী ক্যাপাসিটি স্বয়ংক্রিয়ভাবে বৃদ্ধি বা কমানোর সুবিধা দেয়।
- দ্রুত স্কেলিং: এটি দ্রুত স্কেল করতে সক্ষম, যা আপনার অ্যাপ্লিকেশনের পারফরম্যান্স ঠিক রাখতে সহায়তা করে।
- ব্যবসায়িক খরচ কমানো: স্বয়ংক্রিয়ভাবে ক্যাপাসিটি কমানোর মাধ্যমে আপনি অতিরিক্ত খরচ কমাতে পারবেন।
4. Table Scaling এবং Auto Scaling এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Provisioned Mode | Auto Scaling Mode |
|---|---|---|
| ক্যাপাসিটি নির্ধারণ | আপনি নিজেই রিড এবং রাইট ক্যাপাসিটি নির্ধারণ করেন। | স্বয়ংক্রিয়ভাবে ক্যাপাসিটি বৃদ্ধি বা কমানো হয়। |
| স্কেলিং | স্কেল করতে হয় ম্যানুয়ালি। | স্বয়ংক্রিয়ভাবে স্কেল হয়। |
| খরচ | অতিরিক্ত খরচ হতে পারে যদি ট্রাফিক হঠাৎ বাড়ে। | খরচ সামঞ্জস্যপূর্ণ, প্রয়োজন অনুসারে। |
| ব্যবহার | স্থিতিশীল এবং পূর্বানুমানযোগ্য অ্যাপ্লিকেশন। | ডাইনামিক ট্রাফিক সহ অ্যাপ্লিকেশন। |
উপসংহার:
Auto Scaling DynamoDB টেবিলের জন্য অত্যন্ত উপকারী, কারণ এটি আপনার ডেটাবেসের ক্ষমতাকে স্বয়ংক্রিয়ভাবে পরিচালনা করতে সক্ষম, আপনার অ্যাপ্লিকেশনটিকে সঠিকভাবে স্কেল করতে সহায়তা করে এবং খরচ কমানোর সুযোগ প্রদান করে। Provisioned Mode অধিক নিয়ন্ত্রণ প্রদান করে কিন্তু ম্যানুয়াল স্কেলিংয়ের প্রয়োজন হয়।
এখন, আপনি DynamoDB টেবিলের scaling এবং auto scaling কনফিগারেশন সম্পর্কে জানতে পারলেন।
Read more