সরাসরি পর্বে যান
পর্ব ৭২ · ৮১-এর মধ্যে · মডিউল ১৩

Cloud-এর বিল — on-demand, reserved, spot আর data transfer

Reading the Cloud Bill — On-Demand, Reserved, Spot and Data Transfer

Taught in Bangla, this lesson reads a cloud bill line by line, compares on-demand, savings plans, reserved and spot pricing, and derives the break-even utilisation of a commitment. It designs for spot interruption, estimates storage and data transfer bills, exposes egress, cross-zone and NAT charges, and covers free tier traps, GPU costs, pricing calculators and payment risks from Bangladesh, all at assumed prices with simulators.

এই পর্বে যা শিখবেন

  • একটি cloud বিলের প্রতিটি সারি পড়া, আর সেখান থেকে বড় খরচ খুঁজে বের করা
  • On-demand, savings plan, reserved আর spot-এর পার্থক্য সংখ্যা দিয়ে বলা
  • Commitment-এর break-even utilisation আর সঠিক মাপ হাতে হিসাব করা
  • Spot-এর interruption সামলানোর নকশা যাচাই করা
  • Storage আর data transfer-এর বিল আগেই অনুমান করা
  • লুকানো সারি, free tier-এর ফাঁদ আর বাংলাদেশ থেকে পেমেন্টের ঝুঁকি চেনা

১ · বিল পড়া — একটি মাস, সারি ধরে ধরে

পর্ব ৭১-এ বলেছিলাম, এবার আসল বিলের গঠন দেখব। মডিউলের শুরুতেই একটি সত্য মনে রাখুন: cloud-এর বিল কোনো রহস্য নয়। এটি অনেকগুলো মিটারের যোগফল।

বাসার বিদ্যুৎ বিল ভাবুন। “ইউনিট × দর”, তার সাথে মিটার ভাড়া, ডিমান্ড চার্জ আর ভ্যাট। মোট টাকা দেখে কেউ বুঝতে পারেন না কেন এ মাসে বিল বেশি। সারি ধরে পড়লে বোঝা যায়: এসি চলেছে বেশি, নাকি দর বেড়েছে। Cloud-এর বিলও ঠিক তাই, শুধু সারির সংখ্যা অনেক বেশি।

বিলের প্রতিটি সারিকে বলে line item. এর তিনটি অংশ: কী ব্যবহার হয়েছে, কতটা (quantity), আর এককের দাম (unit price). সব provider-এর বিল শেষ পর্যন্ত এই সূত্রেই চলে: cost = quantity × unit price. পর্ব ০৪-এর কাল্পনিক অনলাইন বাজার অ্যাপ-এর হিসাবে মাসে $৪,৭০০ ধরা হয়েছিল (staff বাদে)। সেই অ্যাপের আসল ধরনের একটি বিল এবার দেখুন।

এই পর্বের ধরে নেওয়া দর

সব দাম অনুমিত গোল সংখ্যা, কোনো provider-এর আসল দাম নয়। বিলটিও কাল্পনিক। VM ঘণ্টায় $০.৫০ (পর্ব ০৪)। Disk প্রতি GB-মাসে $০.১০, object storage $০.০২, snapshot $০.০৫। Internet egress প্রতি GB $০.১০, zone পার হলে $০.০২, region পার হলে $০.০৪। NAT gateway ঘণ্টায় $০.০৫ আর প্রতি GB $০.০৫। মাস ৩০ দিনের, ৭২০ ঘণ্টা। নিজের হিসাবের আগে provider-এর pricing পাতা দেখে নিন।

খাতসারিপরিমাণ × দরখরচ
Compute১০টি VM7,200 h × $0.50$৩,৬০০
ভুলে চলা VM720 h × $0.50$৩৬০
StorageDisk2,000 GB × $0.10$২০০
Object storage5,000 GB × $0.02$১০০
Object GET40M × $0.50$২০
পুরোনো snapshot1,600 GB × $0.05$৮০
কোনো VM-এ না লাগানো disk300 GB × $0.10$৩০
NetworkInternet egress3,000 GB × $0.10$৩০০
Zone পার হওয়া8,000 GB × $0.02$১৬০
NAT ঘণ্টা (২টি)1,440 h × $0.05$৭২
NAT ডেটা6,000 GB × $0.05$৩০০
Load balancer (২টি)1,440 h × $0.025$৩৬
Public IP (১০টি)7,200 h × $0.005$৩৬
LogLog জমা400 GB × $0.50$২০০
SupportSupport planমাসিক$২৪০
মোট$৫,৭৩৪

অনুমান ছিল $৪,৭০০, বিল এল $৫,৭৩৪। ব্যবধান $১,০৩৪, মানে ২২% বেশি। অনুমানে compute, disk, egress আর support ঠিকই ছিল। বাড়তি টাকার বড় অংশ এসেছে সেই সারিগুলো থেকে, যা কেউ হিসাবে ধরেননি: NAT, zone পার হওয়া, log আর snapshot.

বিলের পাঁচ খাত, বড় থেকে ছোট

Monthly bill by category (fictional bill, assumed prices)

কাল্পনিক বিলের খাতভিত্তিক ভাগ Compute: $3,960 Network: $904 Storage: $430 Support: $240 Log: $200 ComputeNetworkStorageSupportLog $৩,৯৬০ · ৬৯.১%$৯০৪ · ১৫.৮%$৪৩০ · ৭.৫%$২৪০ · ৪.২%$২০০ · ৩.৫% মোট $৫,৭৩৪ · সব সংখ্যা অনুমিত
ছবি ৭২.১ — Compute বড়, তাই সবার চোখ সেখানে যায়। কিন্তু অনুমানের বাইরের টাকার বড় অংশ এসেছে Network-এর সারি থেকে। (দশমিক গোল করায় যোগফল ১০০.১%.)

বাস্তব বিলে হাজারো সারি থাকে, তাই কেউ হাতে হাতে পড়েন না, script বা tool দিয়ে পড়েন। Provider-রা বিস্তারিত ব্যবহারের ফাইল দেন। AWS-এ Cost and Usage Report (CUR), Azure-এ Cost Management export, Google Cloud-এ billing export. নিচের নমুনা সেই ধরনের একটি ছোট CSV, কলামের নাম সরল করা। Script-টি পাতার ভেতর থেকেই একটি দূরের Linux sandbox-এ চলে, কোনো account লাগে না।

# Top cost items from a fictional CUR-style CSV. All prices are ASSUMED.
set -euo pipefail
cat > bill.csv <<'CSV'
service,usage_type,resource,quantity,unit_price,cost
Compute,BoxUsage,web-fleet,7200,0.50,3600.00
Compute,BoxUsage,forgotten-vm,720,0.50,360.00
Storage,DiskGB,data-disks,2000,0.10,200.00
Storage,ObjectGB,media-bucket,5000,0.02,100.00
Storage,ObjectGET,media-bucket,40,0.50,20.00
Storage,SnapshotGB,old-snapshots,1600,0.05,80.00
Storage,DiskGB,unattached-disks,300,0.10,30.00
Network,InternetOut,web-fleet,3000,0.10,300.00
Network,CrossAZ,app-to-db,8000,0.02,160.00
Network,NatHours,nat-gateways,1440,0.05,72.00
Network,NatData,nat-gateways,6000,0.05,300.00
Network,LbHours,load-balancers,1440,0.025,36.00
Network,PublicIP,public-ips,7200,0.005,36.00
Logging,LogIngest,app-logs,400,0.50,200.00
Support,Plan,business-support,1,240,240.00
CSV
total=$(awk -F, 'NR>1 {s+=$6} END {printf "%.2f", s}' bill.csv)
echo "total: \$$total"
echo "--- by service ---"
awk -F, 'NR>1 {s[$1]+=$6} END {for (k in s) printf "%.2f %s\n", s[k], k}' bill.csv |
  LC_ALL=C sort -rn |
  awk -v t="$total" '{printf "%-9s %9s %5.1f%%\n", $2, $1, 100*$1/t}'
echo "--- top 5 line items ---"
tail -n +2 bill.csv | LC_ALL=C sort -t, -k6,6 -rn | head -n 5 |
  awk -F, '{printf "%-12s %-17s %8s\n", $2, $3, $6}'
echo "--- check quantity x unit_price ---"
awk -F, 'NR>1 { d=$4*$5-$6; if (d>0.005 || d<-0.005) {print "BAD", $0; bad++} }
  END {print bad+0, "rows do not match"}' bill.csv
total: $5734.00
--- by service ---
Compute     3960.00  69.1%
Network      904.00  15.8%
Storage      430.00   7.5%
Support      240.00   4.2%
Logging      200.00   3.5%
--- top 5 line items ---
BoxUsage     web-fleet          3600.00
BoxUsage     forgotten-vm        360.00
NatData      nat-gateways        300.00
InternetOut  web-fleet           300.00
Plan         business-support    240.00
--- check quantity x unit_price ---
0 rows do not match

by service অংশটি ছবি ৭২.১-এর সংখ্যাই দিচ্ছে। top 5-এর দ্বিতীয় সারিটি লক্ষ করুন: forgotten-vm $৩৬০, যেখানে পুরো internet egress $৩০০। আরেকটি ধরা পড়ার মতো বিষয়, NatData আর InternetOut সমান। শেষ অংশটি যাচাই: প্রতিটি সারিতে quantity × unit price মিলিয়ে দেখা, ফলে 0 rows do not match. আসল CUR-এর কলামের নাম আলাদা, আর সংখ্যায় অনেক বেশি। তবে group by → sort → top N কৌশলটি একই, যা পর্ব ০৯-এ log-এ করেছিলেন।

২ · Compute-এর তিন দর — on-demand, অঙ্গীকার আর spot

একই VM, একই কাজ, অথচ কেনার ধরনে দাম বদলায়। ঢাকা থেকে যাতায়াতের কথা ভাবুন। হঠাৎ দরকারে CNG (on-demand): যখন খুশি, দাম বেশি। মাসিক চুক্তির গাড়ি (commitment): না চালালেও ভাড়া, তবে প্রতি কিলোমিটার সস্তা। আর ফাঁকা ট্রাকে ফিরতি পথের জায়গা (spot): খুব সস্তা, কিন্তু মালিক ডাকলেই নেমে যেতে হয়।

