1.4
Free Tier, Budget আর খরচের alert
কিছু বানানোর আগেই budget সেট করো, আর জেনে রাখো কোন জিনিস বন্ধ করার পরও টাকা কাটতেই থাকে।
14 মিনিট পড়া + Animation
টিপস: ডটেড-আন্ডারলাইন করা যেকোনো শব্দে ট্যাপ বা Hover করলে তার অর্থ দেখবে।
এই লেসন শেষে তুমি যা পারবে
- এখনকার Free Tier কীভাবে চলে বুঝিয়ে বলতে পারবে: নতুন account-এর free plan আর paid plan, credit, always-free সুবিধা, আর পুরোনো account-এর ১২ মাসের Free Tier।
- AWS Budgets-এ actual আর forecasted alert সহ একটা budget বানাতে পারবে, সেটা email আর SNS topic-এ পাঠাতে পারবে, আর জানবে এর data কতটা দেরিতে আসতে পারে।
- Budget action দিয়ে ক্ষতি নিজে থেকেই আটকাতে পারবে, আর বোঝাতে পারবে কেন paid account-এ AWS-এর কোনো feature-ই খরচের শক্ত সীমা (hard cap) না।
- খরচ নিয়ে প্রতিটা প্রশ্নের জন্য ঠিক tool বেছে নিতে পারবে: Budgets, Cost Explorer, Cost Anomaly Detection, CloudWatch billing alarm, Cost and Usage Report, cost allocation tag।
- Instance stop বা terminate করার পরও কী কী জিনিসের বিল চলতে থাকে বলতে পারবে, আর এমন ক্রমে একটা environment পরিষ্কার করতে পারবে যাতে কোনো Region-এ কিছুই পড়ে না থাকে।
- একদম নতুন একটা account প্রথম দশ মিনিটেই নিরাপদ করে ফেলতে পারবে।
#বিলের কথা সবার আগে কেন
AWS-এ কোনো কিছু কেনার জন্য কাগজে সই করতে হয় না। তুমি Launch-এ click করলে, একটা মিটার চলতে শুরু করল, আর মাস শেষে AWS সব মিটার যোগ করে বিল পাঠাল। Pay-as-you-go-এর মজাটাই এখানে: আগে টাকা দিতে হয় না, অপেক্ষা করতে হয় না, কোনো সীমাও নেই। ঝুঁকিটাও ঠিক এখানেই। Paid account-এ কেউ নিজে থেকে খরচ থামায় না:
- test করার জন্য বানিয়ে ভুলে যাওয়া একটা NAT Gateway, কেউ ব্যবহার করুক বা না করুক, দিনে প্রায় $1 খেয়ে ফেলে;
- stop করা instance-ও তার disk আর Elastic IP-র টাকা দিতে থাকে;
- ভুল করে public repository-তে চলে যাওয়া একটা access key কয়েক মিনিটের মধ্যেই bot খুঁজে পায়, আর এমন সব Region-এ দামি instance চালু করে দেয় যেগুলো তুমি কখনো খোলোই না;
- অন্য কোনো Region-এ পড়ে থাকা resource console-এ চোখেই পড়ে না, অথচ সারা মাস বিল বাড়ায়।
তাই কিছু বানানোর আগেই এমন কিছু tool ঠিক করে নাও, যেগুলো জানাবে তুমি কত খরচ করছ, সীমা ছাড়ানোর আগেই সাবধান করবে, আর চাইলে তোমার হয়ে ব্যবস্থাও নেবে। এই লেসন সেটা নিয়েই। কাজটা দশ মিনিটের, আর এই কোর্সের বাকি সব lab ধরে নেয় যে তুমি এটা করে রেখেছ।
#এখনকার Free Tier
AWS Free Tier বদলেছে ১৫ জুলাই ২০২৫-এ। তুমি কী পাবে, সেটা নির্ভর করে account কবে খোলা হয়েছে তার ওপর।
#নতুন account: free plan না paid plan
১৫ জুলাই ২০২৫ থেকে নতুন প্রতিটা account-কে sign-up-এর সময়ই একটা plan বেছে নিতে হয়:
| Free plan | Paid plan | |
|---|---|---|
| Credit | sign-up-এ $100, আর কিছু কাজ করলে আরও $100 পর্যন্ত | একই |
| Service | বাছাই করা কিছু service; যেগুলো দিয়ে খুব দ্রুত credit শেষ হতে পারে (Savings Plan, Reserved Instance, Marketplace-এর কিছু offer) সেগুলো নেই | সবকিছু |
| টাকা কাটবে কি? | না, কখনোই না | হ্যাঁ: credit-এর বাইরের usage স্বাভাবিক দামে বিল হয় |
| কবে শেষ | ৬ মাস পর, অথবা তার আগেই credit শেষ হলে, যেটা আগে ঘটে | শেষ হয় না; credit ব্যবহার করা যায় sign-up থেকে ১২ মাস পর্যন্ত |
| তারপর কী হয় | Account বন্ধ হয়ে যায়। AWS তোমার content ৯০ দিন রেখে দেয়; এর মধ্যে upgrade করলে সব ফিরে পাবে | কিছুই বদলায় না: যেমন ব্যবহার, তেমন বিল |
| Always-free সুবিধা | আছে | আছে, সঙ্গে কিছু service-এর অল্প দিনের trial |
বাড়তি $100 আসে শুরুর পাঁচটা কাজের প্রতিটার জন্য $20 করে, যেমন একটা EC2 instance চালু করা, একটা Lambda function বানানো, একটা RDS database বানানো, Amazon Bedrock একটু চালিয়ে দেখা, আর AWS Budgets-এ একটা cost budget বানানো। মানে এই লেসনে যে budget বানাবে, সেটা থেকেই তুমি $20 পেয়ে যাচ্ছ।
Free plan-এর account AWS Organizations-এ যোগ দিলে, AWS Control Tower landing zone বানালে, বা কিছু নির্দিষ্ট চুক্তি করলে, সেটা নিজে থেকেই paid plan হয়ে যায়। কোম্পানির organization-এ তোমার free account-কে কেউ invite করলে আগে budget বানিয়ে নাও: invitation গ্রহণ করার মুহূর্ত থেকেই বাড়তি খরচ হওয়া সম্ভব।
#Always free
৩০টার বেশি service-এ প্রতি মাসে কিছু পরিমাণ ব্যবহার একদম ফ্রি, আর এই সুবিধার কোনো মেয়াদ নেই, দুই plan-এই (যেমন প্রতি মাসে নির্দিষ্ট সংখ্যক Lambda request, কিছুটা DynamoDB storage)। এই সীমার ভেতরে কোনো খরচ নেই; সীমা ছাড়ালে টাকা কাটে credit থেকে, আর paid plan-এ credit শেষ হলে তোমার card থেকে। আসল সীমা কত, সেটা সবসময় Free Tier page-এ দেখে নিও: সীমাগুলো মাসিক, account প্রতি, আর মাঝে মাঝে বদলায়।
#পুরোনো account: আগের Free Tier
১৫ জুলাই ২০২৫-এর আগে খোলা account আগের নিয়মেই চলে: sign-up থেকে ১২ মাস কিছু জিনিস ফ্রি (যেমন মাসে ৭৫০ ঘণ্টা একটা micro instance, ৩০ GB EBS storage, ৫ GB S3 storage), সঙ্গে always-free আর trial। এখানে দুইটা ফাঁদে প্রায় সবাই পড়ে:
- ৭৫০ ঘণ্টা মানে একটা instance, পুরো মাস। এক মাসে মোটামুটি ৭৩০ ঘণ্টা, তাই দুইটা micro instance পুরো মাস চালালে লাগে প্রায় ১,৪৬০ ঘণ্টা। বাড়তি ৭১০ ঘণ্টার বিল হবে, প্রথম মাসেই।
- ১২ মাস শেষ হয় চুপচাপ। এক বছর পূর্ণ হলে account খোলাই থাকে, আর একই resource-গুলোর এখন পুরো দামে বিল শুরু হয়। তোমার হয়ে কেউ কিছু বন্ধ করে দেয় না।
Free Tier-এ একটা নতুন account-এর জীবন
১৫ জুলাই ২০২৫ থেকে যে account খোলা হয়েছে, সেগুলো sign-up-এর সময়ই free plan বা paid plan বেছে নেয়। এর আগের account-গুলো পুরোনো ১২ মাসের Free Tier-এই থাকে। প্রতিটা পথ শেষ পর্যন্ত দেখো।
পরিস্থিতি
তুমি sign up করে free plan বেছে নিলে। পরিচয় যাচাইয়ের জন্য card লাগে ঠিকই, কিন্তু এই plan-এ তোমার কাছ থেকে টাকা কাটা হয় না।
#বিলটা কোথায় দেখবে
টাকা-পয়সার সবকিছু থাকে Billing and Cost Management console-এ:
- Home: এই মাসে এ পর্যন্ত খরচ, মাস শেষের forecast, কোন service-এ সবচেয়ে বেশি খরচ, আর বাকি tool-গুলোর link।
- Bills: যেকোনো মাসের খরচ service আর Region অনুযায়ী ভাগ করা, সঙ্গে invoice। কোনো চার্জের মানে বুঝতে না পারলে প্রথমে এখানেই তাকাও।
- Free Tier: এই মাসে প্রতিটা ফ্রি সুবিধার কতটুকু খরচ হয়ে গেছে, আর মাস শেষে কোথায় দাঁড়াবে তার forecast। Free plan-এ এখানে বাকি credit আর বাকি দিনও দেখায়।
- Credits, Payments, Billing preferences (alert-এর setting, invoice কীভাবে আসবে, default মুদ্রা)।
#AWS Budgets: প্রথম পাহারাদার
Budget হলো একটা নির্দিষ্ট সময়ে তুমি কত খরচ (বা কতটা ব্যবহার) করবে বলে আশা করছ, সেই অঙ্ক, সঙ্গে কিছু alert, যেগুলো আসল বা আনুমানিক অঙ্ক তোমার বেছে দেওয়া threshold পার হলেই খবর দেয়। “আগেই জানাও” ধরনের কাজের tool এটাই।
#কী কী নিয়ে budget বানানো যায়
| Budget type | কী মাপে | কখন alert |
|---|---|---|
| Cost budget | কত ডলার খরচ হলো; সব service মিলিয়ে, বা service, Region, account, tag… ধরে বাছাই করে | খরচ threshold ছাড়ালে (actual বা forecast) |
| Usage budget | ব্যবহারের পরিমাণ: instance-এর ঘণ্টা, কত GB storage, কত GB data গেল | ব্যবহার threshold ছাড়ালে |
| RI utilization / coverage | কেনা Reserved Instance-এর কতটুকু আসলে ব্যবহার হচ্ছে, আর তোমার usage-এর কতটুকু সেগুলো ঢাকছে | লক্ষ্যের নিচে নামলে (commitment নষ্ট হচ্ছে বা কম পড়ছে) |
| Savings Plans utilization / coverage | Savings Plan-এর জন্য একই হিসাব | লক্ষ্যের নিচে নামলে |
প্রতিটা budget-এর একটা period থাকে: দৈনিক, মাসিক, তিন মাস, বছর, অথবা নিজের বেছে নেওয়া তারিখ থেকে তারিখ (এটা নিজে নিজে নবায়ন হয় না, তাই মনে রাখার ব্যবস্থা করো)। অঙ্কটা হতে পারে fixed (একই), planned (প্রতি মাসে আলাদা) বা auto-adjusting (সাম্প্রতিক খরচ দেখে নিজেই ঠিক করে)। Cost budget-এ credit, refund, tax আর upfront fee ধরবে কি না, সেটা বেছে দেওয়া যায়: credit দিয়ে বিল মেটানো চলাকালে resource-গুলোর আসল খরচ দেখতে চাইলে credit বাদ দাও।
প্রথম budget-এর জন্য দুইটা template-ই প্রায় সব কাজ করে দেয়:
- Zero spend budget: প্রথম যেদিন খরচ $0.01 ছাড়াবে, সেদিনই alert। যে learning account-এ কোনো খরচই হওয়ার কথা না, তার জন্য একদম ঠিক।
- Monthly cost budget: মাসে একটা নির্দিষ্ট অঙ্ক, আসল খরচের ৮৫% আর ১০০%-এ alert, আর forecast-এর ১০০%-এ alert।
#Actual alert আর forecasted alert
প্রতিটা budget-এ কয়েকটা alert রাখা যায়। প্রতিটা alert-এর থাকে:
- একটা ধরন: actual (এই period-এ এ পর্যন্ত আসল খরচ) বা forecasted (AWS-এর হিসাবে period শেষে খরচ কোথায় দাঁড়াবে);
- একটা threshold: budget-এর শতকরা কত, অথবা নির্দিষ্ট একটা অঙ্ক;
- কাকে জানাবে: প্রতিটা alert-এ সর্বোচ্চ ১০টা email ঠিকানা আর একটা SNS topic।
এই অংশের আসল কথা হলো দুই ধরনের পার্থক্য:
- Actual alert আসতে পারে শুধু টাকা খরচ হয়ে যাওয়ার পরে। প্রতিটা budget period-এ একবারই আসে।
- Forecasted alert আসে যখন period শেষের আনুমানিক অঙ্ক threshold পার হয়, অনেক সময় আসল টাকা খরচ হওয়ার কয়েক দিন আগেই। একই period-এ forecast নিচে নেমে আবার উঠলে এটা আবারও আসতে পারে।
- Forecast বানাতে AWS-এর লাগে মোটামুটি পাঁচ সপ্তাহের usage-এর ইতিহাস। একদম নতুন account-এ forecasted alert তাই এখনো আসতেই পারবে না; সেজন্য কম threshold-এ কয়েকটা actual alert-ও রাখো (যেমন ৫০% আর ৮০%)।
$10-এর budget-এর সামনে এক মাসের খরচ
নীল দাগ: এই মাসে এ পর্যন্ত যত খরচ হয়েছে। ড্যাশ দাগ: এই গতিতে চললে ৩০ তারিখে খরচ কোথায় গিয়ে ঠেকবে। একটা scenario বেছে নাও, তারপর দেখো কোন alert কখন আসে।
পরিস্থিতি
একজন শিক্ষার্থী, মাসে $10-এর budget, ১০০%-এ forecast alert আর ৮০%-এ actual alert।
দিন
1
এই মাসে খরচ
$0.18
মাস শেষের forecast
$5.40
Budget
$10.00
এ পর্যন্ত আসা alert
কোনো alert আসেনি।
মাসের ১ তারিখ। ছোট একটা instance আর অল্প storage মিলে দিনে খরচ প্রায় ১৮ সেন্ট। নীল দাগটা হলো এই মাসে এ পর্যন্ত যত খরচ হয়েছে; ড্যাশ দেওয়া দাগটা দেখায়, এই গতিতে চললে ৩০ তারিখে গিয়ে খরচ কোথায় দাঁড়াবে।
#Alert কোথায় যায়
Email সরাসরি যায়। আর SNS topic খুলে দেয় বাকি সব পথ: SMS, আরও কিছু email list, কিছু একটা করে ফেলার মতো একটা Lambda function, অথবা Amazon Q Developer in chat applications দিয়ে (আগের নাম AWS Chatbot) Slack বা Microsoft Teams-এর কোনো channel। SNS ঠিকমতো কাজ করার জন্য topic-এর access policy-তে budgets.amazonaws.com-কে publish করার অনুমতি দিতে হবে, আর প্রতিটা email subscription SNS-এর পাঠানো link দিয়ে confirm করতে হবে।
#সংখ্যাগুলো কতটা টাটকা
Budgets তোমার resource-এর দিকে সরাসরি তাকিয়ে থাকে না। সে পড়ে billing data, যেটা দিনে অন্তত একবার, সাধারণত তিনবার পর্যন্ত আপডেট হয়, আর ব্যবহারের কয়েক ঘণ্টা পরে। তাই:
- threshold পার হওয়ার কয়েক ঘণ্টা পরে alert আসতে পারে;
- তুমি যখন email পড়ছ, খরচ ততক্ষণে আরও এগিয়ে গেছে;
- budget কোনো খরচের সীমা না। Action জুড়ে না দিলে threshold-এ গিয়ে কিছুই থামে না, আর action-ও কাজ করে কয়েক ঘণ্টা পুরোনো data দেখে।
#Budget action
Action হলো threshold পার হলে AWS Budgets তোমার হয়ে যে কাজটা করে, হয় নিজে থেকেই, নয়তো notification-এ তুমি approve করার পর। Action তিন রকম:
- User, group বা role-এ একটা IAM policy জুড়ে দেওয়া, সাধারণত এমন policy যেটা নতুন resource চালু করা নিষেধ করে।
- Organization-এর management account থেকে কোনো account বা OU-তে একটা service control policy (SCP) জুড়ে দেওয়া (একই ধারণার অনেক-account সংস্করণ, chapter 20)।
- তোমার বাছাই করা নির্দিষ্ট EC2 বা RDS instance stop করা।
Budgets action চালায় তোমার দেওয়া একটা IAM role দিয়ে। দুইটা সীমাবদ্ধতা জেনে রাখো:
- Instance stop করলেও তার storage আর address-এর বিল থামে না।
- Instance-গুলো যদি কোনো Auto Scaling group-এর হয়, group সোজা নতুন instance চালু করে দেবে। তাই stop-এর সঙ্গে আরেকটা action রাখো, যেটা group-এর launch করার অনুমতি কেড়ে নেয়, অথবা group-টাকে শূন্যে নামিয়ে আনো।
Usage থেকে তোমার inbox পর্যন্ত: একটা budget alert
Budget সরাসরি তোমার resource-এর দিকে তাকায় না; সে পড়ে billing data, যেটা usage-এর কয়েক ঘণ্টা পরে এসে পৌঁছায়। একটা alert, একটা action, আর দুইভাবে এগুলো ব্যর্থ হয়, সব ধাপে ধাপে দেখো।
পরিস্থিতি
চালু থাকা প্রতিটা resource মাপা হয়: instance কত সেকেন্ড চলল, কত GB storage কত দিন রইল, কত gigabyte data গেল। এই হিসাবগুলো billing system-এ পৌঁছায় দল বেঁধে, কয়েক ঘণ্টা পরে।
#Budgets-এর খরচ কত
Budget বানানো আর alert পাওয়া ফ্রি। Action জোড়া প্রথম দুইটা budget ফ্রি; এরপর প্রতিটার জন্য দিনে $0.10। নির্দিষ্ট সময় পরপর পাঠানো budget report-এর দাম প্রতিটা $0.01।
নিজেকে যাচাই করোপ্রশ্ন
একটা startup চায়, এই মাসের বিল ৫০০ ডলার ছাড়াবে বলে AWS অনুমান করামাত্রই একটা email আসুক, যদিও আসল খরচ তখনো অনেক কম। কী সেট করবে?
#খরচের বাকি tool-গুলো
Budgets-এর কাজ “সাবধান করো”। অন্য প্রশ্নের জন্য অন্য tool।
#Cost Explorer: পেছনে তাকাও, সামনে তাকাও
Cost Explorer billing data দিয়ে chart আর table বানায়, যেগুলো service, Region, account, usage type, tag ধরে, দিন বা মাস হিসেবে ভাগ করে দেখা যায় (চালু করে নিলে গত ১৪ দিনের জন্য ঘণ্টা বা resource ধরেও)। এর সঙ্গে:
- তোমার খরচের forecast দেয়, এখন সামনের ১৮ মাস পর্যন্ত;
- তোমার usage দেখে Savings Plan আর Reserved Instance-এর পরামর্শ দেয় (lesson 4.4), আর যেগুলো কেনা আছে সেগুলো কতটা কাজে লাগছে দেখায়;
- console-এ ফ্রি; এর API-তে প্রতি request $0.01।
একবার চালু (enable) করে নিতে হয় (প্রথমবার data আসতে এক দিন পর্যন্ত লাগতে পারে)। যেটা এটা করে না, সেটা হলো alert। যে forecast কেউ খুলেই দেখে না, সেটা কাউকে সাবধান করে না।
#Cost Anomaly Detection: “এটা তো তোমার স্বভাবের সাথে মেলে না”
Anomaly Detection তোমার আগের খরচ দেখে machine learning দিয়ে শিখে নেয় প্রতিটা service-এ (বা account, tag, cost category-তে) কোনটা স্বাভাবিক, আর খরচ সেই ধরন ভাঙলেই জানায়, যেমন এক দিনের হঠাৎ লাফ, বা হুট করে বেড়ে গিয়ে সেখানেই থেকে যাওয়া। তবে ধীরে ধীরে একটানা বাড়তে থাকা খরচ ওর চোখে স্বাভাবিক বৃদ্ধির মতোই লাগে; ওটা ধরে budget-এর forecasted alert (lesson 25.4)। “অস্বাভাবিক” কোনটা, সেটার জন্য তোমাকে কোনো ডলারের threshold দিতে হয় না; শুধু বলে দাও কত বড় anomaly হলে তুমি খবর চাও। প্রতিটা alert-এ লেখা থাকে সে কোন মূল কারণ খুঁজে পেয়েছে: service, account, Region, usage type। Alert আসে SNS দিয়ে প্রতিটা আলাদা করে, অথবা দিনে বা সপ্তাহে একবার email-এ সারাংশ হিসেবে।
এটা ফ্রি, আর Cost Explorer চালু করলেই AWS নিজে থেকে এটা সাজিয়ে দেয়: সব AWS service-এর জন্য একটা monitor আর দৈনিক সারাংশ। ফাঁস হয়ে যাওয়া access key দিয়ে কেউ যদি তোমার কখনো-না-খোলা কোনো Region-এ GPU instance চালায়, সেটা budget-এর threshold-এ পৌঁছানোর অনেক আগেই ধরে ফেলার সম্ভাবনা সবচেয়ে বেশি এই tool-এরই।
#CloudWatch billing alarm: পুরোনো পদ্ধতি
Budgets আসার আগে বিলের দিকে নজর রাখা হতো CloudWatch alarm দিয়ে:
- Billing preferences-এ গিয়ে Receive CloudWatch billing alerts চালু করো (একবার চালু করলে আর বন্ধ করা যায় না)।
- Console-এর Region বদলে US East (N. Virginia), us-east-1 করো। Billing metric থাকে শুধু সেখানেই, কিন্তু হিসাব করে সব Region মিলিয়ে।
AWS/Billingnamespace-এরEstimatedChargesmetric-এর ওপর (মোট, বা service ধরে) USD-তে একটা alarm বানাও, আর খবর পাঠাও একটা SNS topic-এ।
এটা এখনো কাজ করে, আর পরীক্ষায় us-east-1-এর এই খুঁটিনাটিটা এখনো আসে। কিন্তু billing alarm শুধু মাসের এ পর্যন্ত মোট খরচ মেলায়: forecast নেই, filter নেই, action নেই। নতুন setup-এর জন্য AWS Budgets ব্যবহার করতেই বলে।
#Cost and Usage Report আর cost allocation tag
- Cost and Usage Report (CUR), যেটা এখন বানানো হয় Data Exports থেকে, তোমার বিল নিয়ে AWS-এর কাছে থাকা সবচেয়ে খুঁটিনাটি data: প্রতিটা resource-এর প্রতি ঘণ্টা বা প্রতি দিনের জন্য একটা করে লাইন, file আকারে একটা S3 bucket-এ লেখা হয়। Athena দিয়ে query করো, বা কোনো reporting tool-এ তোলো। প্রশ্নে যদি সবচেয়ে বিস্তারিত billing data বা SQL দিয়ে বিশ্লেষণের কথা থাকে, উত্তর এটাই।
- Cost allocation tag দিয়ে project, টিম বা environment ধরে খরচ দেখা যায়। আগে resource-এ tag লাগাও (যেমন
project=shop), তারপর Billing console-এ ওই tag key-টা activate করো। শুধু activate করা tag-ই Cost Explorer, budget-এর filter আর CUR-এ দেখা যায়, আর তাও শুধু activate করার পর থেকে যে খরচ হয়েছে তার জন্য (দেখা দিতে এক দিন পর্যন্ত লাগতে পারে)। March 2024 থেকে management account চাইলে ১২ মাস পর্যন্ত পেছনের খরচে backfill চাইতে পারে, তবে শুধু সেই মাসগুলোর জন্য যখন resource-এ tag-টা আগে থেকেই লাগানো ছিল। AWS নিজেও কিছু tag বানিয়ে দেয়, যেমনaws:createdBy।
#কোন প্রশ্নে কোন tool
| প্রশ্নে যদি বলে… | উত্তর |
|---|---|
| “খরচ সীমা ছাড়ানোর আগেই জানাও”, “forecasted spend alert” | AWS Budgets (forecasted alert) |
| “Budget ছাড়ালে নিজে থেকেই instance বন্ধ করো / অনুমতি কমাও” | Budget action |
| “খরচ chart-এ দেখাও”, “সময়ের সাথে প্রবণতা”, “ভবিষ্যতের খরচের forecast”, “কোন service-এ সবচেয়ে বেশি খরচ” | Cost Explorer |
| “অস্বাভাবিক খরচ ধরো”, “হঠাৎ লাফ”, “billing-এ machine learning”, কোনো threshold নেই | Cost Anomaly Detection |
| “Estimated charges-এর ওপর alarm”, “billing-এর CloudWatch metric” | us-east-1-এ CloudWatch billing alarm |
| “সবচেয়ে বিস্তারিত, line-item billing data”, “Athena / SQL দিয়ে billing query” | Cost and Usage Report (Data Exports) |
| “Project / টিম / বিভাগ ধরে খরচ” | Cost allocation tag (activate করা) + Cost Explorer |
খরচের চারটা tool, চার রকম কাজ
Budgets-ই একমাত্র tool না। CloudWatch billing alarm, Cost Anomaly Detection আর Cost Explorer কে কী করে, আর কে কোথায় চুপ থাকে, দেখে নাও।
পরিস্থিতি
প্রথমে Billing preferences-এ গিয়ে “Receive CloudWatch billing alerts” চালু করো। তখন থেকে AWS তোমার আনুমানিক খরচ CloudWatch-এ পাঠাতে থাকবে; একবার চালু করলে এটা আর বন্ধ করা যায় না।
#“Stop” করার পরও কী কী টাকা খায়
সবচেয়ে চেনা “হঠাৎ বিল” কোনো বড় server থেকে আসে না। আসে ছোট ছোট অনেক জিনিস থেকে, যেগুলো কখনো delete করা হয়নি। বিলের হিসাবে তিনটা শব্দের মানে তিন রকম:
| তুমি যা করলে… | Compute-এর খরচ | এরপরও যার বিল চলে |
|---|---|---|
| EC2 instance stop | থেমে যায় | তার EBS volume, যেকোনো Elastic IP (এখন অলস), snapshot |
| EC2 instance terminate | শেষ | যেসব volume-এ DeleteOnTermination বন্ধ (default হিসেবে বাড়তি volume-গুলো), Elastic IP (ছাড়া হয় না), snapshot, AMI |
| কোনো resource delete | শেষ | ওই resource-এর জন্য আর কিছুই না |
যাদের সন্দেহ করা উচিত (মোটামুটি us-east-1-এর দাম, অক্টোবর ২০২৬, শুধু মাত্রাটা বোঝানোর জন্য):
- EBS volume: যতক্ষণ আছে, ততক্ষণ প্রতি GB-month হিসেবে বিল, জোড়া থাকুক বা না থাকুক, instance চলুক বা না চলুক (gp3 প্রতি GB-month প্রায় $0.08)। available অবস্থার volume কোথাও জোড়া নেই, তবু বিল হয় (lesson 5.1)।
- EBS snapshot আর AMI: যে volume থেকে snapshot নেওয়া, volume মুছে গেলেও snapshot থেকে যায় (প্রতি GB-month প্রায় $0.05)। AMI তার snapshot-গুলোকে বাঁচিয়ে রাখে: আগে AMI deregister করো, তারপর snapshot মোছো।
- Public IPv4 address: ফেব্রুয়ারি ২০২৪ থেকে প্রতিটা public IPv4 address-এর জন্য ঘণ্টায় প্রায় $0.005, ব্যবহার হোক বা অলস পড়ে থাকুক (মাসে প্রায় $3.65)। Instance terminate করলে তার Elastic IP ছাড়া হয় না (lesson 3.6)। Auto-assigned public IP অবশ্য instance stop হলেই ছেড়ে দেওয়া হয়, তাই তার খরচ থেমে যায়।
- NAT Gateway: ঘণ্টায় প্রায় $0.045 (মাসে প্রায় $33), সঙ্গে প্রতি GB process করার চার্জ। এর কোনো stop নেই: delete করো, তারপর তার Elastic IP release করো (lesson 3.4)।
- Load Balancer: ঘণ্টা ধরে বিল (একটা ALB মাসে প্রায় $16), সঙ্গে capacity unit, traffic না থাকলেও। Stop নেই: delete করো।
- RDS: stop করা database-ও storage আর backup-এর টাকা দেয়, আর ৭ দিন পর AWS নিজেই সেটা আবার চালু করে দেয়। দরকার না থাকলে delete করো (শেষ একটা snapshot রাখবে কি না ঠিক করো, সেটারও বিল হয়)।
- S3: প্রতি GB-month storage আর request; bucket delete করার আগে সেটা খালি করতে হয়।
- অন্য Region: EC2, EBS, VPC আর বেশিরভাগ service Regional। Console শুধু বাছাই করা Region-টাই দেখায়, তাই Virginia থেকে তাকালে Singapore-এ ভুলে যাওয়া instance চোখেই পড়বে না।
- মাসে মাসে ছোট ছোট খরচ, যেগুলো যোগ হয়ে বড় হয়: Route 53 hosted zone, KMS key, Secrets Manager-এর secret, CloudWatch-এর log storage, internet-এ যাওয়া data transfer।
“সব তো বন্ধ করে দিয়েছি, তাও টাকা কাটছে কেন?”
us-east-1-এ ছোট একটা test environment, আর কেউ একজন Singapore-এ একটা instance চালু করে রেখেছিল। বিলের হিসাবে stop, terminate আর delete, তিনটা একদম আলাদা জিনিস।
পরিস্থিতি
Stop করলে শুধু compute-এর টাকা কাটা বন্ধ হয়।
সব চালু · মোট ≈ মাসে $141
| Resource | অবস্থা | কীসের বিল | ≈ মাসে |
|---|---|---|---|
| EC2 t3.medium | চালু | instance-এর ঘণ্টা | $30.37 |
| EBS root 20 GB | ব্যবহার হচ্ছে | GB-month | $1.60 |
| EBS data 100 GB | ব্যবহার হচ্ছে | GB-month | $8.00 |
| Elastic IP | ব্যবহার হচ্ছে | public IPv4-এর ঘণ্টা | $3.65 |
| NAT Gateway | চালু | ঘণ্টা + GB process | $32.85+ |
| ALB | চালু | ঘণ্টা + capacity unit | $16.43+ |
| EBS snapshot | জমা আছে | GB-month | $1.00 |
| S3 bucket 50 GB | জমা আছে | GB-month + request | $1.15 |
| RDS db.t3.micro | চালু | instance-এর ঘণ্টা + storage | $14.71 |
| EC2 in ap-southeast-1 | চালু | instance-এর ঘণ্টা + EBS | $31.00 |
সব চালু। মোট মাসে প্রায় $141, আর web server নিজে তার মাত্র পাঁচ ভাগের এক ভাগের মতো।
#পরিষ্কার করার checklist
সব খুঁজে বের করো, প্রতিটা Region-এ
চলতি মাসের Bills খুলে খরচগুলো Region আর service অনুযায়ী দেখো, অথবা Cost Explorer-এ Region ধরে ভাগ করো। সব Region-এর resource একসাথে তালিকা করতে AWS Resource Explorer, Tag Editor, অথবা “নিজে করে দেখো” অংশের CLI loop ব্যবহার করো।
বাইরের দিক থেকে ভেতরের দিকে delete করো
আগে Load Balancer আর target group, তারপর Auto Scaling group (নাহলে group নতুন instance চালু করেই যাবে), তারপর instance, তারপর NAT Gateway, তারপর database। প্রতিটা স্তর তার পরের স্তরের ওপর ভর করে আছে।
Terminate যেগুলো ছোঁয় না, সেগুলো মোছো
available অবস্থার volume, Elastic IP (NAT Gateway-এরটাও), পুরোনো snapshot আর AMI, খালি S3 bucket, অব্যবহৃত VPC।
পরের দিন আবার দেখো
Billing data কয়েক ঘণ্টা পিছিয়ে থাকে। পরের দিন Bills page-এ তাকাও: দিনের খরচ শূন্য বা তার কাছাকাছি হওয়ার কথা। না হলে যে লাইনটা রয়ে গেছে, সেটাই বলে দেবে কোন service, কোন Region।
#নতুন account-এর প্রথম দশ মিনিট
Root user-কে সুরক্ষিত করো
Root user-এ MFA চালু করো, আর root-এর জন্য কোনো access key বানিয়ো না (lesson 2.3)। Root-এর password চুরি হওয়াই সবচেয়ে দামি ভুল।
দুইটা budget বানাও
Learning account-এর জন্য একটা zero spend budget (বা ছোট একটা মাসিক cost budget), আর একটা monthly cost budget, যেখানে ১০০%-এ forecasted alert আর ৫০%, ৮০% ও ১০০%-এ actual alert। Alert পাঠাও নিজের email-এ, আর টিম থাকলে একটা SNS topic-এও।
তোমার IAM user-কে বিল দেখতে দাও
Root হিসেবে IAM user and role access to Billing information চালু করো, তারপর রোজকার কাজ করো IAM user দিয়ে বা IAM Identity Center দিয়ে, root দিয়ে কখনো না।
Cost Explorer চালু করো
এতে Cost Anomaly Detection-ও চালু হয়ে যায়, তার default monitor আর দৈনিক সারাংশসহ।
একটা মূল Region বেছে নাও, আর যা বানাও তাতে tag লাগাও
এক Region-এ কাজ করো, যাতে পড়ে থাকা জিনিস সহজে খুঁজে পাও। প্রতিটা resource-এ অন্তত একটা
projecttag লাগাও, যাতে পরে খরচগুলো ভাগ করে দেখা যায়।
নিজেকে যাচাই করোপ্রশ্ন
একজন engineer এক সপ্তাহ আগে একটা test account-এর একমাত্র EC2 instance stop করেছে, তবু বিল প্রতি সপ্তাহে কয়েক ডলার করে বাড়ছে। Instance-টার একটা ১০০ GB data volume আর একটা Elastic IP আছে। কারণ কী?
#নিজে করে দেখো
111122223333-এর জায়গায় তোমার account ID আর you@example.com-এর জায়গায় তোমার ঠিকানা বসাও।
# 1. মাসে $10-এর cost budget: ১০০%-এ forecasted alert, ৫০% আর ৮০%-এ actual alert
aws budgets create-budget --account-id 111122223333 \
--budget '{"BudgetName":"monthly-10","BudgetLimit":{"Amount":"10","Unit":"USD"},"TimeUnit":"MONTHLY","BudgetType":"COST"}' \
--notifications-with-subscribers '[
{"Notification":{"NotificationType":"FORECASTED","ComparisonOperator":"GREATER_THAN","Threshold":100,"ThresholdType":"PERCENTAGE"},
"Subscribers":[{"SubscriptionType":"EMAIL","Address":"you@example.com"}]},
{"Notification":{"NotificationType":"ACTUAL","ComparisonOperator":"GREATER_THAN","Threshold":50,"ThresholdType":"PERCENTAGE"},
"Subscribers":[{"SubscriptionType":"EMAIL","Address":"you@example.com"}]},
{"Notification":{"NotificationType":"ACTUAL","ComparisonOperator":"GREATER_THAN","Threshold":80,"ThresholdType":"PERCENTAGE"},
"Subscribers":[{"SubscriptionType":"EMAIL","Address":"you@example.com"}]}]'
# 2. এই মাসে কোন service-এ কত খরচ? (Cost Explorer API: প্রতি call $0.01)
aws ce get-cost-and-usage \
--time-period Start=$(date -u +%Y-%m-01),End=$(date -u -d tomorrow +%Y-%m-%d) \
--granularity MONTHLY --metrics UnblendedCost \
--group-by Type=DIMENSION,Key=SERVICE
# 3. মাস শেষে খরচ কোথায় দাঁড়াবে?
aws ce get-cost-forecast \
--time-period Start=$(date -u -d tomorrow +%Y-%m-%d),End=$(date -u -d "$(date -u +%Y-%m-01) +1 month" +%Y-%m-%d) \
--metric UNBLENDED_COST --granularity MONTHLY
# 4. একটা CloudWatch billing alarm (আগে billing alert চালু করতে হবে; Region খেয়াল করো)
aws cloudwatch put-metric-alarm --region us-east-1 \
--alarm-name estimated-charges-over-20 \
--namespace AWS/Billing --metric-name EstimatedCharges --dimensions Name=Currency,Value=USD \
--statistic Maximum --period 21600 --evaluation-periods 1 \
--threshold 20 --comparison-operator GreaterThanThreshold \
--alarm-actions arn:aws:sns:us-east-1:111122223333:billing-alerts
# 5. প্রতিটা Region-এ পড়ে থাকা জিনিস: instance, জোড়া-না-থাকা volume, অলস Elastic IP, NAT Gateway
for r in $(aws ec2 describe-regions --query 'Regions[].RegionName' --output text); do
echo "== $r"
aws ec2 describe-instances --region "$r" \
--query 'Reservations[].Instances[].[InstanceId,State.Name,InstanceType]' --output text
aws ec2 describe-volumes --region "$r" --filters Name=status,Values=available \
--query 'Volumes[].[VolumeId,Size,"unattached volume"]' --output text
aws ec2 describe-addresses --region "$r" \
--query 'Addresses[?AssociationId==null].[PublicIp,AllocationId,"idle Elastic IP"]' --output text
aws ec2 describe-nat-gateways --region "$r" --filter Name=state,Values=available \
--query 'NatGateways[].[NatGatewayId,"NAT gateway"]' --output text
done
Budget থেকে সরাসরি আসা email-এর জন্য কিছু confirm করতে হয় না, কিন্তু SNS-এর email subscription-এর confirmation link-এ click না করা পর্যন্ত সেখানে কিছুই পৌঁছায় না। ৪ নম্বর ধাপটা us-east-1 ছাড়া অন্য কোনো Region দিয়ে চালিয়ে দেখো, metric খুঁজেই পাবে না।
#সারসংক্ষেপ
মূল কথাগুলো
- Pay-as-you-go-এর কোনো সীমা নেই। Paid account-এ কেউ নিজে থেকে খরচ থামায় না; কিছু বানানোর আগেই alert লাগবে।
- Free Tier (১৫ জুলাই ২০২৫ থেকে): নতুন account বেছে নেয় free plan ($200 পর্যন্ত credit, বাছাই করা service, কখনো টাকা কাটে না, ৬ মাস পর বা credit শেষ হলে বন্ধ, upgrade-এর জন্য ৯০ দিন) অথবা paid plan (একই credit, সব service, credit-এর বাইরে বিল)। AWS Organizations-এ যোগ দিলে free plan নিজে থেকেই paid হয়ে যায়। পুরোনো account: ১২ মাসের সুবিধা (৭৫০ ঘণ্টা = একটা instance পুরো মাস), তারপর চুপচাপ পুরো দাম।
- Billing-এ ঢোকার অনুমতি: default-এ শুধু root; root-কে IAM user and role access to Billing information চালু করতে হয়, আর তার পরেও user-দের billing policy লাগে।
- AWS Budgets: cost, usage, RI আর Savings Plan budget; actual alert (ঘটনার পরে, period-এ একবার) আর forecasted alert (আগেই, তবে প্রায় ৫ সপ্তাহের ইতিহাস লাগে); প্রতিটা alert-এ ১০টা email + ১টা SNS topic; data দিনে কয়েকবার refresh হয়, তাই এটা কোনো সীমা না। Budget action: IAM policy, SCP, বা EC2/RDS instance stop; নিজে থেকে বা approve করে; Auto Scaling group থেকে সাবধান। নজর রাখা ফ্রি; action জোড়া ২টা budget ফ্রি।
- Cost Explorer: বিশ্লেষণ আর forecast (১৮ মাস পর্যন্ত), Savings Plan/RI-এর পরামর্শ, কোনো alert নেই। Cost Anomaly Detection: machine learning, threshold লাগে না, মূল কারণ জানায়, Cost Explorer-এর সঙ্গে default-এ চালু। CloudWatch billing alarm:
EstimatedCharges, শুধু us-east-1, শুধু actual। CUR / Data Exports: S3-এ line-item ধরে সব খুঁটিনাটি। Cost allocation tag: activate করতে হয়, কাজ করে তখন থেকে (চাইলে ১২ মাস পর্যন্ত backfill)। - Stop মানে টাকা দেওয়া বন্ধ না। EBS volume, snapshot, Elastic IP, NAT Gateway, Load Balancer, RDS-এর storage (আর ৭ দিন পর RDS আবার চালু হয়), S3, আর অন্য Region-এর resource বিল বাড়াতেই থাকে। বাইরে থেকে ভেতরে delete করো, address release করো, প্রতিটা Region দেখো, পরের দিন আবার মিলিয়ে নাও।
আগে নিজে উত্তর দাও, তারপর ব্যাখ্যাটা পড়ো। ঠিক হলেও পড়ো, কারণ ভুল Option-গুলো কেন ভুল, সেটাও ওখানে আছে।
নিজেকে যাচাই করোপ্রশ্ন
পরীক্ষার একটা চেনা প্রশ্ন অনুযায়ী, তোমার ঠিক করা threshold-এর বেশি AWS খরচ হওয়ার আগেই alert পাবে কীভাবে?
নিজেকে যাচাই করোপ্রশ্ন
Cost Explorer আর AWS Budgets-এর মূল পার্থক্য কী?
নিজেকে যাচাই করোপ্রশ্ন
eu-west-1 Region-এ কাজ করা একজন administrator account-এর estimated charges-এর ওপর একটা CloudWatch alarm বানাতে চায়, কিন্তু billing metric খুঁজে পাচ্ছে না। Billing alert আগেই চালু করা আছে। সবচেয়ে সম্ভাব্য সমাধান কী?
নিজেকে যাচাই করোপ্রশ্ন
একজন ছাত্র দুই সপ্তাহ আগে একটা AWS account খুলে একটা budget বানিয়েছে, যার একমাত্র alert হলো forecasted খরচ ১০০ শতাংশ ছাড়ালে। খরচ খুব দ্রুত বাড়ছে, কিন্তু কোনো alert আসেনি। কেন?
নিজেকে যাচাই করোপ্রশ্ন
একটা কোম্পানি চায়, কোনো service-এর খরচ হঠাৎ তার স্বাভাবিক ধরনের সাথে না মিললেই খবর আসুক, প্রতিটা service-এর জন্য আলাদা ডলারের threshold না দিয়েই। কোন service?
নিজেকে যাচাই করোপ্রশ্ন
একজন IAM user-এর AWS managed administrator policy আছে, তবু Billing and Cost Management page বলছে access denied। কী করতে হবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা EC2 instance stop করা হলো, যার একটা EBS root volume, আরেকটা EBS data volume আর একটা Elastic IP আছে। কোন দুইটার বিল চলতেই থাকবে? (দুইটা বেছে নাও।)
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
একজন administrator একটা EC2 instance terminate করেছে, কিন্তু এক সপ্তাহ পরেও বিলে তার EBS-এর চার্জ দেখাচ্ছে। সবচেয়ে সম্ভাব্য কারণ কী?
নিজেকে যাচাই করোপ্রশ্ন
Threshold পার হলে AWS Budgets নিচের কোন কাজটা করতে পারে না?
নিজেকে যাচাই করোপ্রশ্ন
একটা sandbox account budget-এ পৌঁছালে একটা budget action চারটা EC2 instance stop করে, কিন্তু দশ মিনিট পরে দেখা যায় নতুন চারটা instance চলছে। কী হলো, আর সমাধান কী?
নিজেকে যাচাই করোপ্রশ্ন
Free plan-এ থাকা একটা নতুন AWS account ছয় মাসে পৌঁছাল, তখনো ৪০ ডলার credit বাকি। কী হবে?
নিজেকে যাচাই করোপ্রশ্ন
Paid plan-এর একটা account তার সব Free Tier credit শেষ করে ফেলেছে। নতুন usage-এর কী হবে?
নিজেকে যাচাই করোপ্রশ্ন
২০২৪ সালে খোলা একটা account পুরোনো Free Tier-এর তৃতীয় মাসে আছে, যেখানে মাসে ৭৫০ ঘণ্টা micro instance ফ্রি। মালিক দুইটা micro instance পুরো মাস চালায়। কীসের বিল হবে?
নিজেকে যাচাই করোপ্রশ্ন
Free plan-এ থাকা একজন developer কোম্পানির AWS Organizations-এ যোগ দেওয়ার invitation গ্রহণ করল। Account-এর plan-এর কী হবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা টিম মাসে ১,০০০ ডলারের budget বানাল, সঙ্গে একটা action, যেটা আসল খরচ ১০০ শতাংশে পৌঁছালেই একটা deny policy জুড়ে দেয়। কোন কথাটা সত্যি?
নিজেকে যাচাই করোপ্রশ্ন
খুব দ্রুত credit শেষ করে ফেলতে পারে বলে free plan-এ কোন দুইটা কেনা যায় না? (দুইটা বেছে নাও।)
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
একটা finance টিম AWS বিলের প্রতিটা line item, resource আর ঘণ্টা ধরে, SQL দিয়ে বিশ্লেষণের জন্য Amazon Athena-তে তুলতে চায়। কী সেট করবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা কোম্পানি গতকাল সব resource-এ project=shop tag লাগিয়েছে, কিন্তু Cost Explorer-এ project ধরে কোনো ভাগ দেখাচ্ছে না। কী বাদ পড়েছে?
নিজেকে যাচাই করোপ্রশ্ন
একটা budget-কে বলা আছে একটা SNS topic-এ খবর পাঠাতে, যার একজন email subscriber আছে। Budget স্পষ্টতই ছাড়িয়ে গেছে, কিন্তু subscriber কিছুই পায়নি। সবচেয়ে সম্ভাব্য কারণ কী?
নিজেকে যাচাই করোপ্রশ্ন
AWS Budgets-এর একটা alert সরাসরি কতজনকে জানাতে পারে?
নিজেকে যাচাই করোপ্রশ্ন
একটা test environment-এ এমন একটা NAT Gateway আছে যেটা আর কেউ ব্যবহার করে না। এর টাকা দেওয়া বন্ধ করতে কী করতে হবে?
নিজেকে যাচাই করোপ্রশ্ন
কোন দুইটা resource যতক্ষণ আছে ততক্ষণ প্রতি ঘণ্টায় বিল হয়, আর এদের কোনো stop-এর উপায় নেই? (দুইটা বেছে নাও।)
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
us-east-1-এর console-এ কোনো instance দেখা যাচ্ছে না, অথচ এই মাসের বিলে EC2-এর চার্জ বাড়ছেই। আগে কী দেখবে?
নিজেকে যাচাই করোপ্রশ্ন
টাকা বাঁচাতে একজন developer একটা RDS database stop করে রেখে ভুলে গেছে। তিন সপ্তাহ পরে বিলে আবার RDS instance-এর ঘণ্টা দেখা যাচ্ছে। কেন?
নিজেকে যাচাই করোপ্রশ্ন
এখন Cost Explorer কতদূর সামনের খরচের forecast দিতে পারে?
নিজেকে যাচাই করোপ্রশ্ন
কেনা commitment কতটা ঠিকমতো কাজে লাগছে, সেটা মাপে কোন দুই ধরনের budget? (দুইটা বেছে নাও।)
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
এক মাসের মধ্যে একটা budget-এর forecast threshold-এর ওপরে উঠল, আবার নিচে নামল, আবার ওপরে উঠল। আসল খরচ actual threshold একবার পার হলো। মোট কয়টা alert আসতে পারে?
নিজেকে যাচাই করোপ্রশ্ন
AWS Budgets-এর খরচ কত?
নিজেকে যাচাই করোপ্রশ্ন
একদম নতুন একটা learning account-কে হঠাৎ বিল থেকে সবচেয়ে ভালোভাবে বাঁচায় কোন দুইটা প্রথম পদক্ষেপ? (দুইটা বেছে নাও।)
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
Auto-assigned public IPv4 address (Elastic IP না) আছে এমন একটা instance stop করা হলো। Address-টা আর তার চার্জের কী হবে?