25.4
Cost Explorer, Anomaly Detection আর Budget
report আর খরচের পূর্বাভাস, Savings Plan-এর সুপারিশ, হঠাৎ খরচ বাড়লে alert, আর Compute Optimizer।
16 মিনিট পড়া + Animation
টিপস: ডটেড-আন্ডারলাইন করা যেকোনো শব্দে ট্যাপ বা Hover করলে তার অর্থ দেখবে।
এই লেসন শেষে তুমি পারবে
- গোয়েন্দার মতো Cost Explorer চালাতে: granularity, group by, filter, ১৩ মাসের ইতিহাস (multi-year data দিলে ৩৮), ১৮ মাসের পূর্বাভাস আর তার সীমা, hourly আর resource-level data, আর us-east-1-এর API।
- Savings Plans আর Reserved Instance-এর recommendation, utilization আর coverage পড়তে, আর usage-এর ঘণ্টাভিত্তিক চেহারা দেখে hourly commitment ঠিক করতে, নতুন Database Savings Plans-সহ।
- Cost Anomaly Detection কীভাবে কাজ করে বোঝাতে (monitor, machine learning-এর baseline, threshold, alert কত ঘনঘন, root cause, দিনে প্রায় তিনবার চলা), আর এর চোখ এড়িয়ে যাওয়া জিনিস AWS Budgets কখন ধরে তা বলতে।
- Compute Optimizer দিয়ে rightsizing করতে, তার data-র শর্ত আর memory-র অন্ধ জায়গাটা জানতে, আর Cost Optimization Hub দিয়ে সব account-এর সাশ্রয় সাজাতে।
- Activate করা tag, AWS-generated tag, backfill আর cost category দিয়ে খরচ ভাগ করতে, আর line item-এ SQL লাগলে Data Exports (CUR 2.0, FOCUS) বেছে নিতে।
- পরীক্ষার “কোন cost tool?” প্রশ্নের উত্তর keyword দেখে দিতে, আর কাছাকাছি ভুল উত্তরগুলো কেন হারে তা বলতে।
#একটা বিল, অনেক প্রশ্ন
মাস শেষে একটা company-র AWS বিল একটাই অঙ্ক। কিন্তু তার পেছনের প্রশ্ন অনেক: টাকা কোথায় গেল? কোথায় যাচ্ছে? এই মুহূর্তে কি কিছু গোলমাল হচ্ছে? যা চালাচ্ছি তার জন্য কি বেশি দিচ্ছি? কে কোন অংশের টাকা দেবে? প্রতিটা প্রশ্নের জন্য AWS-এর আলাদা tool আছে, আর পরীক্ষা ঠিক এটাই যাচাই করে: এক বাক্যে একটা চাহিদা বলে, তারপর চারটা tool দেয় যেগুলো সবই কাছাকাছি শোনায়।
এই tool-গুলোর প্রথম পরিচয় হয়েছিল লেসন ১.৪-এ: Budgets (আসল আর পূর্বাভাসের খরচে alert, budget action), Cost Explorer (chart আর পূর্বাভাস, alert নেই), Cost Anomaly Detection (খরচের ওপর machine learning), CloudWatch billing alarm (us-east-1), Cost and Usage Report আর cost allocation tag। লেসন ৪.৪-এ শিখেছ Reserved Instance আর Savings Plans কীভাবে বিল হয়। এই লেসন সেগুলো আবার পড়াবে না। একজন architect-এর যতটা গভীরে যাওয়া দরকার, ততটা যাবে: কীভাবে খুঁজে বের করতে হয়, commitment কত হবে, anomaly model কেমন আচরণ করে, কীভাবে rightsize করতে হয়, আর বিল কীভাবে ভাগ করতে হয়।
| প্রশ্ন | Tool | কোথায় আছে |
|---|---|---|
| টাকা কোথায় গেল? কোথায় যাচ্ছে? | Cost Explorer | এখানে, গভীরে (মূল কথা ১.৪-এ) |
| একটা অঙ্ক পেরোনোর আগেই জানাও | AWS Budgets | ১.৪ (নিচে ঝালিয়ে নেওয়া) |
| অস্বাভাবিক কিছু হলে জানাও | Cost Anomaly Detection | এখানে, গভীরে |
| স্থির usage-এর জন্য কি পুরো দাম দিচ্ছি? | Savings Plans / RI (সুপারিশ করে Cost Explorer) | এখানে; কলকবজা ৪.৪-এ |
| এই resource-এর size কি ভুল? | Compute Optimizer, Cost Optimization Hub | এখানে |
| কে কোনটার টাকা দেবে? প্রতিটা line item দাও | Cost allocation tag, Data Exports | এখানে (মূল কথা ১.৪-এ) |
এগুলো সব থাকে Billing and Cost Management console-এ, আর সবগুলো চলে একই billing data দিয়ে, যেটা AWS দিনে অন্তত একবার, সাধারণত কয়েকবার, হালনাগাদ করে। এদের কেউই তোমার resource real time-এ দেখে না।
#Cost Explorer: মোট অঙ্ক থেকে আসল দোষী পর্যন্ত
Cost Explorer হলো সময়ের সঙ্গে খরচ আর usage দেখার, বোঝার আর সামলানোর একটা বিনা পয়সার console tool। একবার চালু করতে হয় (তারপর আর বন্ধ করা যায় না); চলতি মাসের data আসে প্রায় একদিনে, পুরোনো ইতিহাস আসে আরও কয়েক দিন পরে। Organization-এ management account সব member account দেখে (consolidated billing, লেসন ২০.১); member account দেখে নিজের খরচ, যদি না management account তাকে আটকে দেয়।
#Granularity, group by আর filter
তিনটা নিয়ন্ত্রণেই প্রায় সব কাজ হয়:
- Granularity: default হিসেবে monthly বা daily। Hourly আলাদা করে চালু করতে হয় (নিচে আছে)।
- Group by, একবারে একটা dimension: service, linked account, Region, Availability Zone, instance type, usage type, API operation, purchase option (On-Demand, Spot, Savings Plans…), charge type, cost allocation tag, cost category আর আরও কিছু। Group by দিলে প্রতিটা bar রঙিন টুকরোয় ভাগ হয়।
- Filter: এই dimension-গুলোর যেকোনো value রাখা বা বাদ দেওয়া, ইচ্ছামতো মিলিয়ে: “EC2, ap-south-1-এ, গত মাসে”।
খোঁজার কাজটা আসলে এগুলোরই একটা ধারা: service ধরে group করো, দেখো কোনটা লাফিয়েছে; সেটায় filter করে Region ধরে group করো; Region-এ filter করে usage type ধরে group করো। Usage type ঠিক কোন জিনিসটার বিল হয়েছে তার নাম বলে, যেমন APS3-BoxUsage:g5.2xlarge (APS3 হলো Mumbai-র prefix, BoxUsage মানে instance চলার ঘণ্টা, g5.2xlarge হলো type)। যেকোনো view report হিসেবে save করা যায়, CSV file হিসেবে download-ও করা যায়। AWS কিছু তৈরি report-ও দেয়: service ধরে মাসিক খরচ, linked account ধরে, দৈনিক খরচ, আর RI ও Savings Plans-এর utilization আর coverage report।
নিখুঁত উত্তরের জন্য দুটো cost view জানা দরকার: unblended cost মানে প্রতিটা line-এ যা চার্জ হয়েছে; amortized cost RI আর Savings Plans-এর upfront টাকা পুরো মেয়াদে ছড়িয়ে দেয়, যাতে বড় upfront কেনার মাসটাকে দুর্যোগ মনে না হয়।
#কতটা পেছনে, কতটা সামনে
| Default | বাড়ানো যায় | |
|---|---|---|
| ইতিহাস | ১৩ মাস (সঙ্গে চলতি মাস), daily আর monthly | Multi-year data: ৩৮ মাস পর্যন্ত, শুধু monthly, পুরো organization-এর জন্য Cost Management preferences থেকে চালু করতে হয় (৪৮ ঘণ্টার মধ্যে আসে) |
| Hourly granularity | বন্ধ | সব service-এর hourly data, আর resource-level data (সব service-এর daily, EC2 instance-এর hourly), প্রতিটা শুধু শেষ ১৪ দিনের; মাসে প্রায় প্রতি ১,০০০ usage record-এ ০.০১ USD |
| পূর্বাভাস | ১৮ মাস সামনে পর্যন্ত, একটা value আর তার prediction range | — |
নভেম্বর ২০২৫ পর্যন্ত পূর্বাভাসের দিগন্ত ছিল ১২ মাস; তখন AWS সেটা বাড়িয়ে ১৮ মাস করে, আর ঋতুভিত্তিক ওঠানামা ধরতে ৩৬ মাস পর্যন্ত ইতিহাস দিয়ে পূর্বাভাস শেখাতে শুরু করে। অনেক note আর পুরোনো practice প্রশ্নে এখনো ১২ লেখা; দুটো সংখ্যাই একই feature-এর কথা বলছে।
#সুপারিশ আর report
Cost Explorer (আর তার চারপাশের Billing and Cost Management console) সুপারিশও করে:
- তোমার সাম্প্রতিক usage দেখে Savings Plans আর Reserved Instance কেনার সুপারিশ (পরের অংশে)।
- EC2-এর rightsizing: কোন অলস instance বন্ধ করা যায়, কোন বড় instance ছোট করা যায়, একই family-র ভেতরে বা অন্য family-তে। এর পেছনে Compute Optimizer-এর মতো একই engine কাজ করে, তবে Compute Optimizer আরও অনেক রকম resource ধরে।
#Cost Explorer API
Console-এ যা আছে সবই আছে Cost Explorer API-তে (aws ce …): get-cost-and-usage, get-cost-forecast, get-savings-plans-purchase-recommendation, anomaly-র operation আর আরও কিছু। দুটো খুঁটিনাটি পরীক্ষায় আসার মতো:
- Console বিনা পয়সায়; API-র প্রতিটা request ০.০১ USD (paginated উত্তরের প্রতিটা পাতা আলাদা ধরে)। যে dashboard প্রতি মিনিটে call করে, তার খরচ মাসে প্রায় ৪৩০ USD।
- API-র endpoint একটাই, us-east-1-এ (
ce.us-east-1.amazonaws.com), তোমার resource যে Region-এই থাকুক, ঠিক CloudWatch-এর billing metric-এর মতো।
Cost Explorer: বিলটা কেটে কেটে দেখা
একই billing data, আলাদা আলাদা view। Granularity, group by আর filter বদলাও, উত্তরটা নিজেই বেরিয়ে আসে।
পরিস্থিতি
ঢাকার একটা startup-এর অক্টোবরের বিল সেপ্টেম্বরের দ্বিগুণ। চারটা click-এই instance-টা ধরা পড়ে।
Default view: মাসভিত্তিক মোট। চার মাস ধরে ১,২০০ USD-এর আশপাশে স্থির, তারপর অক্টোবরে ২,৪৮০। কিছু একটা বদলেছে, কিন্তু মোট অঙ্ক বলতে পারে না কী।
#Savings Plans: সুপারিশ থেকে কেনা পর্যন্ত
লেসন ৪.৪ থেকে মনে করো: Savings Plan মানে ১ বা ৩ বছরের জন্য প্রতি ঘণ্টায় নির্দিষ্ট পরিমাণ US ডলার খরচের প্রতিশ্রুতি (Savings Plan-এর দামে)। প্রতি ঘণ্টায় AWS eligible usage-এ ছাড়ের দাম বসায়, যেখানে ছাড় বেশি সেখানে আগে, যতক্ষণ না ওই ঘণ্টার commitment শেষ হয়; তার ওপরের usage বিল হয় On-Demand-এ; ওই ঘণ্টায় যে commitment কাজে লাগল না, সেটা হারিয়ে যায়। টাকা দেওয়ার উপায়: No, Partial বা All Upfront।
| Plan | কী ঢাকে | কিসে বাঁধা | সর্বোচ্চ ছাড় |
|---|---|---|---|
| Compute | EC2 (যেকোনো family, size, OS, tenancy, Region), Fargate, Lambda | শুধু টাকার অঙ্কে | ~৬৬% |
| EC2 Instance | এক Region-এর এক family-র EC2 | Family + Region | ~৭২% |
| SageMaker AI | SageMaker AI instance-এর usage | SageMaker AI | ~৬৪% |
| Database (ডিসেম্বর ২০২৫) | Aurora, RDS, DynamoDB, ElastiCache, DocumentDB, Neptune, Keyspaces, Timestream, DMS; মার্চ ২০২৬ থেকে OpenSearch Service আর Neptune Analytics-ও | শুধু database service; ১ বছরের মেয়াদ, upfront নেই | ~৩৫% পর্যন্ত (serverless), ~২০% (provisioned instance) |
#সুপারিশটা কীভাবে বানানো হয়
Savings Plans → Recommendations পাতায় (বা get-savings-plans-purchase-recommendation দিয়ে) তুমি বাছো:
- plan-এর ধরন (Compute, EC2 Instance, SageMaker AI, Database);
- মেয়াদ (১ বা ৩ বছর) আর payment option;
- lookback period: হিসাবটা দাঁড়াবে শেষ ৭, ৩০ বা ৬০ দিনের usage-এর ওপর;
- পরিধি: পুরো organization (management account থেকে) বা একটা account।
তারপর AWS তোমার সাম্প্রতিক usage ঘণ্টা ধরে ধরে নতুন করে চালিয়ে দেখে, আর যে hourly commitment-এ আসল সাশ্রয় সবচেয়ে বেশি সেটা সুপারিশ করে: সঙ্গে আন্দাজি মাসিক On-Demand খরচ, plan-সহ খরচ আর সাশ্রয়। Purchase Analyzer দিয়ে কেনার আগে অন্য commitment পরীক্ষা করে দেখা যায়। Lookback সাবধানে বাছো: বড় একটা sale-এর সপ্তাহের ঠিক পরে ৭ দিনের জানালা নিলে সুপারিশ বেশি আসবে।
সুপারিশ billing data থেকে দিনে অন্তত একবার হালনাগাদ হয়, আর তোমার কেনা plan-গুলো হিসাবে ধরে: একটা কেনার পরে পরের সুপারিশ ছোট হয়ে যায়। Plan বাতিল বা বিক্রি করা যায় না; শুধু যে plan-এর commitment ঘণ্টায় ১০০ USD বা তার কম, শেষ ৭ দিনে আর একই ক্যালেন্ডার মাসে কেনা, সেটা ফেরত দেওয়া যায় (management account-প্রতি বছরে ১০টা পর্যন্ত)।
#Utilization আর coverage
Commitment ঠিকঠাক বসেছে কি না, দুটো report বলে দেয়:
- Utilization: commitment-এর কতটা কাজে লাগল। ১০০%-এর কম মানে কিছু ঘণ্টায় তুমি কিছু না পেয়েই টাকা দিয়েছ। (Budgets-এর Savings Plans utilization budget এতে alert দিতে পারে, লেসন ১.৪।)
- Coverage: তোমার eligible খরচের কতটা plan ঢেকেছে। Utilization ১০০% কিন্তু coverage কম মানে আরও commit করা যায়।
#ঘণ্টার চেহারা দেখে মাপ
Plan-এর হিসাব যেহেতু ঘণ্টা ধরে ধরে মেটে, ঠিক commitment নির্ভর করে usage-এর ঘণ্টাভিত্তিক চেহারার ওপর, মাসের মোট অঙ্কের ওপর না। যে তলাটুকু সারাক্ষণ চলে, তাতে commit করো; চূড়াগুলো চলুক On-Demand-এ, বা থামানো গেলে Spot-এ। Daily view রাতের batch লুকিয়ে ফেলে; hourly view (Cost Explorer-এর opt-in, বা Data Exports) সেটা দেখায়। Organization-এ plan-এর ছাড় consolidated bill-এর সব account-এর সাথে ভাগ হয়, যদি না কেনা account-এর জন্য sharing বন্ধ করো।
Savings Plan, ঘণ্টা ধরে ধরে
চট্টগ্রামের একটা logistics company-র compute: রাতে ঘণ্টায় ১০ USD, অফিস সময়ে ২০ USD (On-Demand দামে)। প্রতিটা bar সেই ঘণ্টায় সে কত দিচ্ছে।
পরিস্থিতি
ছাড় ৩০%, commitment ঘণ্টায় ৭ USD: রাতের তলাটা, Savings Plan-এর দামে, ঠিক এতটুকুই।
On-Demand দামে
$60.0
দেওয়া হলো
$42.0
নষ্ট commitment
$0.0
ওপরে On-Demand
$0.0
সাশ্রয়
$18.0 (30%)
০০:০০ থেকে ০৫:০০: ১০ USD-এর On-Demand usage ৩০% ছাড়ের Savings Plan দামে ৭ USD। Commitment শেষ পয়সা পর্যন্ত কাজে লাগছে; প্রতি ঘণ্টায় ১০-এর জায়গায় ৭।
Calculator-টা চালিয়ে দেখো: একটা usage-এর ধরন বাছো (রবি থেকে বৃহস্পতি অফিস সময় হলো বাংলাদেশের কর্মসপ্তাহ), তারপর commitment সরাও। তলার ওপরে commit করামাত্র নষ্ট হওয়া টাকা দেখা দেবে।
Savings Plan commitment calculator
তোমার eligible compute খরচ সপ্তাহজুড়ে কীভাবে ওঠানামা করে সেটা বাছো, তারপর ঘণ্টাপ্রতি commitment ঠিক করো। AWS যেভাবে বিল করে, ঠিক সেভাবে plan-টা ঘণ্টা ধরে ধরে বসানো হবে।
প্রতি মাসে (৭৩০ ঘণ্টা)
পুরোটা On-Demand
$7,926
Plan-সহ
$6,174
Commitment নষ্ট
$0
ওপরে On-Demand বিল
$2,086
আসল সাশ্রয়
$1,752 (22%)
Utilization
100%
Coverage
74%
Commitment প্রতি ঘণ্টায় পুরোটা কাজে লাগছে। বাড়তি ঘণ্টাগুলো যদি স্থির হয়, আরেকটু বেশি commit করা যায়।
একটা ব্যস্ত দিন (রবিবার), ঘণ্টা ধরে ধরে
#Cost Anomaly Detection: “এটা তো তোমার স্বভাব না”
লেসন ১.৪-এ পরিচয় হয়েছে: Cost Anomaly Detection machine learning দিয়ে তোমার স্বাভাবিক খরচ শেখে, আর খরচ সেই ধরন ভাঙলে alert দেয়। কোনটা অস্বাভাবিক, তার threshold তুমি ঠিক করো না; model নিজেই ঠিক করে, সাপ্তাহিক আর মাসিক ঋতুর ওঠানামা আর স্বাভাবিক বৃদ্ধি হিসাবে ধরে। এটা বিনা পয়সায়। এবার দেখা যাক আসলে কীভাবে চলে।
#Monitor: কী দেখবে
একটা cost monitor ঠিক করে কোন খরচ যাচাই হবে। Dimension চারটা:
| Dimension | কী দেখে |
|---|---|
| AWS services | তুমি যত service ব্যবহার করো, প্রতিটা আলাদাভাবে (নতুন service আপনা-আপনি যোগ হয়) |
| Linked account | Organization-এর member account |
| Cost category | একটা cost category-র value, যেমন business unit |
| Cost allocation tag | একটা tag key-এর value, যেমন প্রতিটা team |
Monitor হয় AWS managed (dimension-এর সব value আলাদা আলাদা দেখে, ৫,০০০ পর্যন্ত, নতুন account, tag বা category আপনা-আপনি ধরে নেয়), নয়তো customer managed (তুমি বেছে দাও ১০টা পর্যন্ত account বা tag value, বা একটা cost category value, আর সেগুলো একসাথে যাচাই হয়)। Linked account, tag আর cost category-র monitor বানাতে হয় management account-এ। Cost Explorer চালু করলে AWS নিজেই daily summary-সহ একটা default AWS-services monitor বানিয়ে দেয়।
#Alert subscription: কে শুনবে, কখন
প্রতিটা monitor-এর এক বা একাধিক alert subscription থাকে:
- কত ঘনঘন: individual alert, anomaly ধরা পড়ামাত্র, SNS topic দিয়ে (সেখান থেকে email, Amazon Q Developer in chat applications দিয়ে chat, Lambda, ticketing system); নয়তো email-এ daily summary বা weekly summary। Anomaly EventBridge event হিসেবেও আসে।
- Threshold: ডলারে absolute প্রভাব (যেমন ১০০ USD) আর/অথবা প্রত্যাশিত খরচের ওপর percentage প্রভাব (যেমন ৪০%), AND বা OR দিয়ে জোড়া। Threshold শুধু alert ছাঁকে; model যত anomaly ধরে, সবই Detected anomalies পাতায় থাকে।
প্রতিটা anomaly-র সঙ্গে আসে তার cost impact (আসল খরচ বিয়োগ প্রত্যাশিত খরচ), প্রভাবের শতাংশ, একটা severity, আর root cause, ডলারের প্রভাব অনুযায়ী সাজানো, চারটা dimension-এ: service, account, Region আর usage type। কোনো anomaly-কে “accurate” বা “not an issue” বলে চিহ্ন দিলে model শেখে।
#“সাথে সাথে” কতটা দ্রুত?
সাথে সাথে না। Billing data প্রক্রিয়া হওয়ার পরে Cost Anomaly Detection দিনে প্রায় তিনবার চলে, net unblended cost-এর ওপর। নিচের data যেহেতু ২৪ ঘণ্টা পর্যন্ত পিছিয়ে থাকতে পারে, একটা anomaly ধরা পড়তে একদিন পর্যন্ত লাগতে পারে; নতুন monitor চালু হতে লাগে ২৪ ঘণ্টা; আর সবে ব্যবহার শুরু করা service-এর জন্য model-এর আগে প্রায় ১০ দিনের ইতিহাস লাগে। বেশিরভাগ AWS Marketplace চার্জ সে দেখে না (ওগুলোর জন্য Budgets ব্যবহার করো)।
#Anomaly Detection, নাকি Budgets?
| AWS Budgets | Cost Anomaly Detection | |
|---|---|---|
| তুমি ঠিক করো | একটা অঙ্ক আর threshold | শুধু কী দেখবে, আর কত বড় প্রভাবে alert চাই |
| কখন বাজে | আসল বা পূর্বাভাসের খরচ তোমার দাগ পেরোলে | খরচ শেখা ধরন ভাঙলে |
| ধরে | সীমার দিকে ধীর, স্থির বৃদ্ধি | হঠাৎ লাফ, যেকোনো budget-এর অনেক নিচে হলেও |
| ধরতে পারে না | Budget-এর ভেতরে থাকা লাফ | স্বাভাবিক বৃদ্ধির মতো দেখতে ধীর সরে যাওয়া |
| কাজ করতে পারে | Budget action: IAM policy, SCP, EC2/RDS stop | শুধু alert (SNS বা EventBridge দিয়ে নিজে automate করো) |
| খরচ | নজর রাখা বিনা পয়সায়; দুটোর বেশি action budget-এ সামান্য দাম | বিনা পয়সায় |
দুটোই চালাও। Animation-এ তিনটা অবস্থাই আছে: budget-এর ভেতরে একটা লাফ, ধীর বৃদ্ধি, আর একটা সাপ্তাহিক ছন্দ যেটাকে নির্দিষ্ট নিয়ম anomaly ভেবে ভুল করত।
Cost Anomaly Detection বনাম AWS Budgets
ওপরে: দিনের খরচ আর model যে সীমা আশা করে। নিচে: মাসের এ পর্যন্ত খরচ আর Budgets-এর পূর্বাভাস, একটা নির্দিষ্ট budget-এর পাশে। দেখো কোন tool মুখ খোলে।
পরিস্থিতি
ফাঁস হওয়া একটা access key দিয়ে দুই দিন us-west-2-এ GPU instance চলে। তবু মাস শেষ হয় budget-এর নিচেই।
যে alert গেছে
এখনো কিছু না
স্বাভাবিক এক সপ্তাহ: কাজের দিনে প্রায় ৪৫ USD, শুক্র-শনিবার ৩০। Model এই ছন্দ শিখে নিয়েছে, তাই সপ্তাহান্তের কম খরচ band-এর ভেতরেই।
#Compute Optimizer আর Cost Optimization Hub
Savings Plans কমায় যা চালাচ্ছ তার দাম। Rightsizing কমায় তুমি কতটা চালাচ্ছ। AWS Compute Optimizer তোমার resource-এর configuration আর CloudWatch utilization metric বিশ্লেষণ করে ভালো size সুপারিশ করে; প্রতিটা resource-কে বলে under-provisioned (ছোট পড়ছে), over-provisioned (দরকারের চেয়ে বড়) বা optimized, আর idle (অলস) resource-ও চিহ্নিত করে। এটা opt-in, সব Region জুড়ে কাজ করে, আর management account থেকে পুরো organization জুড়ে। এটা শুধু সুপারিশ করে; নিজে কখনো কোনো resource বদলায় না।
কী কী ঢাকে (২০২৬): EC2 instance, EC2 Auto Scaling group, EBS volume, Lambda function (memory size), Fargate-এ চলা ECS service (task-এর CPU আর memory), RDS আর Aurora database (MySQL, PostgreSQL, Aurora), commercial software licence (EC2-তে SQL Server), আর NAT gateway, DynamoDB, ElastiCache, MemoryDB, DocumentDB, WorkSpaces ও SageMaker endpoint-এর idle বা rightsizing finding। পরীক্ষা সাধারণত প্রথম পাঁচটার নাম বলে।
কী লাগে:
- Default হিসেবে ১৪ দিনের metric; ওই জানালায় একটা EC2 instance-এর অন্তত ৩০ ঘণ্টার data; Lambda function-এর ১৪ দিনে অন্তত ৫০টা invocation (আর memory ১,৭৯২ MB পর্যন্ত); Fargate-এ ECS-এর ২৪ ঘণ্টা, আর কোনো step scaling বা CPU-আর-memory দুটোর ওপর target tracking না থাকা।
- Memory: EC2 নিজে থেকে CloudWatch-এ memory জানায় না, কারণ memory থাকে operating system-এর ভেতরে। CloudWatch agent install করো (Systems Manager পুরো fleet-এ পাঠাতে পারে, লেসন ২৫.৩), তাহলে সুপারিশে memory ধরা হবে; নইলে memory-খেকো একটা server-কে ছোট হতে বলা হতে পারে।
- Enhanced infrastructure metrics, একটা টাকার preference, পেছনে দেখার সময় বাড়িয়ে ৯৩ দিন করে, যাতে মাসিক আর ত্রৈমাসিক চূড়া ধরা পড়ে। CPU আর memory-র headroom, পছন্দের instance family (যেমন Graviton) ঠিক করা যায়, Datadog বা Dynatrace থেকে memory metric-ও আনা যায়।
- Cost Explorer চালু থাকা, যাতে সাশ্রয়ের দাম কষা যায়।
ওপরে বসে Cost Optimization Hub (২০২৩, বিনা পয়সায়): সে সব account আর Region জুড়ে Compute Optimizer-এর rightsizing আর idle finding, সঙ্গে Savings Plans আর reservation-এর সুপারিশ একত্র করে, তোমার নিজের ছাড় ধরে দাম কষে, একটার ওপর আরেকটা চাপানো সাশ্রয় একবারই গোনে (আগে rightsize করলে দরকারি Savings Plan ছোট হয়), আর সাজিয়ে দেয়, অগ্রগতি মাপার জন্য একটা cost-efficiency metric-সহ। “পুরো organization জুড়ে সাশ্রয়ের একটাই অগ্রাধিকার তালিকা” চাইলে উত্তর এটাই।
AWS Trusted Advisor-এরও কিছু খরচের check আছে (অলস load balancer, জোড়া না থাকা Elastic IP, কম ব্যবহারের instance…)। এটা Well-Architected-এর ছবির অংশ, লেসন ২৬.১-এ; utilization metric দেখে rightsizing-এর প্রশ্নে উত্তর Compute Optimizer।
Compute Optimizer: metric দেখে সঠিক size
একটা garments group-এর ERP server CloudWatch-এ metric পাঠায়; Compute Optimizer তার ১৪ দিনের হিসাব পড়ে size সুপারিশ করে।
পরিস্থিতি
CPU আর memory দুটোই কম ব্যবহার হচ্ছে। সুপারিশ: ছোট করো।
Instance বিনা পয়সায় CPU, network আর disk-এর metric CloudWatch-এ পাঠায়। CloudWatch agent memory-ও পাঠায়। দুই সপ্তাহ ধরে CPU কখনো ১৮%-এর ওপরে যায়নি, memory থেকেছে ৩০%-এর কাছে।
#বিল ভাগ করা আর বাইরে নেওয়া
#Cost allocation tag, গভীরে
১.৪ থেকে মনে করো: resource-এ tag দাও (dept=cse), Billing and Cost Management → Cost allocation tags-এ tag key-টা activate করো, তারপর সেটা ধরে group আর filter করো। একজন architect-এর যা জানা দরকার:
- User-defined tag তোমার; AWS-generated tag AWS নিজে বসায়, যেমন
aws:createdBy(কে resource বানিয়েছে) আরaws:cloudformation:stack-name। Billing-এ আসতে দুটোকেই activate করতে হয়। myApplications-এ নথিভুক্ত application-এর resource-এ AWS যেawsApplicationtag বসায়, সেটা আপনা-আপনি activate হয়। - Organization-এ tag activate করতে পারে শুধু management account, সবার হয়ে।
- নতুন tag key পাতায় দেখা দিতে ২৪ ঘণ্টা পর্যন্ত লাগতে পারে, activate হতে আরও ২৪ ঘণ্টা পর্যন্ত।
- Activate করলেই পেছনের খরচে ছড়ায় না: activate-এর আগের খরচ দেখায় No tag key। মার্চ ২০২৪ থেকে management account ১২ মাস পর্যন্ত backfill চাইতে পারে (২৪ ঘণ্টায় একবার), তবে সেটা কাজ করে কেবল সেই মাসগুলোর জন্য যখন resource-এ tag-টা আগে থেকেই ছিল।
- কিছু খরচে কখনো তোমার tag বসে না: support fee, data transfer-এর অনেকটা, ভাগের networking। Cost category নিয়ম দিয়ে (account, tag, service) খরচকে business-এর ভাগে সাজায়, আর split charge rule ভাগের খরচ একটা অনুপাতে ছড়িয়ে দেয়, সমানভাবে বা ব্যবহারের অনুপাতে।
- শুরুতেই tag বাধ্যতামূলক করো: Organizations-এর tag policy key আর value এক রকম রাখে, একটা SCP
aws:RequestTag/deptছাড়াec2:RunInstancesআটকাতে পারে (লেসন ২০.১), আর IaC default tag বসাতে পারে।
#Data Exports: CUR 2.0 আর FOCUS
প্রশ্নে যখন প্রতিটা line item (resource ধরে, ঘণ্টা ধরে), SQL, বা খরচের data কোনো data warehouse-এ তোলার কথা থাকে, উত্তর AWS Data Exports, যেটা পুরোনো Cost and Usage Report-এর জায়গা নিয়েছে:
- CUR 2.0: সুপারিশ করা খুঁটিনাটি export, নির্দিষ্ট schema আর তোমার বাছা column (tag আর resource ID-সহ), S3 bucket-এ Parquet বা CSV হয়ে আসে, দিনে অন্তত একবার হালনাগাদ। Athena দিয়ে query করো (লেসন ১৭.১) বা Redshift-এ তোলো।
- FOCUS (AWS column-সহ 1.0 আর 1.2): একই data, খোলা FinOps cost format-এ, যাতে একই query সব cloud-এ চলে।
- Cost optimization recommendation (Cost Optimization Hub থেকে) আর carbon emission-ও export হিসেবে পাওয়া যায়।
- একটা cost and usage dashboard: এক click-এ export-এর ওপর একটা QuickSight dashboard বসে যায় (লেসন ১৭.৫)।
- পুরোনো pipeline-এর জন্য legacy CUR এখনো আছে।
#আরও দুটো tool, এক লাইনে
- AWS Pricing Calculator: যা এখনো বানাওনি তার খরচ আন্দাজ। calculator.aws-এর public সংস্করণে কোনো account লাগে না; Billing console-এর ভেতরের সংস্করণ (২০২৫-এর মাঝামাঝি থেকে generally available) তোমার নিজের ছাড় আর Savings Plans বসিয়ে পুরো বিলের পরিবর্তন হিসাব করতে পারে।
- AWS Billing Conductor: account-এর দলের জন্য নিজের দামে pro forma বিল বানানো, reseller আর ভেতরের chargeback-এর জন্য, AWS আসলে তোমার কাছে যা চার্জ করে সেটা না বদলে।
#কোন প্রশ্নে কোন cost tool?
এটা ১.৪-এর table-কে আরও বড় করে।
| প্রশ্নে লেখা থাকে… | উত্তর | কাছাকাছি ভুল উত্তর, আর সেটা কেন হারে |
|---|---|---|
| “Visualise costs”, “cost trends over time”, “কোন service-এ সবচেয়ে বেশি খরচ”, “forecast spend” | Cost Explorer | Budgets একটা দাগের হিসাব রাখে, খরচ ভেঙে দেখায় না; CUR-এ query নিজে বানাতে হয় |
| “বিল X ছাড়ানোর আগেই alert”, “forecasted spend” | AWS Budgets (forecasted alert) | Cost Explorer পূর্বাভাস দেয় কিন্তু alert দেয় না; CloudWatch billing alarm শুধু মাসের এ পর্যন্ত দেখে |
| “Budget পেরোলে instance stop / launch আটকাও” | Budget action | Anomaly Detection শুধু alert দেয় |
| “Unexpected spikes”, “unusual spend”, “machine learning on billing”, “threshold ঠিক করতে হবে না” | Cost Anomaly Detection | Budgets-এ threshold লাগে, আর তার ভেতরের লাফ ধরতে পারে না |
“EstimatedCharges-এ alarm”, “billing-এর CloudWatch metric” | us-east-1-এ CloudWatch billing alarm | Budgets আধুনিক পছন্দ, কিন্তু প্রশ্নে CloudWatch-এর নাম আছে |
| “১ বা ৩ বছর commit, কিন্তু family, Region, Fargate, Lambda বদলানোর স্বাধীনতা” | Compute Savings Plan | Standard RI family বদলাতে পারে না; কোনো RI Fargate বা Lambda ঢাকে না, Region-ও বদলায় না |
| “এক Region-এ এক family-র স্থির usage, সবচেয়ে বড় ছাড়” | EC2 Instance Savings Plan বা Standard RI | Compute Savings Plan বেশি নমনীয়, কিন্তু ছাড় কম |
| “Managed database, সব engine জুড়ে commitment-এর ছাড়” | Database Savings Plan (বা service-ভিত্তিক reserved instance) | Compute আর EC2 Instance plan managed database ঢাকে না |
| “কোন commitment কিনব?” | Savings Plans recommendation (Billing and Cost Management / Cost Explorer-এ) | Compute Optimizer resource-এর size ঠিক করে, commitment না |
| “Over-provisioned”, “utilization metric দেখে rightsizing”, EC2/EBS/Lambda/Fargate | Compute Optimizer | Cost Explorer-এর rightsizing শুধু EC2-র; Trusted Advisor-এর check মোটা দাগের |
| “সুপারিশে memory ধরা হচ্ছে না” | CloudWatch agent install করো | Enhanced metrics পেছনে দেখার সময় বাড়ায়, memory যোগ করে না |
| “সব account জুড়ে সাশ্রয়ের একটা অগ্রাধিকার তালিকা” | Cost Optimization Hub | শুধু Compute Optimizer commitment-এর পরামর্শ দেয় না |
| “বিভাগ / project / team ধরে খরচ” | Cost allocation tag (activate করা) + Cost Explorer বা cost category | আলাদা account দিয়েও হয়, কিন্তু প্রশ্নে tag-এর কথা |
| “সবচেয়ে খুঁটিনাটি data”, “S3-এ line item”, “Athena বা SQL দিয়ে billing query” | Data Exports (CUR 2.0) | Cost Explorer API সারসংক্ষেপ দেয়, প্রতি call ০.০১ USD |
| “পরিকল্পিত architecture-এর খরচ আন্দাজ” | Pricing Calculator | Cost Explorer শুধু তোমার নিজের অতীত থেকে পূর্বাভাস দেয় |
| “Resale বা chargeback-এর জন্য নিজের দাম” | Billing Conductor | Cost category খরচ সাজায়, দাম বদলায় না |
| “অফিস সময়ের বাইরে dev server বন্ধ” | Instance Scheduler on AWS (লেসন ২৫.৫) | Budget action instance থামায় শুধু টাকা খরচ হয়ে যাওয়ার পরে |
কোন cost tool?
প্রতিটা card একটা পরীক্ষার প্রশ্নের চাহিদা। তিনটা tool-ই মানানসই মনে হয়; যেটা সবচেয়ে ভালো মেলে, সেটা বাছো।
1.এই account-এর স্বভাবের বাইরে হঠাৎ খরচ লাফ দিলে alert চাই, কোনো ডলার সীমা ঠিক না করেই।
2.এ মাসের বিল ৩,০০০ USD ছাড়িয়ে যাবে বলে পূর্বাভাস হলেই, আগেভাগে finance team-কে email চাই।
3.গত ছয় মাসে কোন কোন service খরচ বাড়িয়েছে, Region ধরে দেখাতে হবে, আর আগামী বছরের পূর্বাভাসও।
4.Utilization metric দেখে বের করতে হবে কোন EC2 instance, EBS volume আর Lambda function দরকারের চেয়ে বড়।
5.প্রতিটা resource-এর ঘণ্টাভিত্তিক line-item billing data S3-এ নিয়ে Athena-তে SQL দিয়ে query করতে হবে।
6.একটা বিশ্ববিদ্যালয়কে AWS বিলে প্রতিটা বিভাগের ভাগ দেখতে হবে।
7.১–৩ বছরের compute ছাড় চাই, যেটা team EC2 থেকে Fargate-এ গেলে আর Region বদলালেও চালু থাকবে।
8.৪০টা account জুড়ে rightsizing, অলস resource আর Savings Plan-এর সাশ্রয়ের একটাই অগ্রাধিকার তালিকা, একই টাকা দু’বার না গুনে।
9.এখনো তৈরি হয়নি এমন একটা নতুন architecture-এর মাসিক খরচ আন্দাজ করতে হবে।
10.খরচ প্রতি সপ্তাহে নিয়ম করে কয়েক শতাংশ বাড়ছে। ত্রৈমাসিক ৫,০০০ USD-এর পরিকল্পনা ভাঙার আগেই কাউকে জানাতে হবে।
প্রথমবারেই ঠিক: 0 / 0 (10)
#কোথায় ভুল হয়
- “Cost Explorer আমাদের সতর্ক করবে।” সে কখনো alert দেয় না। সঙ্গে একটা budget আর একটা anomaly monitor রাখো।
- পূর্বাভাস নেই বা আজগুবি: নতুন account-এ ইতিহাস কম; আগামী মাসের migration-এর কথাও পূর্বাভাস জানে না। Budgets-এর forecasted alert-এর জন্য প্রায় পাঁচ সপ্তাহের ইতিহাস লাগে (লেসন ১.৪)।
- গতকাল বিল লাফিয়েছে, কিছুই বাজেনি: billing data কয়েক ঘণ্টা পিছিয়ে থাকে; Anomaly Detection চলে দিনে প্রায় তিনবার। Real-time সুরক্ষা আসে সীমা আর guardrail থেকে (অব্যবহৃত Region আটকানো SCP, IAM), cost tool থেকে না।
- Anomaly ধরা পড়েছে, কেউ শোনেনি: subscription-এর threshold-এর নিচে ছিল, বা subscription-টা weekly summary। জরুরি monitor-এর জন্য SNS দিয়ে individual alert রাখো, আর percentage-সহ OR threshold।
- একদম নতুন service-এ কোনো anomaly নেই: তার জন্য model-এর প্রায় ১০ দিনের ইতিহাস লাগে। ফাঁকটা একটা budget দিয়ে ঢাকো।
- বেশি commit করা Savings Plan: প্রতি রাতে utilization ১০০%-এর নিচে। বাতিল করা যায় না; চলতে দাও, আর কিছু কিনো না, পরেরটা তলা মেপে কেনো। ভুল করে কেনা plan ৭ দিনের মধ্যে ফেরত দেওয়া যায়, কেবল যদি ঘণ্টায় ১০০ USD বা কম হয় আর একই ক্যালেন্ডার মাসে হয়।
- Migration-এর পরে EC2 Instance Savings Plan আর বাঁচাচ্ছে না: workload family (Graviton-এ) বা Region বদলেছে। Compute Savings Plan হলে পিছু পিছু যেত।
- Rightsizing-এর পরে application ভেঙেছে: memory মাপা হয়নি। কিছু করার আগে CloudWatch agent install করো, আর পরীক্ষা করো।
- Rightsizing মাস শেষের চূড়া দেখেনি: ১৪ দিনের জানালায় সেটা ছিল না। Enhanced infrastructure metrics (৯৩ দিন) বা CPU headroom preference।
- Tag দেখায় “No tag key”: key কখনো activate হয়নি, management account-এর বদলে member account-এ activate করা হয়েছে, বা খরচগুলো activate-এর আগের (backfill চাও)। ভাগের খরচে কখনো tag বসে না: split charge-সহ cost category ব্যবহার করো।
- Cost Explorer API-র বিল: প্রতি মিনিটে call করা একটা dashboard। উত্তর cache করো, বা বড় data-র জন্য Data Exports নাও।
- অন্য Region-এর endpoint থেকে API call ব্যর্থ: Cost Explorer API থাকে us-east-1-এ।
#System design-এ cost tool
- প্রথম দিন থেকেই খরচ চোখের সামনে রাখো: landing zone-এ management account থেকে মানক tag key আর business unit-প্রতি একটা cost category activate করো, আলাদা একটা billing account-এর S3 bucket-এ Data Exports-এর CUR 2.0 export বসাও, আর প্রতিটা team-কে একটা budget দাও।
- Alarm স্তরে স্তরে সাজাও: পরিকল্পনার জন্য Budgets (forecasted আর actual), চমকের জন্য Anomaly Detection (account-প্রতি বা team tag-প্রতি AWS managed monitor), SNS থেকে একটা chat channel-এ আর একটা Lambda function বা EventBridge rule-এ, যে ticket খোলে। Sandbox account-এ শক্ত থামানোর জন্য budget action।
- ক্রম মেনে সাশ্রয় করো: আগে অপচয় সরাও (অলস resource, dev/test-এর জন্য Instance Scheduler, storage lifecycle), তারপর rightsize (Compute Optimizer), তারপর commit (যা বাকি থাকল তার ওপর Savings Plans, ঘণ্টার তলা মেপে), তারপর architecture (থামানো যায় এমন কাজে Spot, Graviton, serverless)। Commit সবার শেষে, নইলে অপচয়ের ওপরেই commit করে ফেলবে।
- একক খরচ মাপো: অর্ডারপ্রতি, সক্রিয় user-প্রতি বা transaction-প্রতি খরচ, tag বা export থেকে business data-র সাথে মিলিয়ে, এটাই সেই KPI যা বলে বৃদ্ধিটা সুস্থ কি না। Traffic তিনগুণ হলে বিল দ্বিগুণ হওয়া ভালো খবর।
- FinOps review: মাসে একবার Cost Optimization Hub, Savings Plans-এর utilization আর coverage, আর anomaly-র ইতিহাস দেখা, প্রতিটা finding-এর একজন মালিকসহ। Well-Architected Framework-এর Cost Optimization pillar (লেসন ২৬.১) এর কাঠামো দেয়।
#নিজে করে দেখো
এই command-গুলো AWS CLI v2-এর। Cost Explorer API-র প্রতিটা call ০.০১ USD, আর সবসময় যায় us-east-1-এ; budget, anomaly monitor আর Compute Optimizer বিনা পয়সায় (enhanced metrics না)। Account ID আর ARN বানানো।
# ১. গত তিন মাস, service ধরে (console-এর "group by Service")
aws ce get-cost-and-usage --region us-east-1 \
--time-period Start=2026-08-01,End=2026-11-01 --granularity MONTHLY \
--metrics UnblendedCost --group-by Type=DIMENSION,Key=SERVICE \
--query 'ResultsByTime[].Groups[?to_number(Metrics.UnblendedCost.Amount)>`100`].[Keys[0],Metrics.UnblendedCost.Amount]' --output text
# Amazon Elastic Compute Cloud - Compute 650.12
# Amazon Relational Database Service 340.07
# Amazon Elastic Compute Cloud - Compute 1871.40
# Amazon Relational Database Service 339.88
# ২. আরও গভীরে: শুধু EC2, Region ধরে, তারপর usage type ধরে
aws ce get-cost-and-usage --region us-east-1 \
--time-period Start=2026-10-01,End=2026-11-01 --granularity MONTHLY --metrics UnblendedCost \
--filter '{"Dimensions":{"Key":"SERVICE","Values":["Amazon Elastic Compute Cloud - Compute"]}}' \
--group-by Type=DIMENSION,Key=REGION
# ... ap-southeast-1 650.31 ap-south-1 1221.09
aws ce get-cost-and-usage --region us-east-1 \
--time-period Start=2026-10-01,End=2026-11-01 --granularity DAILY --metrics UnblendedCost \
--filter '{"Dimensions":{"Key":"REGION","Values":["ap-south-1"]}}' \
--group-by Type=DIMENSION,Key=USAGE_TYPE
# ... APS3-BoxUsage:g5.2xlarge 46.97 (2026-10-06 থেকে প্রতিদিন)
# ৩. আগামী তিন মাসের পূর্বাভাস, 80% prediction interval-সহ
aws ce get-cost-forecast --region us-east-1 \
--time-period Start=2026-11-01,End=2027-02-01 --granularity MONTHLY \
--metric UNBLENDED_COST --prediction-interval-level 80
# { "Total": { "Amount": "3712.4", "Unit": "USD" },
# "ForecastResultsByTime": [ { "MeanValue": "1230.1", "PredictionIntervalLowerBound": "1151.0", "PredictionIntervalUpperBound": "1309.2" }, ... ] }
# ৪. কোন Compute Savings Plan কিনব? (১ বছর, no upfront, শেষ ৩০ দিন)
aws ce get-savings-plans-purchase-recommendation --region us-east-1 \
--savings-plans-type COMPUTE_SP --term-in-years ONE_YEAR \
--payment-option NO_UPFRONT --lookback-period-in-days THIRTY_DAYS \
--query 'SavingsPlansPurchaseRecommendation.SavingsPlansPurchaseRecommendationSummary.[HourlyCommitmentToPurchase,EstimatedSavingsPercentage,EstimatedMonthlySavingsAmount]'
# [ "4.102", "23.41", "873.55" ]
# ৫. Plan-গুলো কেমন বসেছে? গত মাসের coverage আর utilization
aws ce get-savings-plans-coverage --region us-east-1 \
--time-period Start=2026-10-01,End=2026-11-01 --granularity MONTHLY \
--query 'SavingsPlansCoverages[].Coverage.CoveragePercentage'
# [ "71.8" ]
aws ce get-savings-plans-utilization --region us-east-1 \
--time-period Start=2026-10-01,End=2026-11-01 \
--query 'Total.Utilization.UtilizationPercentage'
# "100"
# ৬. Cost Explorer থেকে EC2 rightsizing (Compute Optimizer আরও খুঁটিনাটি দেয়, ধাপ ৯)
aws ce get-rightsizing-recommendation --region us-east-1 --service AmazonEC2 \
--configuration RecommendationTarget=CROSS_INSTANCE_FAMILY,BenefitsConsidered=true \
--query 'RightsizingRecommendations[].[CurrentInstance.ResourceId,RightsizingType]' --output text
# i-0aa11bb22cc33dd44 TERMINATE
# i-0ee55ff66aa77bb88 MODIFY
# ৭. প্রতিটা linked account-এর জন্য একটা AWS managed anomaly monitor, আর একটা SNS alert subscription
aws ce create-anomaly-monitor --region us-east-1 --anomaly-monitor '{
"MonitorName": "per-account", "MonitorType": "DIMENSIONAL", "MonitorDimension": "LINKED_ACCOUNT" }'
# { "MonitorArn": "arn:aws:ce::111122223333:anomalymonitor/0a1b2c3d-EXAMPLE" }
aws ce create-anomaly-subscription --region us-east-1 --anomaly-subscription '{
"SubscriptionName": "security-team", "Frequency": "IMMEDIATE",
"MonitorArnList": ["arn:aws:ce::111122223333:anomalymonitor/0a1b2c3d-EXAMPLE"],
"Subscribers": [{ "Type": "SNS", "Address": "arn:aws:sns:us-east-1:111122223333:cost-alerts" }],
"ThresholdExpression": { "Or": [
{ "Dimensions": { "Key": "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": ["GREATER_THAN_OR_EQUAL"], "Values": ["100"] } },
{ "Dimensions": { "Key": "ANOMALY_TOTAL_IMPACT_PERCENTAGE", "MatchOptions": ["GREATER_THAN_OR_EQUAL"], "Values": ["40"] } } ] } }'
# ৮. গত সপ্তাহে ধরা পড়া anomaly, root cause-সহ
aws ce get-anomalies --region us-east-1 --date-interval StartDate=2026-10-25,EndDate=2026-11-01 \
--query 'Anomalies[].[AnomalyStartDate,Impact.TotalImpact,RootCauses[0].Service,RootCauses[0].Region]' --output text
# 2026-10-12 352.0 Amazon Elastic Compute Cloud - Compute us-west-2
# ৯. Compute Optimizer: একবার opt in, তারপর EC2-র finding পড়ো
aws compute-optimizer update-enrollment-status --status Active --include-member-accounts
aws compute-optimizer get-ec2-instance-recommendations --region ap-southeast-1 \
--query 'instanceRecommendations[].[instanceArn,finding,currentInstanceType,recommendationOptions[0].instanceType]' --output text
# arn:aws:ec2:ap-southeast-1:111122223333:instance/i-0ee55ff66aa77bb88 Overprovisioned r6i.xlarge r6i.large
# ১০. Forecasted alert-সহ একটা মাসিক cost budget (খুঁটিনাটি লেসন ১.৪-এ)
aws budgets create-budget --account-id 111122223333 \
--budget '{"BudgetName":"monthly-2000","BudgetLimit":{"Amount":"2000","Unit":"USD"},"TimeUnit":"MONTHLY","BudgetType":"COST"}' \
--notifications-with-subscribers '[{"Notification":{"NotificationType":"FORECASTED","ComparisonOperator":"GREATER_THAN","Threshold":100,"ThresholdType":"PERCENTAGE"},"Subscribers":[{"SubscriptionType":"EMAIL","Address":"finance@example.com"}]}]'
# ১১. Cost allocation tag activate করো (management account থেকে), তারপর backfill
aws ce update-cost-allocation-tags-status --region us-east-1 \
--cost-allocation-tags-status TagKey=dept,Status=Active TagKey=aws:createdBy,Status=Active
aws ce start-cost-allocation-tag-backfill --region us-east-1 --backfill-from 2026-05-01T00:00:00Z
aws ce list-cost-allocation-tags --region us-east-1 --status Active --query 'CostAllocationTags[].[TagKey,Type]' --output text
# dept UserDefined
# aws:createdBy AWSGenerated
শুধু পরীক্ষা করে দেখে থাকলে monitor আর subscription মুছে ফেলো delete-anomaly-monitor আর delete-anomaly-subscription দিয়ে, budget মুছো aws budgets delete-budget দিয়ে।
#সারসংক্ষেপ
মূল কথা
- Cost Explorer = পেছনে তাকানো আর সামনে তাকানো: monthly/daily (hourly আর resource level opt-in, শেষ ১৪ দিন), service, account, Region, usage type, tag ধরে group আর filter; ১৩ মাসের ইতিহাস (multi-year data দিলে ৩৮), সীমা-সহ ১৮ মাসের পূর্বাভাস (নভেম্বর ২০২৫ পর্যন্ত ১২); RI/Savings Plans-এর সুপারিশ, utilization আর coverage; EC2 rightsizing। কখনো alert দেয় না। API: প্রতি request ০.০১ USD, endpoint us-east-1-এ।
- Savings Plans: ১ বা ৩ বছরের জন্য ঘণ্টায় $, হিসাব মেটে ঘণ্টা ধরে (কাজে না লাগলে হারায়, বেশি হলে On-Demand)। Compute (যেকোনো জায়গার EC2 + Fargate + Lambda), EC2 Instance (এক family, এক Region, সবচেয়ে বড় ছাড়), SageMaker AI, Database (ডিসেম্বর ২০২৫, ১ বছর)। Cost Explorer সুপারিশ করে (lookback ৭/৩০/৬০ দিন); কেনো Billing and Cost Management-এ। ঘণ্টার তলায় commit করো। Convertible RI family বদলাতে পারে; কোনো RI Region বদলায় না বা Fargate/Lambda ঢাকে না।
- Cost Anomaly Detection: machine learning-এর baseline, “অস্বাভাবিক”-এর কোনো threshold নেই; service, account, cost category বা tag ধরে monitor (AWS managed বা customer managed); alert SNS দিয়ে individual বা email-এ daily/weekly summary, $ আর/অথবা % প্রভাব দিয়ে ছাঁকা; root cause service, account, Region, usage type ধরে; চলে দিনে প্রায় তিনবার, ২৪ ঘণ্টা পর্যন্ত পিছিয়ে। Budget-এর ভেতরের লাফ ধরে; ধীর সরে যাওয়া ধরে না।
- Budgets ধীর সরে যাওয়া ধরে forecasted alert দিয়ে, আর কাজও করতে পারে; দাগের ভেতরের লাফ ধরতে পারে না। দুটোই চালাও।
- Compute Optimizer: CloudWatch-এর ১৪ দিনের metric থেকে rightsizing আর idle finding (টাকা দিয়ে enhanced metrics নিলে ৯৩ দিন), EC2, ASG, EBS, Lambda, Fargate-এ ECS, RDS/Aurora আর আরও কিছুর জন্য; memory-র জন্য CloudWatch agent লাগে। Cost Optimization Hub সব account-এর সাশ্রয় সাজায় আর দু’বার গোনে না।
- Cost allocation tag activate করতে হয় (management account, ২৪ + ২৪ ঘণ্টা পর্যন্ত), পেছনে ছড়ায় না যদি না backfill করো (১২ মাস পর্যন্ত);
aws:createdBy-এর মতো AWS-generated tag; ভাগের খরচের জন্য cost category আর split charge। - Data Exports: CUR 2.0 বা FOCUS line item S3-এ, Athena বা QuickSight-এ। যা এখনো নেই তার জন্য Pricing Calculator; pro forma দামের জন্য Billing Conductor।
আগে নিজে উত্তর দাও, তারপর ব্যাখ্যাটা পড়ো। ঠিক হলেও পড়ো, কারণ ভুল Option-গুলো কেন ভুল, সেটাও ওখানে আছে।
নিজেকে যাচাই করোপ্রশ্ন
একজন finance manager company-র গত ছয় মাসের AWS খরচ service আর Region ধরে ভেঙে দেখতে চান, সঙ্গে আগামী বছরের খরচের একটা আন্দাজ। কোন tool সবচেয়ে মানানসই?
নিজেকে যাচাই করোপ্রশ্ন
Cost Explorer default হিসেবে কত দিনের খরচের ইতিহাস দেখায়, আর কীভাবে আরও বেশি দেখানো যায়?
নিজেকে যাচাই করোপ্রশ্ন
একটা team-কে গত সপ্তাহের EC2 খরচ ঘণ্টা ধরে, instance ID ধরে দেখতে হবে। কী সত্য হতে হবে?
নিজেকে যাচাই করোপ্রশ্ন
একজন developer একটা cost dashboard বানিয়েছেন, যেটা ap-southeast-1-এর একটা Lambda function থেকে প্রতি মিনিটে Cost Explorer API call করে। কোন দুটো কথা ঠিক?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
Cost Explorer-এর পূর্বাভাস বলছে আগামী মাস ১,২৩০ USD, সীমা ১,১৫০ থেকে ১,৩১০। সীমাটার মানে কী?
নিজেকে যাচাই করোপ্রশ্ন
Note বলছে Savings Plans কেনা হয় Cost Explorer-এ, আর Reserved Instance-এ instance family বা Region বদলানো অসম্ভব। কোন কথাটা নির্ভুল?
নিজেকে যাচাই করোপ্রশ্ন
একটা company compute-এ ১ বছরের commitment-এর ছাড় চায়। বছরের মধ্যে সে কিছু service EC2 থেকে Fargate-এ নেবে, Graviton instance চেষ্টা করবে, হয়তো একটা workload Singapore থেকে Mumbai-তে সরাবে। কী কেনা উচিত?
নিজেকে যাচাই করোপ্রশ্ন
একটা company ৩০% ছাড়ের একটা Compute Savings Plan-এ ঘণ্টায় ১৪ USD commit করেছে। তার eligible usage রাতে ঘণ্টায় ১০ USD On-Demand, অফিস সময়ে ঘণ্টায় ২০ USD। রাতে কী হয়?
নিজেকে যাচাই করোপ্রশ্ন
গত মাসে Savings Plans-এর utilization ছিল ১০০%, কিন্তু coverage মাত্র ৪৫%। এর ইঙ্গিত কী?
নিজেকে যাচাই করোপ্রশ্ন
একটা online shop-এর দৈনিক EC2 খরচ সমান ২৪০ USD। Hourly data দেখায় সারাদিন ঘণ্টায় ৬ USD, আর রাত ০১:০০ থেকে ০৫:০০ পর্যন্ত ঘণ্টায় ২৪ USD-এর একটা batch। On-Demand মূল্যে কতটা Savings Plan commitment যুক্তিসঙ্গত, আর batch-এর কী হবে?
নিজেকে যাচাই করোপ্রশ্ন
Database Savings Plans নিয়ে কোন দুটো কথা ঠিক?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
একটা company তিন দিন আগে, একই ক্যালেন্ডার মাসে, ভুল করে ঘণ্টায় ৪০ USD-এর একটা Compute Savings Plan কিনে ফেলেছে। সে কী করতে পারে?
নিজেকে যাচাই করোপ্রশ্ন
একটা company চায়, তার AWS খরচ হঠাৎ অস্বাভাবিকভাবে বাড়লে machine learning দিয়ে alert আসুক, কোনটা অস্বাভাবিক তার জন্য কোনো নির্দিষ্ট ডলার threshold ঠিক না করেই। কোন service ব্যবহার করবে?
নিজেকে যাচাই করোপ্রশ্ন
ফাঁস হওয়া একটা access key দিয়ে দুই দিন GPU instance চলে। মাসিক budget ২,০০০ USD, মাস শেষ হয় ১,৬০০ USD-এ। কোন tool alert দেয়?
নিজেকে যাচাই করোপ্রশ্ন
একটা logging setting-এর কারণে খরচ প্রতিদিন একটু একটু বাড়ছে। মাস শেষে খরচ ২,২৫০ USD, budget ২,০০০ USD। কোন দুটো কথা সবচেয়ে সম্ভব সত্য?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
Note বলছে, অস্বাভাবিক খরচ দেখা দিলেই Cost Anomaly Detection সাথে সাথে alert পাঠায়। কোন কথাটা বেশি নির্ভুল?
নিজেকে যাচাই করোপ্রশ্ন
একটা organization-এ ৬০টা team, প্রতিটা team tag দিয়ে চিহ্নিত। সে চায় প্রতিটা team-এর খরচে anomaly নজর রাখা হোক, আগামী বছরে বানানো team-সহ, সবচেয়ে কম খাটুনিতে। কী বানাবে?
নিজেকে যাচাই করোপ্রশ্ন
Cost Anomaly Detection ৮০ USD প্রভাবের একটা anomaly ধরেছে, কিন্তু কেউ alert পায়নি। Subscription-এ individual alert, absolute threshold ১০০ USD। কোনটা সত্য?
নিজেকে যাচাই করোপ্রশ্ন
Cost Anomaly Detection-এর alert পাওয়ার কোন দুটো উপায় বৈধ?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
একটা company Compute Optimizer চালু করেছে। EC2-তে চলা memory-নির্ভর একটা application-এর জন্য অর্ধেক memory-র instance-এ যাওয়ার সুপারিশ এসেছে, যদিও application নিজের memory-র ৮০% ব্যবহার করে। কী করা উচিত?
নিজেকে যাচাই করোপ্রশ্ন
AWS Compute Optimizer কোন resource-এর জন্য rightsizing সুপারিশ বানাতে পারে? (দুটো বাছো।)
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
একটা application server প্রতি মাসের প্রথম দিনে ৯৫% CPU-তে payroll চালায়, বাকি সময় প্রায় অলস। ২০ তারিখে Compute Optimizer অনেক ছোট একটা instance সুপারিশ করে। কেন, আর সমাধান কী?
নিজেকে যাচাই করোপ্রশ্ন
৪০টা account-ওয়ালা একটা company চায় খরচ সাশ্রয়ের একটাই সাজানো তালিকা, যেখানে rightsizing, অলস resource আর Savings Plans একসাথে, নিজের ছাড় ধরে দাম কষা, আর একই সাশ্রয় দু’বার না গোনা। কী ব্যবহার করবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা account-এর প্রতিটা resource-এ dept tag আছে, কিন্তু Cost Explorer-এ dept ধরে group করলে শুধু No tag key দেখায়। সবচেয়ে সম্ভাব্য কারণ কী?
নিজেকে যাচাই করোপ্রশ্ন
একটা বিশ্ববিদ্যালয় আজ তার dept tag activate করেছে। রেজিস্ট্রার গত ছয় মাসও বিভাগ ধরে ভাগ করে দেখতে চান, আর resource-গুলোতে tag বরাবরই ছিল। কোনটা সত্য?
নিজেকে যাচাই করোপ্রশ্ন
একটা company-র সবচেয়ে খুঁটিনাটি billing data লাগবে, resource ধরে আর ঘণ্টা ধরে, S3-এ পৌঁছাবে আর SQL দিয়ে query হবে। কোন সমাধান এটা মেটায়?
নিজেকে যাচাই করোপ্রশ্ন
একটা ভাগের NAT gateway, AWS Support আর একটা Direct Connect link সব বিভাগের কাজে লাগে, আর এগুলোর কোনোটাতেই বিভাগ ধরে tag দেওয়া যায় না। এদের খরচ কীভাবে ভাগ করা যায়?
নিজেকে যাচাই করোপ্রশ্ন
কিছু বানানোর আগেই একজন architect-কে নতুন একটা three-tier application-এর মাসিক খরচ আন্দাজ করতে হবে। কোন tool ব্যবহার করবেন?
নিজেকে যাচাই করোপ্রশ্ন
বাংলাদেশের এক reseller ৩০টা ছোট customer-এর AWS account সামলায়, আর প্রতিটা customer-কে reseller-এর নিজের দাম আর লাভ ধরে বিল দেখাতে হবে, AWS reseller-কে যা চার্জ করে সেটা না বদলে। কোন service মানানসই?
নিজেকে যাচাই করোপ্রশ্ন
AWS-এর cost tool নিয়ে কোন কথাটা ঠিক নয়?