On-demand

কোনো অঙ্গীকার নেই। চালু করলে মিটার চলে, বন্ধ করলে থামে। অজানা বা অল্প দিনের load-এ ভালো।

এখানে ধরা: $০.৫০/ঘণ্টা

Commitment (১ বা ৩ বছর)

নির্দিষ্ট ব্যবহারের প্রতিশ্রুতি, বদলে ছাড়। চলুক বা না চলুক, দাম দিতেই হবে।

এখানে ধরা: ১ বছরে ৩০% ছাড়, ৩ বছরে ৫০%

Spot

Provider-এর ফাঁকা ক্ষমতা। ছাড় সবচেয়ে বেশি, কিন্তু স্বল্প নোটিশে ফেরত যায়। দামও বদলাতে পারে।

এখানে ধরা: on-demand-এর ৩০%

Commitment-এর ভেতরে দুটি বড় ধরন আছে। Reserved instance নির্দিষ্ট ধরনের ক্ষমতার ওপর অঙ্গীকার, যেমন একটি instance family, region. Savings plan অঙ্গীকার করে ঘণ্টাপ্রতি খরচের ওপর, যেমন “ঘণ্টায় $৩.৫০”, ফলে instance type বদলালেও ছাড় থাকতে পারে। সাধারণত নমনীয়তা যত বেশি, ছাড় তত কম। পুরো টাকা আগাম দিলে (upfront payment) ছাড় আরও বাড়তে পারে।

ধারণাAWSAzureGoogle Cloud
অঙ্গীকার: নির্দিষ্ট resourceReserved InstancesReservationsResource-based CUD
অঙ্গীকার: খরচের অঙ্কSavings PlansSavings plan for computeSpend-based CUD
ফাঁকা ক্ষমতাSpot InstancesSpot Virtual MachinesSpot VMs (আগের ধরন preemptible VMs)
নিজে থেকে পাওয়া ছাড়——Sustained use discount (কিছু machine series-এ)

নামগুলো লেখার সময়ের, আর শর্ত provider-ভেদে আলাদা। একটি বিভ্রান্তি দূর করে নিন: এই ছাড়গুলোর বেশিরভাগই শুধু বিলের হিসাব। এগুলো সাধারণত VM চালু হওয়ার নিশ্চয়তা দেয় না। নিশ্চিত ক্ষমতা চাইলে আলাদা capacity reservation লাগে।

এবার একটি VM-এর পুরো মাস তিন দরে পাশাপাশি দেখুন। VM চলছে, মাঝে ৫ দিন বন্ধ, আর spot-এ দুবার interruption. প্রতিবার ২ ঘণ্টার কাজ আবার করতে হয়।

শুরু থেকে এখন পর্যন্ত মোট বিল (অনুমিত দাম)
ক্যালেন্ডার ঘণ্টা
VM চলার ঘণ্টা
On-demand ($0.50)
১ বছরের অঙ্গীকার ($0.35)
Spot ($0.15)
Spot-এর বিল-ঘণ্টা
  1. দিন ১, শুরু. একই VM, তিনটি হিসাব। On-demand ঘণ্টায় $০.৫০। অঙ্গীকারে ৩০% ছাড়ে $০.৩৫। Spot ঘণ্টায় $০.১৫।
  2. দিন ১০. ২৪০ ঘণ্টা চলল। On-demand $১২০, অঙ্গীকার $৮৪, spot $৩৬. এখনো সব ঠিক, spot এগিয়ে।
  3. দিন ১২: প্রথম interruption. VM ফেরত গেল, ২ ঘণ্টার কাজ হারাল। নতুন VM-এ সেই কাজ আবার হলো। Spot-এর বিল-ঘণ্টা ২৮৮ নয়, ২৯০. তাই বিল $৪৩.৫০।
  4. দিন ২০. ৪৮০ ঘণ্টা শেষ। On-demand $২৪০, অঙ্গীকার $১৬৮, spot $৭২.৩০.
  5. দিন ২১ থেকে ২৫: VM বন্ধ. On-demand আর spot থেমে গেল। অঙ্গীকারের মিটার কিন্তু চলছে: ৬০০ × $০.৩৫ = $২১০. এই ৫ দিনে $৪২ কোনো কাজ ছাড়াই গেল।
  6. দিন ২৮: দ্বিতীয় interruption. VM আবার চালু, আরও ৪৮ ঘণ্টা। On-demand $২৬৪. Spot-এ ৪৮ ঘণ্টা আর ২ ঘণ্টা আবার করা কাজ: ৫৩২ × $০.১৫ = $৭৯.৮০.
  7. দিন ৩০: মাস শেষ. VM চলেছে ৬০০ ঘণ্টা। On-demand ৬০০ × $০.৫০ = $৩০০. অঙ্গীকার ৭২০ × $০.৩৫ = $২৫২. Spot ৬০৪ × $০.১৫ = $৯০.৬০.
  8. সিদ্ধান্ত. Utilisation ৬০০ / ৭২০ = ৮৩.৩%, তাই অঙ্গীকার on-demand-এর চেয়ে $৪৮ সস্তা। ৫ দিনের বদলে ১০ দিন বন্ধ থাকলে অঙ্গীকারের মোট একই থাকত, আর on-demand হতো $২৪০। Spot সবচেয়ে সস্তা, তবে কেবল যদি কাজটি থামলে ক্ষতি না হয়।

৩ · Break-even — কতটা চালালে অঙ্গীকার লাভজনক

পর্ব ০৪-এ break-even ছিল কেনা server বনাম cloud-এর। এখানে একই যুক্তি, অনেক সরল চেহারায়। ঘণ্টায় on-demand দাম p, ছাড় d, আর utilisation U. মাসে H ঘণ্টা।

On-demand = p × H × U   Commitment = p × (1 − d) × H
সমান হলে p আর H কেটে যায়: U* = 1 − d

ফলটি সুন্দর: VM-এর দাম বা মাসের দৈর্ঘ্য কিছুই লাগে না। ৩০% ছাড়ে ৭০%, ৫০% ছাড়ে ৫০%. পুরো চালালে সময়ের হিসাবেও এটি একই কথা: ১ বছরের অঙ্গীকার শোধ হয় ১২ × ০.৭ = ৮.৪ মাসে, আর ৩ বছরের অঙ্গীকার ৩৬ × ০.৫ = ১৮ মাসে। মানে ১৮ মাসের আগে কাজটি বন্ধ হলে ৩ বছরের অঙ্গীকার লোকসান।

একটি VM-এর মাসিক বিল, utilisation অনুযায়ী

Monthly cost of one VM vs utilisation (assumed prices)

On-demand বনাম অঙ্গীকারের break-even $0$180$252$360 0%50%70%100% Utilisation ১ বছরের অঙ্গীকার ৩ বছরের অঙ্গীকার On-demand
ছবি ৭২.২ — অঙ্গীকার সমতল রেখা, ব্যবহার যাই হোক। On-demand রেখার ওপরে ওঠার বিন্দুই break-even.

একটি VM-এর জন্য নিয়ম সরল। কিন্তু fleet-এ প্রশ্নটি অন্য: কতগুলো VM-এর অঙ্গীকার নেব? নিচের সিমুলেটরের শেষ অংশ সেটি হিসাব করে। চাহিদা পর্ব ০৪-এর সেই দিন: ৪ ঘণ্টার ব্লকে ১, ১, ৩, ৪, ৫, ১০টি VM. পাতার ভেতরেই চলে, ছাড় বা blocks বদলে দেখুন।

// Commitment vs on-demand, by utilisation. All prices are ASSUMED.
const OD = 0.50, HOURS = 720;             // $ per VM-hour, 30-day month
const plans = [["1-year", 0.30, 12], ["3-year", 0.50, 36]]; // name, discount, months
const usd = (x) => "$" + x.toFixed(2);

console.log("one VM, one month");
console.log("util  on-demand   1-year   3-year  cheapest");
for (const u of [0.3, 0.5, 0.6, 0.7, 0.8, 1.0]) {
  const od = OD * HOURS * u;
  const paid = plans.map(([, off]) => OD * (1 - off) * HOURS);
  const best = od < Math.min(...paid) ? "on-demand" : paid[1] < paid[0] ? "3-year" : "1-year";
  console.log(String(u * 100).padStart(3) + "%" + usd(od).padStart(11)
    + usd(paid[0]).padStart(9) + usd(paid[1]).padStart(9) + "  " + best);
}
for (const [name, off, months] of plans)
  console.log(`${name}: break-even utilisation ${(1 - off) * 100}%, `
    + `or ${(months * (1 - off)).toFixed(1)} full months out of ${months}`);

// A fleet: how many VMs should the commitment cover? Demand per 4-hour block:
const blocks = [1, 1, 3, 4, 5, 10];
const month = (n, off) => {               // n VMs committed, the rest on-demand
  const extra = blocks.reduce((s, d) => s + Math.max(0, d - n) * 4, 0) * 30;
  return n * OD * (1 - off) * HOURS + extra * OD;
};
console.log("\nfleet: VMs committed -> monthly bill");
console.log("  n   1-year   3-year");
for (const n of [0, 1, 2, 3, 4, 5, 10])
  console.log(String(n).padStart(3) + usd(month(n, 0.30)).padStart(10)
    + usd(month(n, 0.50)).padStart(10));
one VM, one month
util  on-demand   1-year   3-year  cheapest
 30%    $108.00  $252.00  $180.00  on-demand
 50%    $180.00  $252.00  $180.00  3-year
 60%    $216.00  $252.00  $180.00  3-year
 70%    $252.00  $252.00  $180.00  3-year
 80%    $288.00  $252.00  $180.00  3-year
100%    $360.00  $252.00  $180.00  3-year
1-year: break-even utilisation 70%, or 8.4 full months out of 12
3-year: break-even utilisation 50%, or 18.0 full months out of 36

