Header Ads

Header ADS

Billing Mode

 

1️⃣ Billing Mode মানে কি?

DynamoDB তে প্রত্যেক table এর জন্য আমরা বলতে পারি আমরা কতোটা খরচ করতে চাই এবং performance কেমন চাই

  1. এটা ঠিক করতে হয় table creation এ।

  2. এটা read/write operations এর উপর ভিত্তি করে খরচ + capacity decide করে

দুটি ধরন আছে:


2️⃣ ধরন ১: PAY_PER_REQUEST (On-Demand)

  1. মানে: তুমি শুধু যতো request করবে, তার জন্য pay করবে।
  2. তুমি capacity set করতে হবে না, DynamoDB automatic scale করবে।
  3. উপযুক্ত যখন: traffic unpredictable, যেমন startup বা experiment phase।

উদাহরণ:

তুমি একটা Users table তৈরি করছো। কখনো ১০০ requests/sec, কখনো ৫ requests/sec।

aws dynamodb create-table \
  --table-name Users \
  --attribute-definitions AttributeName=user_id,AttributeType=S \
  --key-schema AttributeName=user_id,KeyType=HASH \
  --billing-mode PAY_PER_REQUEST \
  --endpoint-url http://localhost:8000

বিশেষ কথা:

ছোট ছোট apps, local dev বা unpredictable load এর জন্য perfect

দাম বেশি হতে পারে যদি load বেশি হয়


3️⃣ ধরন ২: PROVISIONED

  1. মানে: তুমি আগে থেকে বলবে DynamoDB কত read/write handle করবে।

  2. তুমি দুইটা number দিতে হবে:

    1. Read Capacity Units (RCU)

    2. Write Capacity Units (WCU)

  3. উপযুক্ত যখন: traffic predictable, enterprise apps

উদাহরণ:

তুমি একটা Orders table তৈরি করছো।

তুমি জানো প্রতি সেকেন্ডে ১০০ read + ৫০ write লাগবে।

aws dynamodb create-table \
  --table-name Orders \
  --attribute-definitions AttributeName=user_id,AttributeType=S AttributeName=order_date,AttributeType=N \
  --key-schema AttributeName=user_id,KeyType=HASH AttributeName=order_date,KeyType=RANGE \
  --billing-mode PROVISIONED \
  --provisioned-throughput ReadCapacityUnits=100,WriteCapacityUnits=50 \
  --endpoint-url http://localhost:8000

বিশেষ কথা:

তুমি fixed number এর জন্য pay করবে, unpredictable spikes হলে throttling হতে পারে

Cost predictable, বড় apps এ সাশ্রয়ী


4️⃣ সহজ comparison – উদাহরণসহ

SituationBilling Modeব্যাখ্যা
তুমি নতুন startup app বানাচ্ছো, traffic unknownPAY_PER_REQUESTশুধু যে request করছো তার জন্য pay করবে, auto scale
তুমি bank system বানাচ্ছো, predictable 100 reads/sec, 50 writes/secPROVISIONEDFixed capacity, predictable cost, একটু cheaper per request
তুমি traffic অনেক random, কিন্তু budget limitedPAY_PER_REQUESTSimple, auto scale, কিন্তু দাম বেশি হতে পারে
তুমি traffic known, কিন্তু কিছু spike হলে adjust করতে চাওPROVISIONED + Auto-scalingCapacity adjust করবে, cost control possible

💡 Summary:

  1. PAY_PER_REQUEST: Flexible, auto-scale, unpredictable traffic

  2. PROVISIONED: Fixed capacity, cheaper if traffic predictable

  3. Main Use: Decide cost vs performance, traffic pattern এর উপর


Powered by Blogger.