Amazon DynamoDB একটি managed NoSQL ডেটাবেস সার্ভিস, এবং এর খরচ আপনার ব্যবহারের ওপর নির্ভর করে। DynamoDB এর মূল খরচ নির্ধারণ হয় কয়েকটি প্রধান উপাদান থেকে, যেমন: Read/Write Capacity Units (RCU/WCU), Data Storage, Data Transfer, এবং Backup and Restore। তবে, আপনি কিভাবে এই খরচগুলো নিয়ন্ত্রণ করবেন এবং আরও কার্যকরীভাবে ব্যবহার করবেন, তা নির্ভর করে কনফিগারেশন এবং ব্যবহারের ধরনে।
DynamoDB এ Read Capacity Units (RCU) এবং Write Capacity Units (WCU) এর মাধ্যমে আপনি নির্ধারণ করেন কতটা রিড/রাইট অপারেশন আপনার টেবিল প্রতি সেকেন্ডে সাপোর্ট করতে পারবে।
DynamoDB তে ডেটা সংরক্ষণের জন্য আপনাকে মাসিক ফি দিতে হয়। এই খরচ আপনার টেবিলের মধ্যে সংরক্ষিত ডেটার পরিমাণের ওপর নির্ভর করে।
যেহেতু DynamoDB এর খরচ ব্যাবহারের ওপর নির্ভর করে, সেক্ষেত্রে কিছু কৌশল অবলম্বন করলে আপনি খরচ কমাতে পারবেন:
DynamoDB এর খরচ প্রধানত আপনার ব্যবহার এবং টেবিলের কনফিগারেশনের ওপর নির্ভর করে। খরচ অপটিমাইজ করার জন্য আপনাকে আপনার অ্যাপ্লিকেশন বা ওয়েবসাইটের প্রয়োজন অনুযায়ী সঠিক কনফিগারেশন এবং মডেল নির্বাচন করতে হবে। সঠিকভাবে Provisioned Mode, Auto Scaling, Secondary Indexes এবং On-demand Mode ব্যবহারের মাধ্যমে DynamoDB এর খরচ কমিয়ে আনা সম্ভব।
Amazon DynamoDB দুটি মূল pricing model অফার করে: On-Demand Capacity এবং Provisioned Capacity। প্রতিটি মডেলের জন্য বিভিন্ন প্রকারে চার্জ নেওয়া হয়, এবং আপনি আপনার অ্যাপ্লিকেশন বা ব্যবহারের ধরন অনুসারে যে মডেলটি বেছে নেবেন সেটি আপনার খরচ নির্ধারণ করবে।
On-Demand Capacity Mode হল একটি পে-অ্যাজ-ইউ-গো মডেল, যেখানে আপনি আপনার ডেটাবেসের জন্য কোনো থ্রুপুট নির্ধারণ করেন না। DynamoDB স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশনটির ট্রাফিকের ভিত্তিতে থ্রুপুট (READ/WRITE) স্কেল করে। এটি তখনই কার্যকরী যখন আপনার ডেটাবেসের লোড অস্থির থাকে এবং আপনি প্রেডিক্ট করতে না পারেন কতটুকু থ্রুপুট প্রয়োজন হবে।
On-Demand Mode ব্যবহারের জন্য AWS একটি নির্দিষ্ট পরিমাণ খরচ নেবে প্রতি রিড এবং রাইট অপারেশনের উপর।
Provisioned Capacity Mode আপনাকে আপনার ডেটাবেসের জন্য নির্দিষ্ট Read Capacity Units (RCU) এবং Write Capacity Units (WCU) নির্ধারণ করার সুযোগ দেয়। এটি অনুমানযোগ্য এবং নির্দিষ্ট লোডের জন্য উপযুক্ত। আপনি যদি জানেন আপনার ডেটাবেসে কতটা ট্রাফিক থাকবে এবং কত রিড এবং রাইট অপারেশন প্রয়োজন হবে, তাহলে Provisioned Capacity মোড একটি উপযুক্ত বিকল্প হতে পারে।
Feature | On-Demand Capacity | Provisioned Capacity |
---|---|---|
Capacity Provisioning | DynamoDB auto-scales based on demand. | You manually set the RCU and WCU. |
Scaling | Automatic scaling without configuration. | Requires auto-scaling configuration or manual scaling. |
Cost Model | Pay-per-request (read/write operations). | Pay for provisioned RCU/WCU, with optional auto-scaling. |
Predictability | Costs are unpredictable. | Costs are more predictable with fixed capacity. |
Usage Scenario | Ideal for unpredictable or variable workloads. | Ideal for predictable workloads with steady traffic. |
আপনার ব্যবহারের ধরন অনুযায়ী, আপনি যে মডেলটি নির্বাচন করবেন তা আপনার DynamoDB ব্যবহারের খরচ এবং কার্যকারিতা প্রভাবিত করবে।
DynamoDB তে Read Capacity Units (RCU) এবং Write Capacity Units (WCU) হল এমন রিসোর্স যা আপনার টেবিলের জন্য নির্ধারিত করা হয়, যার মাধ্যমে আপনি টেবিলের রিড এবং রাইট অপারেশন গুলি পরিচালনা করতে পারেন। আপনার ডেটাবেসের জন্য এই ক্যাপাসিটি ইউনিটের কস্ট ক্যালকুলেশন করা গুরুত্বপূর্ণ, যাতে আপনি আপনার অ্যাপ্লিকেশনের পারফরম্যান্স ও খরচের মধ্যে সঠিক ভারসাম্য বজায় রাখতে পারেন।
RCU এবং WCU এর কস্ট ক্যালকুলেশন করতে, প্রথমে আপনাকে বুঝতে হবে প্রতিটি ইউনিট কিভাবে কাজ করে এবং প্রতি ইউনিটের খরচ কী।
1 RCU হল 1 ডাটা রিড অপারেশন প্রতি সেকেন্ডে, যেখানে এক রেকর্ডের সাইজ 4 KB এর কম। যদি আপনি strongly consistent read ব্যবহার করেন, তবে এটি 1 RCU প্রতি অপারেশন; এবং eventually consistent read ব্যবহার করলে এটি 1 RCU প্রতি 2 অপারেশন।
উদাহরণ:
1 WCU হল 1 ডাটা রাইট অপারেশন প্রতি সেকেন্ডে, যেখানে এক রেকর্ডের সাইজ 1KB এর কম।
উদাহরণ:
DynamoDB তে আপনি Provisioned Capacity Mode বা On-Demand Capacity Mode এ কাজ করতে পারেন। এখানে আমরা Provisioned Mode এর কস্ট ক্যালকুলেশন দেখব, যেখানে আপনি রিড এবং রাইট ক্যাপাসিটি ইউনিট (RCU/WCU) নির্ধারণ করেন।
যদি আপনার 1000 RCU প্রয়োজন হয়, তাহলে 1 ঘণ্টায় কস্ট হবে:
1000 RCU × $0.00013 = $0.13 per hour
যদি আপনার 1000 WCU প্রয়োজন হয়, তাহলে 1 ঘণ্টায় কস্ট হবে:
1000 WCU × $0.00065 = $0.65 per hour
On-demand mode এ কস্ট একটু আলাদা। এখানে আপনি নির্দিষ্ট ক্যাপাসিটি কিনে নেন না, বরং আপনার ব্যবহার অনুযায়ী কস্ট হয়।
যদি আপনার 1 মিলিয়ন রিড অপারেশন থাকে এবং 1 মিলিয়ন রাইট অপারেশন থাকে, তাহলে:
1,000,000 রিড অপারেশন × $1.25 = $1.25
1,000,000 রাইট অপারেশন × $1.25 = $1.25
এখন, ধরে নিন আপনার সিস্টেমের জন্য 1000 RCU এবং 1000 WCU প্রয়োজন এবং আপনি 24 ঘণ্টা ব্যবহার করবেন।
RCU কস্ট:
1000 RCU × $0.00013 per hour × 24 hours = $3.12 per day
WCU কস্ট:
1000 WCU × $0.00065 per hour × 24 hours = $15.60 per day
মোট কস্ট (প্রতিদিন):
$3.12 (RCU) + $15.60 (WCU) = $18.72 per day
DynamoDB তে কস্ট ক্যালকুলেশন করার সময় আপনাকে আপনার অ্যাপ্লিকেশনের ট্রাফিক এবং ডেটার আকারের ওপর ভিত্তি করে RCU/WCU সঠিকভাবে কনফিগার করতে হবে। Provisioned Capacity Mode এ আপনি প্রিভিউ রিড এবং রাইট অপারেশনের জন্য নির্দিষ্ট পরিমাণ ইউনিট নির্ধারণ করবেন এবং On-Demand Mode এ আপনি ব্যবহার অনুসারে কস্ট দেবেন।
এছাড়া, আপনি Auto Scaling ব্যবহার করে DynamoDB টেবিলের রিড এবং রাইট কেপাসিটি অ্যাডজাস্ট করতে পারেন, যাতে আপনি খরচ এবং পারফরম্যান্সের মধ্যে একটি ভাল ভারসাম্য বজায় রাখতে পারেন।
DynamoDB Accelerator (DAX) হলো একটি fully managed, in-memory caching service যা DynamoDB এর সাথে একত্রে কাজ করে, ডেটাবেসের পারফরম্যান্স উন্নত করতে এবং কস্ট অপটিমাইজেশন করতে সাহায্য করে। DAX ব্যবহার করার মাধ্যমে আপনি read latency হ্রাস করতে পারেন এবং টেবিলের রিড অপারেশনের জন্য প্রয়োজনীয় কস্ট কমাতে পারেন, বিশেষত যেগুলি উচ্চ-ফ্রিকোয়েন্সি বা উচ্চ-লোড অপারেশন।
DAX মূলত DynamoDB এর জন্য একটি in-memory cache হিসেবে কাজ করে, যা ডেটা রিড করার সময় রেসপন্স টাইম কমিয়ে দেয় এবং ডেটাবেসের উপর লোড কমায়। এতে করে কস্ট কমানো সম্ভব হয়, কারণ রিড অপারেশন কম হয় এবং সিস্টেমে ডেটাবেসের জন্য কম রিসোর্স প্রয়োজন হয়।
DAX ডেটাকে ইন-মেমোরি সংরক্ষণ করে, তাই প্রথমবারের মতো রিড করার সময় এটি DynamoDB থেকে ডেটা রিড করার বদলে DAX cache থেকে ডেটা সরাসরি রিট্রিভ করে। এর ফলে রিড অপারেশন দ্রুত সম্পন্ন হয় এবং ডেটাবেসের উপর চাপ কমে।
কিভাবে কস্ট কমায়:
যখন DAX ব্যবহার করা হয়, তখন Write Latency কিছুটা বাড়তে পারে, কারণ DAX ইন-মেমোরি ডেটাকে আপডেট করতে হবে। তবে, এটি শুধুমাত্র রিড অপারেশনের জন্য কমাতে সাহায্য করে, write অপারেশনগুলো DynamoDB তেই থাকে।
কিভাবে কস্ট কমায়:
DAX আপনার টেবিলের Read/Write কস্ট কমানোর পাশাপাশি DynamoDB Auto Scaling এর সাথে ইন্টিগ্রেটেড হতে পারে, যার মাধ্যমে ডাইনামিকভাবে রিসোর্স অ্যালোকেশন কাস্টমাইজ করা যায়।
কিভাবে কস্ট কমায়:
আপনার অ্যাপ্লিকেশনটির মধ্যে কতটুকু ডেটা একবার রিড করার পর ক্যাশে থেকে পাওয়া যাবে, তা DAX ক্যাশ হিট রেটের উপর নির্ভর করে। DAX ক্যাশ হিট রেট বাড়ানোর জন্য, আপনাকে আপনার অ্যাপ্লিকেশন ও ক্যাশিং কৌশলগুলো পর্যালোচনা করতে হবে।
DAX ক্লাস্টারের আকারও কস্টের উপর প্রভাব ফেলে। DAX ক্লাস্টারের সাইজ সঠিকভাবে নির্বাচন করা গুরুত্বপূর্ণ, কারণ আপনি অতিরিক্ত ক্ষমতা রাখলে সেখানকার খরচ বাড়বে, এবং কম ক্ষমতা রাখলে রিড পারফরম্যান্স কমে যাবে।
ডেটা যখন ক্যাশে সংরক্ষিত থাকে, তখন এটি কিছু সময় পরে মেয়াদোত্তীর্ণ হতে পারে। আপনি cache expiration বা eviction policies সেট করে, পুরনো ডেটা মুছে দিতে পারেন যাতে মেমরি ব্যবহারের অভ্যন্তরীণ খরচ কমে এবং নতুন ডেটা জমা হতে পারে।
DAX এর কস্ট নির্ভর করে কিছু মূল ফ্যাক্টরের উপর:
Small
, Medium
, Large
) এবং ক্লাস্টারের সাইজের উপর খরচ নির্ভর করবে।DAX কস্ট ক্যালকুলেশনের জন্য AWS Price Calculator ব্যবহার করতে পারেন:
DynamoDB Accelerator (DAX) ব্যবহার করে আপনি ডেটাবেসের পারফরম্যান্স উন্নত করতে পারবেন এবং সেই সাথে কস্ট অপটিমাইজেশনও করতে পারবেন। DAX এর মাধ্যমে ইন-মেমরি ক্যাশিংয়ের সুবিধা পেয়ে ডেটার রিড এবং রাইট অপারেশন দ্রুত করা সম্ভব, এবং এভাবে DynamoDB এর ওপর চাপ কমানো যায়। তবে, DAX ব্যবহার করার সময় সঠিক কনফিগারেশন, ক্যাশ হিট রেট, এবং স্কেলিং অপশনগুলো carefully সেট করা উচিত, যাতে কস্ট অপটিমাইজেশনের সাথে পারফরম্যান্সও বজায় থাকে।
DynamoDB Reserved Capacity হল একটি সাবস্ক্রিপশন ভিত্তিক অফার যা আপনাকে আপনার DynamoDB টেবিলের জন্য নির্দিষ্ট পরিমাণ রিড এবং রাইট ক্যাপাসিটি ইউনিট (RCU, WCU) পূর্বে বুক করতে দেয়। যখন আপনি Reserved Capacity কিনেন, আপনি নির্দিষ্ট পরিমাণ রিড এবং রাইট ক্যাপাসিটি ইউনিট (RCU এবং WCU) আংশিক বা পূর্ণকালীনভাবে সংরক্ষণ করেন। এটি দীর্ঘমেয়াদী ব্যবহারের জন্য খরচ কমাতে এবং পারফরম্যান্স স্থিতিশীল রাখতে সহায়তা করে।
DynamoDB-তে Provisioned Capacity Mode ব্যবহারের ক্ষেত্রে, আপনি নির্দিষ্ট পরিমাণ Read Capacity Units (RCUs) এবং Write Capacity Units (WCUs) নির্ধারণ করেন। Reserved Capacity আপনাকে এই ইউনিটগুলির জন্য প্রি-পেইড বিকল্প প্রদান করে, যার মাধ্যমে আপনি ধারাবাহিকভাবে পারফরম্যান্স এবং খরচ নিয়ন্ত্রণ করতে পারবেন।
Reserved Capacity আপনাকে এক বছরের জন্য নির্দিষ্ট RCU এবং WCU নির্ধারণ করতে দেয়, যার ফলে আপনি অতিরিক্ত খরচ কমাতে পারবেন।
বৈশিষ্ট্য | Reserved Capacity | On-Demand Capacity Mode |
---|---|---|
খরচ | প্রি-পেইড ডিসকাউন্ট পেয়ে কম খরচ | প্রতি রিড/রাইট অপারেশন অনুযায়ী খরচ |
ক্ষমতা নির্ধারণ | পূর্বনির্ধারিত RCU/WCU | স্বয়ংক্রিয়ভাবে টেবিলের জন্য RCU/WCU বরাদ্দ করা হয় |
স্কেলিং | পূর্বানুমানিত এবং স্থিতিশীল | স্বয়ংক্রিয়ভাবে ট্রাফিক অনুযায়ী স্কেল হয় |
উপযুক্ত ব্যবহার | পূর্বানুমানিত ডেটাবেস ট্রাফিক | যখন ডেটাবেসের ট্রাফিক অস্থির বা অজানা থাকে |
খরচ পরিকল্পনা | পূর্বানুমানিত খরচ নিয়ন্ত্রণ | গড় খরচের উপর নির্ভরশীল |
DynamoDB Reserved Capacity আপনাকে দীর্ঘমেয়াদী খরচ সাশ্রয় করতে এবং উচ্চ পারফরম্যান্স নিশ্চিত করতে সহায়তা করে। এটি বিশেষ করে তাদের জন্য উপকারী যারা পূর্বানুমানিত ডেটা ট্রাফিকের সঙ্গে কাজ করেন এবং যারা DynamoDB টেবিলের জন্য প্রেডিক্টেবল খরচ চান।
common.read_more