fleet: VMs committed -> monthly bill
  n   1-year   3-year
  0  $1440.00  $1440.00
  1  $1332.00  $1260.00
  2  $1344.00  $1200.00
  3  $1356.00  $1140.00
  4  $1428.00  $1140.00
  5  $1560.00  $1200.00
 10  $2520.00  $1800.00

৭০% সারিতে on-demand আর ১ বছরের অঙ্গীকার দুটিই $২৫২, আর ৫০% সারিতে on-demand আর ৩ বছর দুটিই $১৮০: ঠিক সূত্রের ফল। fleet অংশে কিছু না কিনলে মাসে $১,৪৪০। ১ বছরের ছাড়ে সবচেয়ে কম n = 1, $১,৩৩২। ৩ বছরের ছাড়ে n = 3 বা 4, $১,১৪০। আর peak-এর মাপে n = 10 নিলে? $২,৫২০, মানে কিছু না কেনার চেয়েও বেশি!

নিয়মটি fleet-এ এভাবে খাটে: n-তম VM-টিকে আলাদা করে দেখুন। সেটি দিনের কত অংশ দরকার? দ্বিতীয় VM দরকার ৬ ব্লকের ৪টিতে, মানে ৬৬.৭%, যা ৭০%-এর নিচে। তাই ১ বছরে সে অঙ্গীকারে ঢোকে না। এই স্থির অংশকে বলে baseline load: অঙ্গীকার মেঝের মাপে, চূড়ার মাপে নয়।

দুটি মাপ এখানে আলাদা করে শিখে রাখুন। Coverage বলে মোট ব্যবহারের কত অংশ অঙ্গীকারে ঢাকা। Commitment utilisation বলে কেনা অঙ্গীকারের কত অংশ কাজে লাগছে। দ্বিতীয়টি ১০০%-এর নিচে নামা মানে আপনি অব্যবহৃত জিনিসের দাম দিচ্ছেন। নিচে সেই ঘটনাটিই দেখুন। ১০টি VM-এর ১ বছরের অঙ্গীকার: মাসে ১০ × $২৫২ = $২,৫২০। মাস ৫-এ কোড ভালো হলো, ৫টি VM-এই কাজ চলে।

১০ VM-এর ১ বছরের অঙ্গীকার (অনুমিত দাম)
মাস
চলছে কয়টি VM
Commitment utilisation
এ মাসের অঙ্গীকারের বিল
On-demand হলে এ মাসে
On-demand-এর তুলনায় মোট সাশ্রয়
  1. মাস ১. ১০টি VM-ই চলছে। Commitment utilisation ১০০%. On-demand হলে $৩,৬০০ লাগত, দিচ্ছেন $২,৫২০। প্রতি মাসে $১,০৮০ সাশ্রয়।
  2. মাস ৪. চার মাসে জমল ৪ × $১,০৮০ = $৪,৩২০. সবাই খুশি, সিদ্ধান্ত ঠিক মনে হচ্ছে।
  3. মাস ৫: rightsizing. কোড ভালো হলো, ৫টি VM-এই কাজ হয়। On-demand হলে বিল অর্ধেক, $১,৮০০। কিন্তু অঙ্গীকারের বিল $২,৫২০-ই থাকল। এ মাসে লোকসান $৭২০, মোট নামল $৩,৬০০-এ।
  4. মাস ৮. Utilisation ৫০%, break-even ৭০%-এর নিচে। প্রতি মাসে $৭২০ কমছে। মোট $১,৪৪০.
  5. মাস ১০: শূন্য. আগের সব সাশ্রয় ফুরাল। প্রকৌশলীদের ভালো কাজের ফল বিলে পৌঁছাল না, অঙ্গীকারের আড়ালে আটকে গেল।
  6. মাস ১২. বছরে দিলেন ১২ × $২,৫২০ = $৩০,২৪০। On-demand হলে ৪ × $৩,৬০০ + ৮ × $১,৮০০ = $২৮,৮০০। অঙ্গীকারে $১,৪৪০ বেশি গেল।
  7. মেঝের মাপে নিলে. ৫টি VM-এর অঙ্গীকার: ১২ × $১,২৬০ = $১৫,১২০। প্রথম ৪ মাসের বাকি ৫টি on-demand: ৪ × $১,৮০০ = $৭,২০০। মোট $২২,৩২০, on-demand-এর চেয়ে $৬,৪৮০ কম, আর প্রথম সিদ্ধান্তের চেয়ে $৭,৯২০ কম।

পথ কি একেবারে বন্ধ? Provider-ভেদে কিছু উপায় থাকে: কোনো কোনো ক্ষেত্রে reservation বদলানো, বাতিল করা বা AWS-এর মতো marketplace-এ বিক্রি করা যায়, শর্তসহ। Savings plan-এর মতো খরচভিত্তিক অঙ্গীকার অন্য instance type-এ কাজে লাগতে পারে। এগুলোর ওপর ভরসা করে বড় অঙ্গীকার নেবেন না। আগাম টাকার হিসাবেও পর্ব ০৪-এর discount rate লাগে: ১০% হারে $২৫২-এর ১২ কিস্তির আজকের মূল্য প্রায় $২,৮৯৬। পুরো $৩,০২৪ আগাম দিলে যদি বাড়তি ৫% ছাড় মেলে, দাঁড়ায় $২,৮৭২.৮০, মাত্র সামান্য লাভ, অথচ টাকা আটকে গেল।

৪ · Spot — সস্তা, কিন্তু যেকোনো সময় ফেরত

পর্ব ১৯-এ কোন কাজ spot-এ চলে দেখেছেন: batch, render, CI, ML training. এখানে শুধু খরচ আর ঝুঁকির হিসাব। লেখার সময়ে ফেরত নেওয়ার আগে AWS-এ প্রায় দুই মিনিট, Azure আর Google Cloud-এ প্রায় ৩০ সেকেন্ডের নোটিশ আসে। সেই সময়ে তিনটি কাজ:

  • নোটিশ ধরা: VM-এর ভেতরে metadata দেখা বা event শোনা। Kubernetes-এ node drain আর PodDisruptionBudget এই কাজে লাগে।
  • কাজ বাঁচানো: Checkpoint বাইরের storage-এ লেখা। নোটিশের ওপর পুরো ভরসা না করে নিয়মিত লিখতে হবে।
  • কাজ ফিরিয়ে দেওয়া: অসম্পূর্ণ কাজ queue-তে ফেরত যাবে, অন্য VM তুলে নেবে। কাজ idempotent হতে হবে, পর্ব ৭১-এর সেই নিয়ম।

Spot-এর ঝুঁকি বেছে নেওয়া যায়। প্রতিটি instance type, zone-এর জোড়া একটি আলাদা capacity pool, আর একটি pool-এর ফেরত নেওয়া প্রায়ই একসাথে ঘটে। একাধিক type আর zone মিলিয়ে চালানোকে বলে diversification, ডিম এক ঝুড়িতে না রাখা। নিচের সিমুলেটর একই কাজ ৩০০টি ভিন্ন seed-এ চালায়। ধরে নেওয়া হয়েছে, প্রতি ঘণ্টায় একটি pool ফেরত যাওয়ার সম্ভাবনা ২%, আর ফেরত গেলে সেটি ৬ ঘণ্টা ফাঁকা পাওয়া যায় না। PRNG-র seed স্থির, তাই ফল প্রতিবার এক।

// Spot fleet with interruptions: 2,000 VM-hours of work on 10 VMs. Prices ASSUMED.
const OD = 0.50, SPOT = 0.15, VMS = 10, WORK = 2000;
const P = 0.02, DOWN = 6;      // chance a pool is reclaimed each hour, hours it stays gone
const rng = (seed) => () => {   // mulberry32: same numbers on every run
  seed = (seed + 0x6D2B79F5) | 0; let t = Math.imul(seed ^ (seed >>> 15), 1 | seed);
  t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t; return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
};
function run(pools, ckpt, seed) {           // ckpt = hours between saved checkpoints
  const r = rng(seed), size = VMS / pools;
  const down = Array(pools).fill(0), since = Array(pools).fill(0);
  let done = 0, billed = 0, h = 0;
  while (done < WORK) {
    h++;
    for (let i = 0; i < pools; i++) {
      if (down[i] > 0) { down[i]--; continue; }
      if (r() < P) { done -= since[i] * size; since[i] = 0; down[i] = DOWN; continue; }
      done += size; billed += size; since[i] = (since[i] + 1) % ckpt;
    }
  }
  return { hours: h, cost: billed * SPOT };
}
function trial(name, pools, ckpt) {         // the same job, 300 different seeds
  const rs = Array.from({ length: 300 }, (_, s) => run(pools, ckpt, s + 1));
  const avg = (f) => rs.reduce((a, x) => a + f(x), 0) / rs.length;
  const worst = Math.max(...rs.map((x) => x.hours));
  console.log(name.padEnd(26) + ("$" + avg((x) => x.cost).toFixed(0)).padStart(6)
    + avg((x) => x.hours).toFixed(0).padStart(7) + String(worst).padStart(7));
}
console.log("design                      cost  hours  worst");
console.log("on-demand, never reclaimed".padEnd(26) + ("$" + WORK * OD).padStart(6) + "    200    200");
trial("spot, 1 pool, save 1h", 1, 1);
trial("spot, 5 pools, save 1h", 5, 1);
trial("spot, 5 pools, save 8h", 5, 8);
trial("spot, 1 pool, save 40h", 1, 40);
design                      cost  hours  worst
on-demand, never reclaimed $1000    200    200
spot, 1 pool, save 1h       $300    229    284
spot, 5 pools, save 1h      $301    229    245
spot, 5 pools, save 8h      $322    245    274
spot, 1 pool, save 40h      $457    348    622

কলাম তিনটি: গড় খরচ, গড় ঘণ্টা, আর ৩০০ বারের মধ্যে সবচেয়ে খারাপ ঘণ্টা। On-demand-এ $১,০০০ আর ঠিক ২০০ ঘণ্টা। Spot-এ প্রতি ঘণ্টায় save করলে প্রায় $৩০০, অর্থাৎ ৭০% সাশ্রয়, বিনিময়ে গড়ে ২২৯ ঘণ্টা।

দ্বিতীয় আর তৃতীয় সারি তুলনা করুন। ১টি বা ৫টি pool-এ গড় প্রায় সমান, কারণ প্রতি VM-এর ঝুঁকি একই। ($১-এর পার্থক্য শেষ ঘণ্টার বাড়তি VM-এর।) কিন্তু সবচেয়ে খারাপ ফল ২৮৪ বনাম ২৪৫ ঘণ্টা। Diversification গড় নয়, লেজ কাটে। সময়সীমা ২৫০ ঘণ্টা হলে এই পার্থক্যই আসল। শেষ দুই সারিতে checkpoint-এর দাম: ৮ ঘণ্টা পরপর save করলে $৩২২, আর ৪০ ঘণ্টা পরপর, এক pool-এ, $৪৫৭, সবচেয়ে খারাপ ৬২২ ঘণ্টা। হারানো কাজের ঘণ্টারও টাকা লাগে, তাই spot-এর ছাড় checkpoint ছাড়া দ্রুত গলে যায়।

Spot-এর হিসাবে শুধু VM-এর ঘণ্টা ধরবেন না। Stateful database, একমাত্র leader, বা ব্যবহারকারীর সামনের একমাত্র copy spot-এ রাখবেন না। সিমুলেটরের ২% সম্ভাবনা শুধু একটি অনুমান, বাস্তবে pool-ভেদে অনেক আলাদা। GPU-র মতো চাহিদার জিনিসে spot পাওয়াই কঠিন হতে পারে। সময়সীমা শক্ত হলে on-demand-এ ফেরার পথ আগেই নকশায় রাখুন।

৫ · Storage-এর বিল — GB, operation আর retrieval

গুদামঘরের ভাড়া তিনভাবে আসে: কতটা জায়গা, মাল কতবার ঢুকল-বেরোল, আর দূরের গুদাম থেকে আনার খরচ। Storage-এর তিন মিটারও তাই। ধাপগুলোর বিস্তারিত পর্ব ২১-এ আছে, দরও সেখান থেকে নেওয়া: hot $০.০২০, cold জমা $০.০০৪ আর পড়া প্রতি GB $০.০৩।

মিটারকী গোনেফাঁদ
GB-monthকতটা ডেটা, কত দিনBlock disk-এ বরাদ্দের দাম, ব্যবহারের নয়: ৫০০ GB disk-এ ৫০ GB ডেটা থাকলেও $৫০
Operationপ্রতি PUT, GET, LISTছোট ফাইল অনেক হলে অনুরোধের বিল জমার বিলকে ছাড়ায়
Retrievalঠান্ডা ধাপ থেকে পড়া প্রতি GBন্যূনতম জমার সময়, আর হঠাৎ অডিটে সব পড়া

কাজ করা হিসাব: ১০,০০০ GB ব্যাকআপ। Hot-এ মাসে ১০,০০০ × $০.০২ = $২০০। Cold-এ জমা ১০,০০০ × $০.০০৪ = $৪০। যদি মাসে ২০% পড়া লাগে, ২,০০০ × $০.০৩ = $৬০ যোগ হয়, মোট $১০০, এখনো অর্ধেক। কিন্তু ৬০% পড়লে ৬,০০০ × $০.০৩ = $১৮০, মোট $২২০, hot-এর চেয়ে বেশি। সীমাটি বের করা সহজ:

0.004 + 0.03 × f = 0.020
f = 0.016 / 0.03 = 0.533 অর্থাৎ মাসে ৫৩.৩% ডেটা

এখানেও সেই একই ধাঁচ: কম স্থির দাম বনাম বেশি ব্যবহারের দাম, আর মাঝখানে একটি break-even. Operation-এর একটি উদাহরণ: ১,০০০ GB ডেটা ১০০ KB ফাইলে মানে ১ কোটি ফাইল। PUT প্রতি মিলিয়নে $৫ (অনুমিত) হলে শুধু তুলতেই $৫০, অথচ এক মাসের জমা মাত্র $২০। তাই ছোট ফাইল জোড়া দিয়ে বড় করে রাখাও একটি খরচের কৌশল। Lifecycle rule দিয়ে storage class বদলানোর সময়ও transition ফি থাকতে পারে।

৬ · Data transfer — ভেতরে আসা সস্তা, বেরোনো দামি

Data transfer সবচেয়ে কম বোঝা সারি। লঞ্চঘাট ভাবুন: ঘাটে নামতে টাকা লাগে না, মাল তুলে অন্য ঘাটে নিতে লাগে। একই ঘাটের ভেতরে ঠেলাগাড়ি বিনা খরচে, নদী পার হলে ভাড়া, আর দূরের জেলায় আরও বেশি। Provider-এর হিসাবও এমন দূরত্বের সিঁড়ি।

পথঅনুমিত দর/GBমনে রাখুন
Internet থেকে ভেতরে (ingress)$০সাধারণত বিনা খরচে, তবে NAT-এর processing আলাদা
একই AZ-এর ভেতরে$০Private IP-তে সাধারণত বিনা খরচে
AZ পার হওয়া$০.০২দুই দিক মিলিয়ে ধরা; Multi-AZ-এর দাম
Region পার হওয়া$০.০৪দূরত্ব ও region-ভেদে অনেক আলাদা
Internet-এ বাইরে (egress)$০.১০পরিমাণ বাড়লে ধাপে ধাপে কমতে পারে
NAT দিয়ে যাওয়া+$০.০৫উপরের দরের ওপরে বসে, দুই দিকেই
CDN থেকে ব্যবহারকারী$০.০৫Provider-এর origin থেকে CDN-এ ফি প্রায়ই কম বা শূন্য
Gateway endpoint দিয়ে bucket-এ$০পর্ব ২৬-এর সহজ জয়; সব service-এ নেই

লক্ষ করুন, ingress বিনা খরচে হলেও NAT পেরোলে নিস্তার নেই। Private VM internet থেকে ১০০ GB নামালে ingress $০, কিন্তু NAT processing $৫। আর একই GB একাধিক মিটার ঘোরাতে পারে: অন্য zone-এর NAT-এ গিয়ে, সেখান থেকে internet-এ গেলে zone পার + NAT + egress, মোট GB-তে $০.১৭। এবার অংশ ১-এর বিলের network সারিগুলো একটি architecture থেকেই বের করি।

// Monthly data transfer bill for one app, four designs. All prices are ASSUMED.
const R = { az: 0.02, net: 0.10, cdn: 0.05, natGb: 0.05, natHour: 0.05, hours: 720 };
const T = { db: 16000, bucket: 6000, users: 3000 };   // GB per month

const designs = [
  // cross = share of app-db traffic that crosses a zone
  { name: "same AZ",  cross: 0.0, nats: 0, natGb: 0,        cdn: false },
  { name: "cross-AZ", cross: 0.5, nats: 0, natGb: 0,        cdn: false },
  { name: "via NAT",  cross: 0.5, nats: 2, natGb: T.bucket, cdn: false },
  { name: "fixed",    cross: 0.5, nats: 2, natGb: 0,        cdn: true  },
];
const pad = (x) => ("$" + x.toFixed(0)).padStart(7);

console.log("design      x-AZ  NAT-hr  NAT-GB  egress    CDN   total");
const totals = {};
for (const d of designs) {
  const lines = [
    T.db * d.cross * R.az,              // app <-> database across zones
    d.nats * R.hours * R.natHour,       // NAT gateways, per hour
    d.natGb * R.natGb,                  // NAT processing, per GB
    d.cdn ? 0 : T.users * R.net,        // users, straight from the cloud
    d.cdn ? T.users * R.cdn : 0,        // users, through the CDN
  ];
  const total = lines.reduce((a, b) => a + b, 0);
  totals[d.name] = total;
  console.log(d.name.padEnd(9) + lines.map(pad).join("") + pad(total));
}
const gb = T.db + T.bucket + T.users;
console.log("\ntraffic " + gb + " GB, the same in every design");
console.log("NAT processing for bucket traffic: " + T.bucket + " GB x $"
  + R.natGb + " = $" + T.bucket * R.natGb);
console.log("zones cost $" + (totals["cross-AZ"] - totals["same AZ"])
  + " a month; NAT adds $" + (totals["via NAT"] - totals["cross-AZ"]));
console.log("fixing bucket path and CDN saves $" + (totals["via NAT"] - totals.fixed));
design      x-AZ  NAT-hr  NAT-GB  egress    CDN   total
same AZ       $0     $0     $0   $300     $0   $300
cross-AZ    $160     $0     $0   $300     $0   $460
via NAT     $160    $72   $300   $300     $0   $832
fixed       $160    $72     $0     $0   $150   $382

traffic 25000 GB, the same in every design
NAT processing for bucket traffic: 6000 GB x $0.05 = $300
zones cost $160 a month; NAT adds $372
fixing bucket path and CDN saves $450

প্রতিটি নকশায় ২৫,০০০ GB-ই চলে, অথচ বিল $৩০০ থেকে $৮৩২। via NAT সারিটিই আমাদের বিলের চারটি সারি: $১৬০ + $৭২ + $৩০০ + $৩০০। এর মধ্যে bucket-এর $৩০০ পুরোপুরি এড়ানো যেত: একই region-এর ডেটা NAT-এ যাওয়ার কোনো দরকার ছিল না। fixed সারিতে gateway endpoint আর CDN, সাশ্রয় $৪৫০, NAT শুধু সত্যিকারের বাইরের কাজে থাকে।

same AZ সবচেয়ে সস্তা, কিন্তু সেই zone গেলে পুরো সেবা বন্ধ। $১৬০ হলো দুই zone-এর বিমার কিস্তি। ডাটাবেসের Multi-AZ replication-এর খরচ কীভাবে ধরা হয়, সেটি service-ভেদে আলাদা, তাই pricing পাতায় দেখুন। প্র ০৫-এ এই সিদ্ধান্ত নিয়ে ভাবব।

Egress-এর বিল সাধারণত মাস শেষে চোখে পড়ে। একটি অনুসন্ধান দেখুন। অক্টোবরে Network খাতে হঠাৎ $১,২০০ বেশি। দল কোথা থেকে শুরু করবে? মোট অঙ্ক থেকে ধাপে ধাপে কারণের দিকে যেতে হয়।

অনুসন্ধানের অবস্থা (কাল্পনিক ঘটনা, অনুমিত দাম)
কোন দিকে তাকানো
Internet egress
সূত্র
বাঁচে
  1. মোট থেকে শুরু. আগের মাসের বিল $৫,৭৩৪, এ মাসে $৬,৯৩৪। Compute একই, Network-এ বাড়তি $১,২০০. ভুল পথ হলো VM কমানোর আলোচনা শুরু করা।
  2. Usage type-এ ভাগ. AZ পার হওয়া আর NAT একই। Internet egress ৩,০০০ GB থেকে ১৫,০০০ GB. ১২,০০০ × $০.১০ = $১,২০০, হিসাব মিলল।
  3. দিনে ভাগ. ১০ দিন ১০০ GB/দিন, তারপর ২০ দিন ৭০০ GB/দিন: ১,০০০ + ১৪,০০০ = ১৫,০০০ GB. ধীরে বাড়েনি, দিন ১১-তে লাফ. মানে কোনো পরিবর্তন, স্বাভাবিক ভিড় নয়। দিন ১০-এর deployment-এর তালিকা দেখতে হবে।
  4. Resource-এ ভাগ. বাড়তি ১২,০০০ GB একটিই bucket থেকে: ২০ রাত × ৬০০ GB. Tag ঠিক থাকলে এই ধাপ এক মিনিটের কাজ। নইলে এখানেই দিন চলে যায়।
  5. Access log. প্রতি রাতে একটিই ফাইল, পুরো ৬০০ GB, একজন partner নামাচ্ছেন। দিন ১০-এ চালু হওয়া রিপোর্ট প্রতি রাতে পুরো ডেটা পাঠায়, শুধু নতুন অংশ নয়।
  6. সমাধান. শুধু নতুন ডেটা, রাতে ১০ GB: মাসে ৩০০ GB, $৩০। মাসিক বাড়তি $১,২০০ থেকে $৩০, সাশ্রয় $১,১৭০. কোনো VM বা ক্ষমতায় হাত দিতে হয়নি।
  7. আগে ধরা যেত. Egress-এর $৩০০ সীমায় budget alert থাকলে দিন ১৩-তে (১,০০০ + ৩ × ৭০০ = ৩,১০০ GB) সংকেত আসত। বাকি ১৭ রাত × ৬০০ GB × $০.১০ = $১,০২০ বাঁচত। হঠাৎ লাফ ধরতে anomaly detection-ও কাজে লাগে।

আরও গভীরে: ডেটা যেখানে জমে, কাজও সেখানে যায়। একে বলে data gravity, আর egress ফি এই টানকে আরও শক্ত করে। বিলের ভাষাও provider-ভেদে আলাদা ছিল। তাই FinOps Foundation ২০২৪ সালে FOCUS নামে একটি উন্মুক্ত বিলিং-ডেটা স্পেসিফিকেশনের ১.০ সংস্করণ আনে, যাতে ভিন্ন provider-এর বিল একই কলামে পড়া যায়। আর AZ পার হওয়ার খরচ কমাতে Kubernetes-এ zone-aware routing-এর মতো ব্যবস্থা ব্যবহৃত হয়।

৭ · লুকানো সারি, free tier আর pricing calculator

কিছু সারি কেউ “কেনেন” না, তবু আসে। মেসের পুরোনো সদস্য চলে গেলেও তাঁর নামে খাবারের হিসাব চলতে থাকলে যা হয়, ঠিক তাই। পর্ব ০৪-এর idle resource এখানেই থাকে।

সারিকেন চলতে থাকেআমাদের বিলেধরার উপায়
ভুলে চলা VMপরীক্ষার পর বন্ধ হয়নি$৩৬০কম CPU, owner tag নেই
অলস load balancerTarget নেই, তবু ঘণ্টায় ভাড়া১টি: $১৮শূন্য request-এর তালিকা
Public IPঅনেক provider-এ সব বা অব্যবহৃত ঠিকানায় চার্জ১০টি: $৩৬না-লাগানো ঠিকানার তালিকা
Unattached diskVM মুছলেও disk থাকে$৩০Attach হয়নি এমন volume
পুরোনো snapshotRetention নিয়ম নেই$৮০বয়স অনুযায়ী মোছার নিয়ম
Log-এর পরিমাণDebug level production-এ$২০০পর্ব ৬৪: level, sampling
Support planপ্রায়ই বিলের শতাংশ, ন্যূনতম অঙ্কসহ$২৪০দরকারের সাথে মিলিয়ে দেখা

এই তালিকায় পুরো অপচয় ধরি: VM $৩৬০ + load balancer $১৮ + disk $৩০ + snapshot $৮০ = $৪৮৮, বিলের ৮.৫%, বছরে $৫,৮৫৬। অংশ ৬-এর network সংশোধনের $৪৫০ মিলিয়ে বিল নামে $৫,৭৩৪ থেকে $৪,৭৯৬-এ, প্রায় পর্ব ০৪-এর অনুমানে। কোনো ব্যবহারকারী কিছু টের পাবেন না। Log নিয়ে একটি সতর্কতা: কেউ production-এ debug চালু করে ৫ গুণ log তুললে ২,০০০ GB × $০.৫০ = $১,০০০। পর্ব ৬৪-এ এর সমাধান আছে।

Free tier-এর ফাঁদ

  • মেয়াদ ফুরায়: অনেক সুবিধা নির্দিষ্ট সময় বা credit-এর সাথে বাঁধা। শেষ হলে বিল নিজে থেকে শুরু হয়, resource বন্ধ হয় না (অনেক ক্ষেত্রে)।
  • সীমা ছোট: নির্দিষ্ট instance type, নির্দিষ্ট ঘণ্টা বা GB. দুটি VM চালালে সীমা দ্বিগুণ দ্রুত ফুরায়।
  • পাশের জিনিস বিনা খরচে নয়: VM ফ্রি হলেও NAT, load balancer, public IP বা বাড়তি disk আলাদা হতে পারে।
  • Budget alert শুধু জানায়: সাধারণত থামায় না। পরিষ্কার করার নিয়ম আছে পর্ব ০৬-এ।

এসব শর্ত provider-ভেদে আলাদা আর সময়ের সাথে বদলায়, তাই pricing পাতা দেখে নিন।

Pricing calculator — যা পারে, যা পারে না

বড় provider-দের pricing calculator সাধারণত account ছাড়াই খোলা যায়। এটি দর ঠিক দেখায়, কিন্তু পরিমাণ আসে আপনার কাছ থেকে। আমাদের $১,০৩৪-এর ভুল calculator-এর নয়: সারিগুলো কেউ বসাননি। তাই GB-তে ট্রাফিক, NAT, log আর snapshot-ও বসান। হিসাবের সাথে region, তারিখ আর অনুমান লিখে রাখুন। Terraform ব্যবহার করলে Infracost-এর মতো tool plan থেকেই আনুমানিক পার্থক্য দেখাতে পারে। আসল resource চালু করে “দেখা” দরকার নেই, চালালে খরচ হবে। পরীক্ষা করলে শেষে মুছে ফেলার ধাপও মনে রাখুন।

৮ · GPU-র বিল, ডলার আর কার্ড

AI আর GPU: পর্ব ১৯-এর দরে GPU VM ঘণ্টায় $২, spot $০.৬০। সারা মাস চালু রাখলে ৭২০ × $২ = $১,৪৪০। দিনে ৬ ঘণ্টা কাজ হলে দরকার ১৮০ ঘণ্টা: বন্ধ করলে $৩৬০, আর spot-এ $১০৮। সাধারণ VM-এর মতোই অলস সময়ের হিসাব, শুধু এককের দাম অনেক বড়। তাই training সাধারণত সীমিত সময়ের, checkpoint-সহ কাজ, আর inference সবসময় চলে বলে সেখানে utilisation-ই আসল।

আরেকটি পথ হলো ভাড়া করা model API, যেখানে বিল আসে token গুনে। ধরে নিই প্রতি মিলিয়ন token $৩। তাহলে নিজের GPU-র সাথে সমান হয় ১,৪৪০ / ৩ = ৪৮০ মিলিয়ন token প্রতি মাসে, যদি একটি GPU সেই ভার নিতে পারে। আবার সেই পরিচিত ছবি: স্থির ভাড়া বনাম প্রতি ব্যবহারের দাম। সিদ্ধান্ত আগের মতোই হিসাব করে নিন, আর model-এর বড় ফাইল region পার করলে transfer-এর সারিও ধরুন।

বাংলাদেশের প্রেক্ষাপট: Cloud-এর বিল সাধারণত ডলারে আসে। ধরে নিই $১ = ৳১২০ (গোল অনুমান, আজকের দর ব্যাংকে দেখুন)। তাহলে $৫,৭৩৪ = ৳৬,৮৮,০৮০। ব্যবহার না বদলালেও ডলারের দাম ১০% বাড়লে মাসে আরও ৳৬৮,৮০৮। এই exchange rate risk TCO-তে একটি আলাদা সারি হিসেবে ধরুন। কিছু বাস্তব বিষয়:

  • কার্ড: বিদেশি মুদ্রায় অনলাইন পেমেন্ট, তার সীমা আর অনুমোদন বাংলাদেশ ব্যাংকের নিয়ম আর আপনার ব্যাংকের নীতির ওপর নির্ভর করে, আর এগুলো বদলাতে পারে। নিজের ব্যাংকে আগে জেনে নিন।
  • পেমেন্ট ব্যর্থ হলে: কার্ড বাতিল বা সীমা শেষ হলে provider সতর্ক করে, পরে account স্থগিত করতে পারে। Production থাকলে বিকল্প পেমেন্ট পথ আর billing contact ঠিক রাখুন।
  • ফি আর কর: ব্যাংকের রূপান্তর ফি, provider-এর যোগ করা কর, আর স্থানীয় কর-নিয়ম মোট খরচ বদলাতে পারে। এই বিষয়ে হিসাবরক্ষকের পরামর্শ নিন।
  • স্থানীয় পরিবেশক: কিছু ক্ষেত্রে অনুমোদিত reseller-এর মাধ্যমে টাকায় বিল দেওয়া যায় কি না খোঁজ নেওয়া যায়; শর্ত, দর আর support আলাদা হতে পারে।

দীর্ঘ অঙ্গীকারে এই ঝুঁকি দুই দিকে কাজ করে। মাসিক কিস্তির অঙ্গীকার মানে আগামী ৩ বছর ডলারে দেনা, আর টাকার দাম পড়লে সেই দেনা ভারী হয়। Break-even হিসাব ডলারে ঠিক থাকলেও নগদ টাকার হিসাব আলাদা করে দেখুন।

পরীক্ষা ও ইন্টারভিউতে:

  • ৪০% ছাড়ের অঙ্গীকারের break-even utilisation? 1 − 0.40 = ৬০%.
  • Reserved আর savings plan-এর মূল পার্থক্য? প্রথমটি নির্দিষ্ট resource-এ, দ্বিতীয়টি ঘণ্টাপ্রতি খরচের অঙ্কে অঙ্গীকার।
  • Coverage আর utilisation? ব্যবহারের কত ভাগ ঢাকা, বনাম কেনা অঙ্গীকারের কত ভাগ কাজে লাগছে।
  • Spot-এ কোন কাজ রাখবেন না? Stateful, একমাত্র copy, আর থামানো যায় না এমন কাজ।
  • NAT-এর বিল কমাবেন কীভাবে? একই region-এর bucket-এ endpoint, আর AZ-প্রতি NAT.

৯ · AI-এর যুগে cloud-এর বিল

AI বিল বুঝতে ভালো সাহায্য করে: CSV থেকে query লেখা, সারি গুছানো, সন্দেহজনক অংশ দেখানো। কিন্তু AI আপনার চুক্তি আর আজকের দাম জানে না। সবচেয়ে বড় ভুলটি হলো দেখতে নির্ভুল একটি সংখ্যা।

AI সাধারণত যেসব ভুল করে

AI-এর ভুলফলযাচাই
স্মৃতি থেকে পুরোনো দামভুল সিদ্ধান্তPricing পাতা, তারিখসহ
Peak দেখে অঙ্গীকারের পরামর্শঅব্যবহৃত অঙ্গীকারBaseline মাপা, break-even
NAT, AZ আর log বাদ দেওয়াঅনুমানের চেয়ে বড় বিলপ্রতিটি সারি চাওয়া
Stateful কাজ spot-এ পাঠানোডেটা হারানোInterruption-এর পরীক্ষা
“অলস” disk বা snapshot মুছতে বলাBackup নষ্টOwner জেনে, snapshot নিয়ে, ধাপে ধাপে
* permission, 0.0.0.0/0, public storageনিরাপত্তা ঝুঁকি, আর চুরি হওয়া account-এ বিশাল বিলLeast privilege, diff পড়া
Hardcoded secret, latest tag, বাতিল API, বানানো flagআজ বা কাল ভাঙেঅফিসিয়াল ডকুমেন্টেশন, --dry-run
terraform destroy, kubectl delete, rm -rf সতর্কতা ছাড়াআসল ডেটা মুছে যায়আগে terraform plan, throwaway পরিবেশ

AI-কে বিলের সারি বিশ্লেষণে লাগান, দাম মনে করতে নয়। Prompt-এ account id, key বা গোপন তথ্য দেবেন না; resource-এর নাম বদলে দিন।

আমি একটি মাসের cloud বিলের সারি দিচ্ছি (নাম বদলানো, কোনো secret নেই): [service, usage type, resource, quantity, unit price, cost] আমার load: [baseline VM সংখ্যা, peak, দিনের ওঠানামা] ১. খাত ধরে মোট আর শতাংশ দেখাও, আর যোগফল মিলিয়ে দেখাও। ২. সবচেয়ে বড় ৫টি সারির সম্ভাব্য কারণ বলো। কোনটি অনুমান, সেটি স্পষ্ট লেখো। ৩. Commitment কত VM-এ নেওয়া যুক্তিসংগত, break-even utilisation দেখিয়ে হিসাব করো। ৪. Data transfer কমানোর পথ বলো, প্রতিটির availability-র ঝুঁকিসহ। ৫. কোনো দাম নিজে থেকে বসিও না। কিছু মুছতে বলার আগে যাচাইয়ের ধাপ লেখো।

AI-এর বিল-বিশ্লেষণ হাতে পেলে — চেকলিস্ট

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিয়ে নিজে কিছুক্ষণ ভাবুন, তারপর “→ উত্তর” চাপুন। এগুলো বিলের সংখ্যার পেছনের ইতিহাস আর সিদ্ধান্তের যুক্তি।

প্র ০১ভেতরে ডেটা আনতে টাকা লাগে না, বাইরে নিতে লাগে। এই অসমতার কারণ কি শুধু খরচ, নাকি ব্যবসার কৌশল?

প্রকৌশলের দিক থেকে কিছু যুক্তি আছে। Bandwidth কিনতে খরচ হয়, আর অনেক cloud-এ বাইরে যাওয়া ট্রাফিক ভেতরে আসার চেয়ে অনেক বেশি, তাই লিংকের ভেতরে আসার দিকটি প্রায়ই ফাঁকা থাকে। ফাঁকা দিকের দাম না নেওয়া সহজ।

কিন্তু ব্যবসার দিকটিও স্পষ্ট। ভেতরে আনা বিনা খরচে হলে ডেটা ঢোকা সহজ। ডেটা ঢুকলে তার চারপাশে কাজও আসে, আর বেরোনো দামি হলে তা থেকে যায়। ঠিক এই টানকেই data gravity বলে। ১০০ TB ডেটা এই পর্বের অনুমিত দরে একবার বের করতেই ১,০০,০০০ GB × $০.১০ = $১০,০০০।

এই নিয়ে সমালোচনাও প্রকাশ্য:

  • ২০২১ সালে Cloudflare তাদের ব্লগে দাবি করে, বড় provider-এর egress দর পাইকারি bandwidth-এর তুলনায় অনেক বেশি। এটি একজন প্রতিযোগীর বিশ্লেষণ, স্বাধীন নিরীক্ষা নয়।
  • যুক্তরাজ্যের Ofcom ২০২৩ সালে cloud বাজার পর্যালোচনায় egress ফি-কে প্রতিযোগিতার বাধা হিসেবে চিহ্নিত করে, আর বিষয়টি CMA-র কাছে পাঠায়।
  • ২০২৪ সালের শুরুতে Google, AWS আর Microsoft cloud ছেড়ে যাওয়া গ্রাহকের জন্য কিছু শর্তে egress ফি মওকুফের ঘোষণা দেয়।
  • ইউরোপের Data Act provider বদলের ফি ধাপে ধাপে কমানোর দিকে চাপ দিয়েছে। এর প্রয়োগের সময়সূচি আর ব্যাখ্যা আইনি প্রশ্ন, তাই হালনাগাদ উৎস দেখুন।

একটি বিষয় খেয়াল করুন: এই মওকুফ মূলত একবার ছেড়ে যাওয়ার জন্য। প্রতিদিনের egress, যেমন ব্যবহারকারীর কাছে পাঠানো ডেটা, সাধারণত আগের মতোই থাকে। কিছু object storage provider কম বা শূন্য egress দরকে নিজের বিজ্ঞাপন বানিয়েছে, তবে সেখানে অন্য সারিতে দাম থাকতে পারে। তাই একটি সারি নয়, পুরো বিল মিলিয়ে দেখতে হয়।

মূল উপলব্ধি: Egress একই সাথে খরচ, দামের কৌশল আর lock-in. নকশার শুরুতেই ঠিক করুন ডেটা কোথায় থাকবে, কারণ সরানোর দাম পরে দিতে হবে।

প্র ০২Spot-এর দাম একসময় নিলামে ঠিক হতো। সেই ব্যবস্থা কেন বদলাল, আর এতে কী শেখার আছে?

Amazon ২০০৯ সালের শেষে EC2 Spot Instances আনে। শুরুতে ব্যবহারকারী সর্বোচ্চ দাম bid করতেন, আর spot দাম bid ছাড়ালে VM ফেরত যেত। ধারণাটি অর্থনীতির চোখে সুন্দর: অলস ক্ষমতা বাজারে বিক্রি হবে, আর দাম চাহিদা-জোগান বলবে।

বাস্তবে সমস্যা ছিল। দাম হঠাৎ লাফাত, এমনকি কখনো on-demand-এর চেয়েও বেশি উঠত। ব্যবহারকারীরা bid নিয়ে কৌশলের লড়াইয়ে ব্যস্ত থাকতেন, আর সেই জটিলতা কাজে লাগানো বড় দলের পক্ষেই সহজ ছিল। ২০১১ সালের দিকে Agmon Ben-Yehuda ও সহ-লেখকদের গবেষণা (“Deconstructing Amazon EC2 Spot Instance Pricing”) দামের ইতিহাস বিশ্লেষণ করে দাবি করে, দামগুলো অন্তত কিছু সময়ে নিখাদ বাজারের ফল নয়, বরং provider-এর ঠিক করা গোপন নিয়মের ফল হতে পারে। এটি তাঁদের সিদ্ধান্ত, Amazon-এর স্বীকারোক্তি নয়।

২০১৭ সালের দিকে AWS bid করার বাধ্যতা তুলে দেয় আর দামের বদল ধীর করে। এখন সাধারণত দাম ফেরত নেওয়ার কারণ নয়, কারণ হলো provider-এর ক্ষমতার দরকার। Google ২০১৫ সালে preemptible VM আনে, যা শুরু থেকেই স্থির ছাড়ে আসে আর ২৪ ঘণ্টার মধ্যে থামে। পরে আসা Spot VMs-এ সেই সময়সীমা নেই। Azure-ও low-priority থেকে Spot VM-এ আসে। তিন provider-ই একই দিকে হেঁটেছে: বাজারের জটিলতা কম, শুধু “সস্তা, কিন্তু ফেরতযোগ্য” কথাটি থাকল।

প্রকৌশলীর জন্য শিক্ষা হলো, নিলামের কৌশল আর আপনার নকশার কেন্দ্রে থাকা উচিত নয়। আজ যা কাজে লাগে তা হলো একাধিক pool, capacity-সচেতন বাছাই, নিয়মিত checkpoint আর on-demand-এ ফেরার পথ। Spot-কে সস্তা VM নয়, “যেকোনো সময় হারাতে পারে এমন ক্ষমতা” হিসেবে ভাবুন।

মূল উপলব্ধি: Spot-এর ঝুঁকি দামের নয়, ক্ষমতার। সেই ঝুঁকি কমে কেনার কৌশলে নয়, সফটওয়্যারের নকশায়।

প্র ০৩দ্রুত বাড়ছে এমন একটি ছোট প্রতিষ্ঠান কি ৩ বছরের অঙ্গীকার নেবে? ৫০% ছাড় কি সত্যিই ৫০%?

Reserved Instances ২০০৯ সালেই আসে। Google ২০১৪ সালে sustained use discount আনে, যেখানে বেশি চালালে নিজে থেকেই ছাড় মেলে। AWS ২০১৯ সালে Savings Plans আনে, যা instance-এর বদলে খরচের অঙ্কে অঙ্গীকার নেয়। এই ইতিহাস একটি কথাই বলে: গ্রাহকেরা ছাড় চান, কিন্তু নির্দিষ্ট hardware-এ বাঁধা পড়তে চান না।

৫০% ছাড়টি কাগজে সত্য, কিন্তু কয়েকটি সূক্ষ্ম কিস্তি আছে।

  • বাতিলের ঝুঁকি: ১৮ মাসের আগে কাজ বন্ধ হলে লোকসান। ছোট প্রতিষ্ঠানের পণ্য, পরিকল্পনা আর architecture প্রায়ই ১৮ মাসে বদলায়।
  • নতুন প্রজন্ম: Provider নিয়মিত নতুন instance family আনেন, যা প্রায়ই একই দামে বেশি কাজ দেয়। Resource-ভিত্তিক অঙ্গীকার পুরোনো family-তে আটকে রাখতে পারে।
  • আপনার নিজের rightsizing: এই পর্বের স্টেপারে দেখলেন, ভালো কোড বিল কমায়নি।
  • টাকার সময়মূল্য: ৩ বছর আগাম দিলে সেই টাকা ব্যবসায় খাটানো যায় না।
  • মুদ্রার ঝুঁকি: ডলারে দীর্ঘ দেনা, যেখানে আয় টাকায়।

তাহলে সিদ্ধান্ত কী? সাধারণ পরামর্শ হলো ধাপে এগোনো। আগে rightsizing আর অপচয় কমানো, কারণ বাজে নকশার ওপর অঙ্গীকার মানে অপচয়কে তিন বছরের জন্য পাকা করা। তারপর কয়েক মাসের baseline মাপা। তারপর নমনীয় ধরনের ছোট, ১ বছরের অঙ্গীকার, মাঝে মাঝে আরেকটু যোগ। একসাথে বড় একটি অঙ্গীকার না নিয়ে ধাপে ধাপে কিনলে মেয়াদও একসাথে শেষ হয় না, যাকে অনেকে laddering বলেন। Database আর একেবারে স্থির service-এ ৩ বছর ভাবা যেতে পারে, যদি প্রায় নিশ্চিত থাকেন সেটি থাকবে।

মূল উপলব্ধি: ছাড় হলো আপনার নমনীয়তা বিক্রির দাম। প্রশ্নটি “কত ছাড়” নয়, “এই নমনীয়তা আগামী তিন বছর আমার লাগবে কি না”।

প্র ০৪একটি খালি, private bucket-এ কি হাজার ডলার বিল হতে পারে? কে কোন অনুরোধের দাম দেবে?

২০২৪ সালের এপ্রিলে এক developer একটি লেখায় জানান, তাঁর নতুন, খালি, private S3 bucket-এ প্রায় ১,৩০০ ডলারের বিল এসেছিল, আর অনুরোধগুলোর বেশিরভাগ এসেছিল এক দিনের মধ্যে। তাঁর ব্যাখ্যা অনুযায়ী bucket-এর নামটি একটি জনপ্রিয় open-source tool-এর নমুনা config-এ ছিল। সেই tool ব্যবহারকারীদের সিস্টেম ভুল করে ওই নামে কোটি কোটি অনুরোধ পাঠাচ্ছিল। অনুরোধগুলো প্রত্যাখ্যাত হয়েছিল, তবু সে সময়ের নিয়মে অনেক ব্যর্থ অনুরোধের বিল bucket-এর মালিকের কাছে যেত।

লেখাটি ব্যাপক আলোচনা তৈরি করে। কিছুদিনের মধ্যে AWS জানায়, account-এর বাইরে থেকে আসা অননুমোদিত অনুরোধের অনেক ক্ষেত্রে আর bucket মালিকের বিল হবে না। সঠিক শর্ত AWS-এর নথিতে দেখে নিন।

ঘটনাটি কয়েকটি গভীর প্রশ্ন তোলে।

  • কাকে বিল করা ন্যায্য? Pay-per-use মডেলে যে মিটার আপনি নিয়ন্ত্রণ করতে পারেন না, সেটিই সবচেয়ে বিপজ্জনক। বাইরের কেউ আপনার মিটার ঘোরাতে পারলে তা নিরাপত্তারও প্রশ্ন, যাকে অনেকে denial of wallet বলেন।
  • নাম গোপন নয়: Bucket-এর নাম provider জুড়ে অনন্য, অনুমান করা সহজ। নিরাপত্তা কখনো নামের গোপনীয়তায় ভরসা করবে না।
  • Serverless-এর ঝুঁকি: FaaS-এ ভিড় এলে বিলও বাড়ে। Concurrency-র সীমা শুধু নির্ভরযোগ্যতার নয়, বিলেরও বেড়া।
  • Budget alert দেরিতে আসে: বিলের ডেটা কয়েক ঘণ্টা পিছিয়ে থাকে, আর alert সাধারণত থামায় না।

প্রতিরক্ষার পথ: public দিকে CDN আর rate limit, ব্যবহারের সীমা বা quota, অনুমোদনহীন খোলা endpoint না রাখা, আর anomaly detection. বড় অঙ্কের ভুল বিল হলে support-এ লিখে জানান, তবে ফেরতের নিশ্চয়তা ধরে নেবেন না।

মূল উপলব্ধি: ব্যবহারভিত্তিক বিল মানে খরচও একটি আক্রমণের জায়গা। প্রতিটি public মিটারের সামনে একটি বেড়া রাখুন।

প্র ০৫AZ পার হওয়ার $১৬০ বাঁচাতে সব কিছু এক zone-এ আনবেন? কোন খরচ কাটা উচিত নয়?

বিল কমানোর চাপে এই প্রস্তাব প্রায়ই আসে, আর সংখ্যায় লোভনীয়: মাসে $১৬০, বছরে $১,৯২০। কিন্তু খরচের অন্য পাশটি বিলে নেই। Zone বিভ্রাট হলে যে আয় আর আস্থা হারাবে, তা কোনো সারিতে দেখা যায় না। পর্ব ০৪-এর ভাষায়, underprovisioning-এর মতোই এটি অদৃশ্য খরচ।

একটি অনুমিত হিসাব করুন। ধরুন সেবা বন্ধ থাকলে ঘণ্টায় $৫০০ আয় যায়। Zone-এর বড় সমস্যা বছরে গড়ে ৪ ঘণ্টা সেবা বন্ধ রাখবে, এমন ধরলে ক্ষতি $২,০০০। তখন $১,৯২০-এর বিমা প্রায় সমান সমান। আয় ঘণ্টায় $৫০ হলে এক zone-ই যুক্তিসংগত হতে পারে, আর $৫,০০০ হলে Multi-AZ নিয়ে তর্কই নেই। এখানেও একটি break-even আছে, তবে তার ইনপুট আসে ব্যবসা থেকে, pricing পাতা থেকে নয়। এই সংখ্যাগুলো উদাহরণ, পরিসংখ্যান নয়।

আসলে দুটি প্রশ্ন আলাদা করতে হয়: নকশা বদলানো, আর ট্রাফিকের পথ বদলানো। Multi-AZ না ছেড়েও পারাপার কমানো যায়:

  • একই zone-এর read replica বা cache থেকে পড়া।
  • Service-এর ভেতর zone-সচেতন routing, যাতে ট্রাফিক আগে নিজের zone-এই থাকে।
  • ডেটা compress করা, আর অপ্রয়োজনীয় chatty call কমানো।

আমাদের উদাহরণে পারাপারের অংশ ৫০% থেকে ১০% হলে ১৬,০০০ × ০.১ × $০.০২ = $৩২, zone-ও থাকল, বিলও কমল। একই ধাঁচে dev আর test পরিবেশ এক zone-এ রাখা সাধারণত নিরাপদ সাশ্রয়। Production-এর নিরাপত্তার সারি, যেমন backup, audit log, Multi-AZ আর দরকারি alert, কাটার আগে দুবার ভাবুন। কারণ এদের লাভ কেবল খারাপ দিনেই চোখে পড়ে।

মূল উপলব্ধি: বিল কমানো মানে অপচয় কমানো, নিরাপত্তা বিক্রি করা নয়। প্রতিটি কাটার পাশে লিখুন, এতে কোন ঝুঁকি বাড়ল।

অনুশীলন

সব দাম অনুমিত। কলম-কাগজ বা উপরের সিমুলেটরই যথেষ্ট, কোনো cloud account লাগবে না।

  1. অঙ্গীকারের মাপ: ২০টি VM, on-demand ঘণ্টায় $০.২০, মাস ৭২০ ঘণ্টা। ১ বছরের অঙ্গীকারে ৪০% ছাড়। ১২টি VM দিনরাত চলে, ৮টি দিনে ৮ ঘণ্টা। (ক) Break-even utilisation. (খ) কয়টিতে অঙ্গীকার নেবেন? (গ) কিছু না কিনলে, ১২টিতে, আর ২০টিতে অঙ্গীকারে মাসিক বিল কত?

    (ক) ১ − ০.৪০ = ৬০%.

    (খ) ৮ ঘণ্টা চলা VM-এর utilisation ৮ / ২৪ = ৩৩.৩%, ৬০%-এর নিচে। তাই শুধু ১২টিতে.

    (গ) একটি পূর্ণ VM on-demand: $০.২০ × ৭২০ = $১৪৪; ৮ ঘণ্টার VM: ২৪০ h × $০.২০ = $৪৮; অঙ্গীকার: $১৪৪ × ০.৬ = $৮৬.৪০। কিছু না কিনলে ১২ × $১৪৪ + ৮ × $৪৮ = $২,১১২. ১২টিতে ১২ × $৮৬.৪০ + $৩৮৪ = $১,৪২০.৮০. ২০টিতে ২০ × $৮৬.৪০ = $১,৭২৮.

  2. নকশা ও সমালোচনা: বিল কমাতে এক সহকর্মীর প্রস্তাব: “সব VM-এ ৩ বছরের reserved নিন, সব কিছু এক zone-এ আনুন, production-এর log বন্ধ করুন, আর database-ও spot-এ দিন।” প্রতিটি অংশের সমালোচনা করুন, আর একটি ভালো ক্রম প্রস্তাব করুন।
    • সব VM-এ ৩ বছর: Peak-এর মাপে অঙ্গীকার, আর অপচয়কে পাকা করা। Baseline-এ, ধাপে ধাপে নেওয়া ভালো।
    • এক zone: $১৬০ বাঁচে, কিন্তু একটি zone-ই পুরো সেবার ঝুঁকি। আগে zone-সচেতন routing দেখুন।
    • Log বন্ধ: Incident-এ অন্ধ হয়ে যাবেন, audit-ও ঝুঁকিতে। Level, sampling আর retention দিয়ে কমান।
    • Database spot-এ: Stateful কাজ, ফেরত গেলে সেবা বন্ধ আর ডেটার ঝুঁকি। করা যাবে না।

    ভালো ক্রম: ১. অপচয় মোছা (VM, disk, snapshot, load balancer). ২. Gateway endpoint আর CDN. ৩. Log পরিষ্কার। ৪. Rightsizing আর autoscaling. ৫. Batch-এ spot. ৬. তারপর baseline মেপে অঙ্গীকার।

  3. Predict the output: নিচের কোড না চালিয়ে বলুন কী ছাপা হবে। তারপর committed-কে 1 করলে আর 0 করলে কী হবে?
    let bill = 0, committed = 3;
    const used = [5, 3, 1, 0];       // VMs needed in four periods
    for (const u of used) {
      bill += committed * 10;        // committed price, used or not
      bill += Math.max(0, u - committed) * 15;   // on-demand price
    }
    console.log(bill);

    অঙ্গীকার: ৪ × ৩ × ১০ = ১২০। বাড়তি শুধু প্রথম ধাপে: (৫ − ৩) × ১৫ = ৩০। ছাপা হবে 150. committed = 1 হলে ৪০ + (৪ + ২) × ১৫ = 130. committed = 0 হলে ৯ × ১৫ = 135. এখানে ছাড় ১/৩, তাই break-even ৬৬.৭%: প্রথম VM লাগে ৪ ধাপের ৩টিতে (৭৫%), দ্বিতীয় VM মাত্র ২টিতে (৫০%). তাই ১টিই সেরা।

  4. ভিডিও সাইটের হিসাব: মাসে ৫০,০০০ GB ব্যবহারকারীর কাছে যায়। সরাসরি egress $০.১০/GB. CDN-এ $০.০৫/GB, origin থেকে CDN-এ ফি নেই ধরুন। আরেকটি region-এ ২,০০০ GB কপি রাখা হয়, $০.০৪/GB. (ক) সরাসরি বনাম CDN-এর মাসিক বিল। (খ) Region কপির খরচ। (গ) একটি সস্তা CDN-এর দর $০.০৫-এর বদলে কত হলে বিল অর্ধেকের বদলে এক-চতুর্থাংশ হবে?

    (ক) সরাসরি ৫০,০০০ × $০.১০ = $৫,০০০. CDN ৫০,০০০ × $০.০৫ = $২,৫০০.

    (খ) ২,০০০ × $০.০৪ = $৮০ প্রতি মাসে, যদি প্রতি মাসে সেই পরিমাণ পাঠানো হয়।

    (গ) $৫,০০০-এর এক-চতুর্থাংশ $১,২৫০; ১,২৫০ / ৫০,০০০ = $০.০২৫/GB. ভালো CDN-এ cache hit বেশি হলে origin-এর চাপও কমে।

নিজেকে যাচাই করুন

ভুল হলে কারণসহ ব্যাখ্যা পাবেন, আবার চেষ্টাও করতে পারবেন।

ক্রমহঠাৎ বেড়ে যাওয়া cloud বিলের কারণ খোঁজার ধাপগুলো সঠিক ক্রমে সাজান (▲▼ চেপে সরান)

  1. আগের মাসের সাথে তুলনা করে কোন খাত বেড়েছে তা দেখা
  2. সেই খাতকে usage type-এ ভাগ করা
  3. দৈনিক গ্রাফে লাফের তারিখ খোঁজা
  4. Tag বা resource ধরে উৎস বের করা
  5. Log দেখে কারণ নিশ্চিত করে সমাধান করা, তারপর alert যোগ করা

একটি commitment-এ on-demand দামের ওপর ৪০% ছাড় মেলে, আর চলুক বা না চলুক পুরো সময়ের দাম দিতে হয়। ন্যূনতম কত utilisation-এ এটি on-demand-এর সমান হয়?

  • ৪০%
  • ৫০%
  • ৬০%
  • ১০০%

একটি VM-এর on-demand দাম ঘণ্টায় $১, মাস ৭২০ ঘণ্টা (অনুমিত)। VM চলে ৪৩২ ঘণ্টা। ৩০% ছাড়ের অঙ্গীকারে পুরো মাসের দাম দিতে হয়। কোনটি সস্তা, আর কত?

  • অঙ্গীকার, $৭২ কম
  • On-demand, $৭২ কম
  • দুটি সমান
  • On-demand, $২১৬ কম

Private subnet-এর একটি VM NAT gateway দিয়ে internet থেকে ১০০ GB নামাল। Internet থেকে ingress বিনা খরচে, NAT processing $০.০৫/GB, egress $০.১০/GB (অনুমিত)। NAT-এর ঘণ্টাভাড়া বাদে এই ডাউনলোডের খরচ কত?

  • $০
  • $১০
  • $১৫
  • $৫

Spot VM-কে কয়েকটি instance type আর zone-এ ছড়িয়ে দিলে প্রধান লাভ কী?

  • একসাথে সব ক্ষমতা হারানোর ঝুঁকি কমে
  • Interruption পুরোপুরি বন্ধ হয়
  • প্রতি VM-এর ঘণ্টাপ্রতি দাম অর্ধেক হয়
  • Database নিরাপদে spot-এ রাখা যায়

Hot storage $০.০২০/GB-মাস, পড়া বিনা খরচে। Cold storage $০.০০৪/GB-মাস, পড়া $০.০৩/GB (অনুমিত)। মাসে ডেটার ৬০% পড়লে প্রতি GB-র গড় মাসিক খরচে কোনটি সস্তা?

  • Cold, কারণ জমার দাম কম
  • দুটি সমান
  • Hot, প্রতি GB-তে $০.০০২ কম
  • ফাইলের আকার ছাড়া বলা যায় না

একটি ৫০০ GB block disk কোনো VM-এ লাগানো নেই, ভেতরে ৫০ GB ডেটা। দর $০.১০/GB-মাস (অনুমিত), আর বরাদ্দ অনুযায়ী বিল হয়। মাসিক বিল কত?

  • $০, কারণ disk কোনো VM-এ নেই
  • $৫০
  • $৫
  • $৫৫

শব্দকোষ

লেখার মধ্যে ডটেড দাগ দেওয়া শব্দে মাউস রাখুন বা চাপুন, অর্থ দেখাবে। এই পর্বের সব নতুন শব্দ এখানে একসাথে:

মনে রাখুন

  1. প্রতিটি সারি = পরিমাণ × একক দাম। মোট নয়, সারি পড়ুন; অনুমানের বাইরের টাকা সেখানেই লুকায়।
  2. Break-even utilisation = 1 − d. অঙ্গীকার নিন baseline-এর মাপে, peak-এর মাপে নয়।
  3. Spot ৭০%-এর মতো বাঁচাতে পারে, যদি checkpoint থাকে; একাধিক pool খারাপ দিনটি ছোট করে।
  4. Storage-এ জমা, operation আর retrieval আলাদা মিটার; ঠান্ডা ধাপ কম পড়া ডেটার জন্য।
  5. Data transfer-এ egress, zone, region আর NAT জমতে পারে; অলস resource মুছুন, তবে নিরাপত্তার সারি কাটবেন না। সব দর যাচাই করুন।

পরের পর্বে: বিল পড়তে শিখলেন। এবার একে দলের অভ্যাসে আনা: কে কত খরচ করলেন, rightsizing কীভাবে হয়, tag আর showback কী, আর unit economics-এ এক অর্ডারের দাম কত, সেটি দেখব।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

এই পর্বটি শেয়ার করুন:
এই পর্বে ভুল পেয়েছেন? জানান