4.4
কেনার অপশন: On-Demand থেকে Spot
On-Demand, Reserved, Savings Plan, Spot আর Spot Fleet, Dedicated Host আর Dedicated Instance, Capacity Reservation, আর কখন কোনটা নেবে।
30 মিনিট পড়া + Animation
টিপস: ডটেড-আন্ডারলাইন করা যেকোনো শব্দে ট্যাপ বা Hover করলে তার অর্থ দেখবে।
এই লেসন শেষে তুমি যা পারবে
- On-Demand, Reserved Instance, Savings Plan, Spot, Dedicated Host, Dedicated Instance আর Capacity Reservation-এ কীভাবে বিল হয়, আর কোনটা তোমাকে কী নিশ্চয়তা দেয়, বুঝিয়ে বলতে পারবে।
- Standard আর Convertible Reserved Instance, payment option, আর Regional বনাম zonal scope-এর মধ্যে ঠিকটা বেছে নিতে পারবে।
- কোন Savings Plan (Compute, EC2 Instance, SageMaker AI, Database) নেবে আর ঘণ্টায় কত টাকার commitment করবে, ঠিক করতে পারবে।
- নিরাপদে Spot Instance চালাতে পারবে: rebalance recommendation আর ২ মিনিটের notice সামলানো, interruption behaviour বেছে নেওয়া, আর persistent request ঠিক নিয়মে cancel করা।
- Spot Fleet বা EC2 Fleet-এর allocation strategy বেছে নিতে পারবে, আর
price-capacity-optimizedকেন সাধারণত সেরা পরামর্শ, তা বোঝাতে পারবে। - একটা architecture-এ কয়েকটা option মিলিয়ে ব্যবহার করতে পারবে, আর পরীক্ষার চেনা keyword (steady state, fault-tolerant, BYOL, capacity assurance) দেখলেই উত্তর ধরতে পারবে।
#একই server, আলাদা আলাদা দাম
একটা Region-এ m7i.large যেভাবেই টাকা দাও, virtual machine-টা একই থাকে। বদলায় শুধু AWS-এর সাথে তোমার চুক্তিটা:
- কতদিন ব্যবহার করবে বলে কথা দিচ্ছ (কোনো কথা নেই, ১ বছর, নাকি ৩ বছর)।
- শুরুর আগে কত টাকা দিচ্ছ (কিছুই না, কিছুটা, নাকি পুরোটা)।
- AWS server-টা ফেরত নিতে পারবে কি না (Spot), নাকি তোমার জন্য জায়গা ধরে রাখতে বাধ্য (Capacity Reservation)।
- physical machine-টা অন্য customer-দের সাথে ভাগাভাগি হবে (default tenancy), নাকি শুধু তোমার (Dedicated)।
AWS-কে তুমি যত বেশি নিশ্চয়তা দেবে, আর নিজে যত বেশি ঝুঁকি নেবে, দাম তত কমবে। এই চারটা প্রশ্ন থেকেই সাতটা option বেরিয়ে আসে:
| Option | Commitment | On-Demand-এর তুলনায় ছাড় | AWS কি ফেরত নিতে পারে? | সাধারণত কোথায় |
|---|---|---|---|---|
| On-Demand | নেই | নেই (এটাই মূল দাম) | না | অল্প সময়ের, অনিশ্চিত, বা থামানো যাবে না এমন কাজ |
| Reserved Instance | ১ বা ৩ বছর, একটা নির্দিষ্ট instance configuration | প্রায় ৭২% পর্যন্ত | না | স্থির, জানা workload (যেমন database server) |
| Savings Plan | ১ বা ৩ বছর, ঘণ্টায় নির্দিষ্ট অঙ্কের টাকা | প্রায় ৭২% পর্যন্ত | না | খরচ স্থির, কিন্তু workload-এর ধরন বদলাতে পারে |
| Spot Instance | নেই | প্রায় ৯০% পর্যন্ত | হ্যাঁ, ২ মিনিটের notice দিয়ে | fault-tolerant, সময় নিয়ে নমনীয় কাজ |
| Dedicated Host | নেই, অথবা ১/৩ বছরের host reservation | reservation নিলে ছাড় আছে | না | socket/core হিসেবে কেনা licence (BYOL), placement-এর নিয়ন্ত্রণ |
| Dedicated Instance | নেই | নিজে থেকে নেই | না | অন্য account-এর সাথে hardware ভাগ করা চলবে না |
| Capacity Reservation | নেই (যখন খুশি cancel) | নিজে থেকে নেই | না | একটা Availability Zone-এ নিশ্চিত জায়গা |
#On-Demand: যতটুকু চালাবে, ততটুকু দেবে
instance launch করার সময় আর কিছু বেছে না নিলে তুমি On-Demand-ই পাও।
- বিল: সেকেন্ড হিসেবে, তবে প্রতিবার চালু করলে অন্তত ৬০ সেকেন্ডের টাকা লাগে। এটা খাটে Linux, Windows (SQL Server-সহ Windows-ও), Red Hat Enterprise Linux (RHEL) আর Ubuntu Pro-র বেলায়। আরও কিছু operating system, বেশিরভাগই নিজস্ব licence fee-ওয়ালা commercial Linux, এখনো পুরো ঘণ্টা ধরে বিল হয়।
- টাকা লাগে শুধু instance চালু (running) থাকলে। stop করা instance-এর compute-এর কোনো খরচ নেই, তবে তার EBS volume-এর বিল চলতেই থাকে।
- আগে কোনো টাকা দিতে হয় না, কোনো commitment নেই, তবে ঘণ্টাপ্রতি দাম সবচেয়ে বেশি।
- সবচেয়ে ভালো খাটে অল্প সময়ের, হঠাৎ বেড়ে যাওয়া বা আগে থেকে আন্দাজ করা যায় না এমন workload-এ: নতুন application, যার আচরণ এখনো জানো না; development আর testing; আর এমন কাজ যেটা থামানো যাবে না, কিন্তু commitment করার মতো লম্বা সময়ও চলবে না।
#Reserved Instance (RI)
Reserved Instance কোনো server না। এটা একটা বিলের ছাড়, যেটা AWS প্রতি ঘণ্টায় মিলে যাওয়া চালু instance-গুলোর ওপর নিজে থেকেই বসিয়ে দেয়। কেনার সময় ঠিক করে দিতে হয়:
- একটা instance type (যেমন
m7i.large), একটা platform (Linux, Windows…), একটা tenancy (default বা dedicated), আর একটা Region (zonal হলে সাথে একটা Availability Zone-ও); - মেয়াদ: ঠিক ১ বছর অথবা ৩ বছর (৩ বছরে ছাড় বেশি);
- payment option: No Upfront, Partial Upfront অথবা All Upfront (শুরুতে যত বেশি দেবে, মোট খরচ তত কম)।
কোনো ঘণ্টায় মিলে যাওয়ার মতো কোনো instance না চললে, সেই ঘণ্টার reservation স্রেফ নষ্ট হয়। পুরো মেয়াদের টাকা তোমাকে দিতেই হবে।
#Standard বনাম Convertible
| Standard RI | Convertible RI | |
|---|---|---|
| ছাড় | সবচেয়ে বেশি, প্রায় ৭২% পর্যন্ত | একটু কম, প্রায় ৬৬% পর্যন্ত |
| Availability Zone, scope, একই family-র মধ্যে size বদলানো | যায় (modify) | যায় (modify) |
| instance family, OS, tenancy বদলানো | যায় না | যায়, সমান বা বেশি দামের আরেকটা Convertible RI-এর সাথে exchange করে |
| RI Marketplace-এ বিক্রি | করা যায় | করা যায় না |
পুরো মেয়াদে ঠিক কী চালাবে সে ব্যাপারে নিশ্চিত হলে Standard নাও। commitment-এর ছাড় চাও, কিন্তু মনে হচ্ছে instance family বদলাতে হতে পারে (যেমন নতুন generation বা Graviton-এ যাওয়া), তাহলে Convertible।
#Regional বনাম zonal scope
| Regional RI | Zonal RI | |
|---|---|---|
| ছাড় কোথায় খাটে | Region-এর যেকোনো Availability Zone-এ | একটা Availability Zone-এ |
| size নিয়ে নমনীয়তা | default tenancy-র Linux/Unix-এ আছে: একটা m7i.xlarge-এর reservation দুইটা m7i.large-কেও ঢেকে দেয়, বা একটা m7i.2xlarge-এর অর্ধেক | নেই: ঠিক ওই type-টাই লাগবে |
| capacity রিজার্ভ | হয় না | হয়: ওই zone-এ ওই instance-এর জন্য AWS জায়গা ধরে রাখে |
মানে zonal RI একসাথে ছাড় আর একটা zone-এ জায়গার নিশ্চয়তা; Regional RI বেশি নমনীয় ছাড়, কিন্তু জায়গার কোনো নিশ্চয়তা নেই।
#Reserved Instance Marketplace
পরিকল্পনা বদলে গেলে অব্যবহৃত Standard RI অন্য customer-এর কাছে বিক্রি করতে পারো Reserved Instance Marketplace-এ। আবার অন্যের বাকি মেয়াদও সেখান থেকে কেনা যায় (প্রায়ই ১ বছরের কম)। যে নিয়মগুলো জানা দরকার: বিক্রি করা যায় শুধু Standard RI (Convertible কখনো না); RI অন্তত ৩০ দিন তোমার কাছে থাকতে হবে; মেয়াদের অন্তত এক মাস বাকি থাকতে হবে; আর বিক্রির টাকা থেকে AWS একটা service fee কেটে রাখে।
#Savings Plan
Savings Plan হলো ঘণ্টায় নির্দিষ্ট অঙ্কের টাকা খরচ করার একটা কথা (যেমন “ঘণ্টায় compute-এ $10”), ১ বা ৩ বছরের জন্য। প্রতি ঘণ্টায় যা হয়:
- ওই ঘণ্টার commitment শেষ না হওয়া পর্যন্ত AWS তোমার যোগ্য ব্যবহারের ওপর ছাড়ের দাম বসায়।
- commitment-এর বেশি যা ব্যবহার হয়, সেটা সাধারণ On-Demand দামে বিল হয়।
- ওই ঘণ্টায় commitment-এর যেটুকু কাজে লাগেনি, সেটা নষ্ট: কিছুই না চালালেও পুরো ঘণ্টার অঙ্কটাই দিতে হবে।
payment option RI-এর মতোই: No, Partial বা All Upfront (Database Savings Plan এর ব্যতিক্রম, নিচে দেখো)। Savings Plan বিক্রিও করা যায় না, cancel-ও করা যায় না, আর এটা কখনো capacity রিজার্ভ করে না।
| Savings Plan | কিসের ওপর খাটে | কিসে বাঁধা | সর্বোচ্চ ছাড় |
|---|---|---|---|
| Compute | EC2 (যেকোনো family, size, Region, OS, tenancy), Fargate আর Lambda | শুধু টাকার অঙ্কে, আর কিছুতে না | প্রায় ৬৬% পর্যন্ত |
| EC2 Instance | একটা Region-এ একটা instance family-র EC2 (যেমন us-east-1-এ M7i) | family + Region; size, OS, tenancy, Availability Zone যত খুশি বদলাও | প্রায় ৭২% পর্যন্ত |
| SageMaker AI | SageMaker AI-এর instance ব্যবহার (training, inference, notebook…) | শুধু SageMaker AI | প্রায় ৬৪% পর্যন্ত |
| Database | Aurora, DynamoDB, ElastiCache-এর মতো managed database | শুধু database service; মেয়াদ ১ বছর, upfront নেই | প্রায় ৩৫% পর্যন্ত |
হিসাবটা RI-এর মতোই: নমনীয়তা যত বেশি, ছাড় তত কম। Compute Savings Plan তোমার সাথে সাথে চলে: x86 থেকে Graviton-এ গেলে, EC2 থেকে Fargate-এ গেলে, এক Region থেকে আরেক Region-এ গেলেও ছাড় থাকে। EC2 Instance Savings Plan কয়েক শতাংশ বেশি ছাড় দেয়, কিন্তু একটা Region-এর একটা family-তেই আটকে থাকে।
#Spot Instance
Spot Instance চলে EC2-এর বাড়তি, অলস capacity-তে, যেটার জন্য এই মুহূর্তে কেউ পুরো দাম দিচ্ছে না। On-Demand customer-দের দরকার পড়লে AWS এটা ফেরত নিয়ে নিতে পারে, তাই দাম On-Demand-এর চেয়ে প্রায় ৯০% পর্যন্ত কম।
#Spot-এর দাম কীভাবে ঠিক হয়
#Interruption: দুটো সংকেত
AWS Spot Instance interrupt করে বেশিরভাগ সময় নিজের capacity ফেরত দরকার বলে; দাম তোমার maximum-এর ওপরে উঠে গেছে বলে, এমনটা অনেক কম হয়। তার আগে তুমি দুটো সংকেত পেতে পারো। দুটোই instance metadata থেকে পড়া যায়, আর দুটোই EventBridge event হিসেবেও আসে:
- Rebalance recommendation: “এই instance এখন বেশি ঝুঁকিতে আছে।” এটা প্রায়ই interruption notice-এর আগেই চলে আসে, তবে আসবেই এমন নিশ্চয়তা নেই। Auto Scaling group আর EC2 Fleet এটা দেখে Capacity Rebalancing করতে পারে: আগে একটা নতুন instance চালু করে, তারপর পুরনোটাকে সরিয়ে দেয়।
- Interruption notice: AWS instance-টা stop বা terminate করার ঠিক ২ মিনিট আগে এটা পাঠায়। behaviour hibernate হলেও notice আসে, কিন্তু hibernation শুরু হয়ে যায় সাথে সাথেই, ২ মিনিটের কোনো অবকাশ থাকে না।
দুটো সংকেতই AWS পাঠায় best effort হিসেবে, মানে চেষ্টা করে, কিন্তু কথা দেয় না। তাই AWS বলে কয়েক সেকেন্ড পরপর instance metadata দেখতে, আর design এমন হওয়া চাই যেন কোনো সতর্কতা ছাড়াই instance উধাও হলেও সামলে নেওয়া যায়। ২ মিনিটে একটা request শেষ করা, একটা checkpoint রাখা, বা load balancer থেকে নিজেকে সরিয়ে নেওয়া যায়। কিন্তু ঘণ্টাখানেকের একটা job শেষ করা যায় না। এজন্যই Spot-এর কাজকে আবার শুরু বা retry করতে পারার মতো করে বানাতে হয়।
#Interruption behaviour: terminate, stop না hibernate
| Behaviour | কী হয় | কী লাগে |
|---|---|---|
| Terminate (default) | instance আর তার instance store মুছে যায়; EBS volume তার delete-on-termination setting অনুযায়ী থাকে বা যায় | কিছুই না |
| Stop | instance stop হয়, EBS volume থেকে যায় (বিলও চলে); একই zone-এ একই type-এর capacity ফিরলে EC2 নিজেই আবার চালু করে | persistent request (বা maintain ধরনের fleet), আর EBS root volume |
| Hibernate | notice আসার সাথে সাথেই শুরু: memory-র সবকিছু encrypted EBS root volume-এ লিখে instance stop হয়; পরে ঠিক যেখানে ছিল সেখান থেকে চলে | stop-এর সব শর্ত, সাথে hibernation-এর সাধারণ শর্তগুলো (lesson 4.5) |
Spot interruption, ধাপে ধাপে
একটা Spot Instance-এ image processing-এর worker চলছে। AWS-এর এখন capacity-টা ফেরত দরকার। কী বাঁচবে আর কী হারাবে, সেটা নির্ভর করে job সতর্কবার্তা পেয়ে কী করল, আর তুমি কোন interruption behaviour বেছে রেখেছ তার ওপর।
পরিস্থিতি
worker একটা বড় batch-এর ৭০% কাজ করে ফেলেছে। প্রতি কয়েক মিনিট পরপর সে নিজের অগ্রগতি S3-এ লিখে রাখে। তাই কোনো সময়েই কয়েক মিনিটের বেশি কাজ হারানোর ভয় নেই।
#One-time বনাম persistent request
প্রতিটা Spot Instance আসে একটা Spot request থেকে:
- one-time request একবার instance চালু করে। instance interrupt বা terminate হলে request বন্ধ হয়ে যায়, আর কিছু ফিরে আসে না।
- persistent request যতদিন valid, ততদিন খোলা থাকে। instance interrupt হলে, বা তুমি নিজে terminate করলেও, request আরেকটা চালু করে (বা stop হওয়াটা আবার start করে)।
Spot request: instance বারবার চালু করে কে
প্রতিটা Spot Instance আসে একটা Spot request থেকে। persistent request তুমি cancel না করা পর্যন্ত কাজ চালিয়েই যায়। তাই cancel আগে না terminate আগে, এই ক্রমটা খুব গুরুত্বপূর্ণ।
পরিস্থিতি
তুমি একটা instance-এর জন্য persistent Spot request তৈরি করলে। persistent মানে: এই request যতক্ষণ খোলা, ততক্ষণ একটা instance চালু রাখতেই হবে।
#Spot কোন কাজে মানায়
পরীক্ষার keyword-গুলো মুখস্থ রাখো: fault-tolerant, flexible start and end time, batch job, data analysis, image বা media processing, build আর test-এর agent, load balancer-এর পেছনে stateless web server, big data আর container cluster। কাজটা যদি থেমে গিয়ে আবার শুরু হতে পারে আর জরুরি কিছু না হারায়, তাহলে সেটা Spot-এ চালানো যায়।
মালিকের নোটে পরীক্ষার একটা খুব চেনা লাইন আছে: “an application performing big data analysis on a fleet of EC2 instances”। প্রশ্নের শেষ লাইনে যদি এই fleet সবচেয়ে কম খরচে চালানোর উপায় জানতে চায়, উত্তর Spot Instance / Spot Fleet। কারণ analysis-টা একটা batch job: মাঝপথে ১-২টা server হারিয়ে গেলে অন্য একটা server তাদের অংশটুকু আবার করে নেয়। (এই একই scenario থেকে placement, instance type আর storage নিয়েও প্রশ্ন আসে; সেগুলোর উত্তর lesson 4.1, 4.5 আর EC2 storage chapter-এ।)
নিজেকে যাচাই করোপ্রশ্ন
রাতে একটা job upload হওয়া ছবিগুলো থেকে thumbnail বানায়। সকালের আগে যেকোনো সময় চললেই হয়, আর অর্ধেক হওয়া ছবি আবার গোড়া থেকে করে নিলেই চলে। সবচেয়ে কম খরচের option কোনটা?
#Spot Fleet আর EC2 Fleet
একটা zone-এ একটা instance type চাওয়াটাই Spot ব্যবহারের সবচেয়ে ঝুঁকির উপায়: ওই pool-এ টান পড়লে তোমার সব instance একসাথে চলে যাবে। Fleet তাই একটা target capacity চায় (কয়টা instance, বা কতগুলো virtual CPU বা কত memory), আর AWS-কে গ্রহণযোগ্য কয়েকটা launch pool-এর তালিকা দেয়: কয়েকটা Availability Zone-এ কয়েকটা instance type। চাইলে নিশ্চিত base হিসেবে কিছু On-Demand instance-ও মিশিয়ে নিতে পারে। target capacity বা তোমার দেওয়া সর্বোচ্চ মোট দামে না পৌঁছানো পর্যন্ত fleet instance চালু করতে থাকে, আর maintain ধরনের হলে interrupt হওয়া instance-এর জায়গায় নতুন এনে বসায়।
Spot অংশটা কোন pool থেকে আসবে, সেটা ঠিক করে allocation strategy:
| Strategy | কোন pool বাছে | কোথায় ভালো | ঝুঁকি |
|---|---|---|---|
price-capacity-optimized | যেসব pool-এ খালি capacity সবচেয়ে বেশি, তাদের মধ্যে সবচেয়ে সস্তাটা | বেশিরভাগ workload-এর জন্য AWS-এর পরামর্শ | interruption কম, দামও কম |
capacity-optimized | খালি capacity সবচেয়ে বেশি এমন pool, দাম না দেখে | যেখানে interruption খুব দামি (লম্বা job, বড় cluster) | interruption সবচেয়ে কম, খরচ একটু বেশি হতে পারে |
lowest-price | শুধু সবচেয়ে সস্তা pool | খুব ছোট job, যেখানে দামই সব | interruption সবচেয়ে বেশি: সস্তা pool সস্তা, কারণ সেগুলো প্রায় ভর্তি |
diversified | সব pool-এ সমানভাবে ছড়িয়ে | লম্বা সময় চলা fleet, যার বেশিরভাগ capacity টিকে থাকা চাই | একটা pool গেলে শুধু তার ভাগটুকু যায় |
একটা fleet, ছয়টা Spot pool
fleet-এর ১২টা instance লাগবে, আর সে ছয়টা pool (instance type + Availability Zone) থেকে নিতে পারে। কোন pool-এ কয়টা যাবে সেটা ঠিক করে allocation strategy। আর তার ওপরই নির্ভর করে, একটা pool হাতছাড়া হলে কতটা ক্ষতি হবে।
পরিস্থিতি
Spot pool (instance type · Availability Zone)
| Pool | দাম | খালি capacity | instance |
|---|---|---|---|
| m7i.large · a | ★ সবচেয়ে কম | খুব কম | 12 |
| c7i.large · a | কম | বেশি | 0 |
| m7i.large · b | মাঝারি | খুব বেশি | 0 |
| m6i.large · b | কম | খুব বেশি | 0 |
| m6i.large · c | মাঝারি | বেশি | 0 |
| r7i.large · c | বেশি | মাঝারি | 0 |
lowest-price শুধু দাম দেখে। pool ১ সবচেয়ে সস্তা, তাই ১২টা instance-ই সেখানে চলে যায়।
#Dedicated Host আর Dedicated Instance
যেভাবেই টাকা দাও, সাধারণ instance চলে shared tenancy-তে: তোমার virtual machine একটা বড় physical server-এর এক টুকরো, আর তার পাশেই অন্য customer-এর machine চলতে পারে। ওই server-এ কয়টা physical socket বা core আছে, তুমি কখনো জানতে পারো না।
কিছু enterprise software-এর জন্য এটা একটা সমস্যা। Oracle বা Microsoft (Windows Server, SQL Server)-এর মতো vendor-রা virtual CPU না গুনে physical socket বা physical core গুনে licence বিক্রি করতে পারে। নিজের কেনা licence নিয়ে আসতে (BYOL) হলে ওই hardware তোমাকে দেখতে আর গুনতে পারতে হবে। মালিকের নোটে বলা আছে, পরীক্ষার সবচেয়ে কমন আর ঝামেলার প্রশ্নগুলোর একটা এটা:
একটা database-এর vendor licence বিল করে physical core আর socket visibility দেখে। কোন purchasing option সেটা দেখতে দেয়? → Dedicated Host।
| Dedicated Instance | Dedicated Host | |
|---|---|---|
| Hardware | অন্য account-এর সাথে ভাগ হয় না (তোমার নিজের account-এর অন্য instance-এর সাথে হতে পারে) | আস্ত একটা physical server তোমার জন্য |
| socket আর physical core দেখা যায় | না | হ্যাঁ |
| কোন host-এ instance বসবে তার নিয়ন্ত্রণ, host affinity | না (stop/start করলে অন্য hardware-এ চলে যেতে পারে) | হ্যাঁ |
| server-এ বাঁধা licence (socket/core ধরে BYOL) | না | হ্যাঁ |
| বিল | প্রতি instance, সাথে প্রতি Region-এ একটা dedicated fee | প্রতি host, তাতে যতগুলো instance-ই চালাও |
| ছাড় | dedicated tenancy-র RI আর Savings Plan | host-প্রতি On-Demand, Dedicated Host Reservation (১ বা ৩ বছর), Savings Plan |
| কখন নেবে | compliance বলছে “hardware ভাগাভাগি চলবে না” | licence, socket/core, placement-এর নিয়ন্ত্রণ, কড়া compliance |
EC2 চালানোর সবচেয়ে দামি উপায় হলো Dedicated Host, তাই licence বা compliance-এর দরকার না থাকলে এটা নেওয়ার মানে হয় না।
#On-Demand Capacity Reservation (ODCR)
Capacity Reservation একটা Availability Zone-এ একটা type, platform আর tenancy-র কয়েকটা instance-এর জন্য জায়গা ধরে রাখে, এখন থেকে (বা ভবিষ্যতের কোনো তারিখ থেকে), যতদিন তুমি চাও:
- কোনো মেয়াদ নেই: বানাও, যখন খুশি cancel করো (ভবিষ্যতের তারিখের reservation-এ অবশ্য book করার সময় একটা ন্যূনতম মেয়াদ ঠিক করে দিতে হয়)।
- ভেতরে instance চলুক বা না চলুক, On-Demand রেটেই বিল হয়: খালি reservation-এর খরচ ভর্তি reservation-এর সমান।
- নিজে থেকে কোনো ছাড় নেই। দাম কমাতে হলে এর সাথে Regional Reserved Instance বা Savings Plan জুড়ে দাও: reservation-এর ভেতরে চলা instance-গুলোর ওপর ওদের ছাড় বসে যায়।
- instance এটা নিজে থেকেই ব্যবহার করে (open matching), অথবা শুধু তখনই, যখন instance নিজে এর নাম উল্লেখ করে (targeted matching)।
| Capacity Reservation | Zonal Reserved Instance | |
|---|---|---|
| একটা zone-এ জায়গা | হ্যাঁ | হ্যাঁ |
| বিলে ছাড় | না (Regional RI বা Savings Plan যোগ করো) | হ্যাঁ |
| মেয়াদ | নেই, যখন খুশি cancel | ১ বা ৩ বছর |
| কোথায় মানায় | নতুন launch, sale-এর সময়, disaster recovery-র জন্য জায়গা, নির্দিষ্ট zone-এ চালু হতেই হবে এমন regulated workload | স্থির workload, যার ছাড় আর জায়গা দুটোই দরকার |
অল্প কয়েক দিনের GPU দরকার হলে (ধরো কয়েক দিন ধরে একটা model train করবে), EC2 Capacity Blocks একটা নির্দিষ্ট সময়ের জন্য GPU instance রিজার্ভ করে দেয়, টাকা দিতে হয় আগেই।
#কোনটা কখন নেবে
| প্রশ্নে যদি বলে… | বেছে নাও |
|---|---|
| অল্প সময়ের, অনিশ্চিত, interrupt করা যাবে না, নতুন app | On-Demand |
| steady state, predictable, বছরের পর বছর ২৪ ঘণ্টা চলে (database) | Reserved Instance (সবচেয়ে বেশি ছাড়ের জন্য Standard) বা EC2 Instance Savings Plan |
| লম্বা সময়ের, কিন্তু family, Region বদলাতে পারে, বা Fargate/Lambda-তে যেতে পারে | Compute Savings Plan (বা Convertible RI) |
| fault-tolerant, শুরু-শেষের সময় নমনীয়, batch, analysis, image processing | Spot (অনেক pool নিয়ে একটা fleet দিয়ে) |
| socket/core ধরে licence, BYOL, placement-এর নিয়ন্ত্রণ | Dedicated Host |
| অন্য customer-এর সাথে hardware ভাগ করা যাবে না, আর কিছু না | Dedicated Instance |
| নির্দিষ্ট সময়ে একটা নির্দিষ্ট Availability Zone-এ launch করতে পারতেই হবে | Capacity Reservation (+ ছাড়ের জন্য Savings Plan বা Regional RI) |
#একটা architecture-এ কয়েকটা option একসাথে
বাস্তবের system কয়েকটা option মিলিয়ে চলে। একটা সাধারণ online shop ধরো:
- Auto Scaling group-এর web tier: সারাক্ষণ চালু থাকা base হিসেবে কয়েকটা On-Demand instance, যেগুলো Compute Savings Plan দিয়ে ঢাকা; ব্যস্ত সময়ের বাড়তি instance Spot-এ, অনেক instance type-এ ছড়ানো,
price-capacity-optimizedদিয়ে। কোনো Spot Instance interrupt হলে load balancer বাকিগুলোতে traffic পাঠিয়ে দেয়। - Database: কখনোই Spot না। EC2-তে চালালে ৩ বছরের Reserved Instance; managed service হলে তার নিজের reservation বা Database Savings Plan।
- রাতের report আর image processing: Spot, checkpoint রাখা হয় S3-এ।
- বড় একটা sale-এর দিন: ওই সপ্তাহের জন্য দুইটা Availability Zone-এ Capacity Reservation, আগের Savings Plan-এর ছাড়সহ।
- core ধরে licence-ওয়ালা একটা commercial database: একটা Dedicated Host।
মোটা দাগে নিয়মটা হলো: baseline-এ commit করো, যা interrupt হলেও চলে সেটা Spot-এ দাও, বাকিটার জন্য On-Demand।
ঠিক কতটুকুতে commit করবে?
একটা workload সারা বছর একটা স্থির baseline চালায়, আর দিনে কয়েক ঘণ্টা কিছু বাড়তি instance লাগে। নিচে workload-এর ধরন বদলে দেখো, চারটা আলাদা plan-এ এক বছরের খরচ কত দাঁড়ায়। সব খরচ দেখানো হয়েছে “সবকিছু On-Demand-এ চালালে যত হতো” তার শতকরা হিসেবে।
- সবকিছু On-Demand100%
- peak পর্যন্ত commit128%
- baseline-এ commit, peak On-Demand65%
- ★ baseline-এ commit, peak Spot-এ44%
হিসাবের সুবিধার জন্য ধরা হয়েছে: Savings Plan ১ বছরে প্রায় ৩২% আর ৩ বছরে প্রায় ৫২% ছাড়, Spot প্রায় ৬৫% ছাড়। আসল ছাড় instance type, Region, মেয়াদ আর payment option অনুযায়ী বদলায়।
যেটুকু প্রতি ঘণ্টায় চলে শুধু সেটুকুতে commit করো, আর interrupt হলেও চলে এমন peak-টা Spot-এ দাও। peak পর্যন্ত commit করলে দিনের বেশিরভাগ সময় অলস instance-এর টাকা গুনতে হয় (লাল অংশটা)।
নিজেকে যাচাই করোপ্রশ্ন
একটা online shop-এর চারটা অংশ আছে। এর মধ্যে কোনটা কিছুতেই Spot Instance-এ চালানো উচিত না?
#নিজে করে দেখো
# 1. Region-এর প্রতিটা AZ-এ একটা instance type-এর সাম্প্রতিক Spot দাম
aws ec2 describe-spot-price-history \
--instance-types m7i.large \
--product-descriptions "Linux/UNIX" \
--start-time "$(date -u -d '-1 day' +%Y-%m-%dT%H:%M:%S)" \
--query 'SpotPriceHistory[].[AvailabilityZone,SpotPrice,Timestamp]' --output table
# 2. persistent request থেকে একটা Spot Instance, interrupt হলে terminate না হয়ে stop হবে
aws ec2 run-instances \
--image-id ami-0123456789abcdef0 --instance-type m7i.large --count 1 \
--instance-market-options '{"MarketType":"spot","SpotOptions":{"SpotInstanceType":"persistent","InstanceInterruptionBehavior":"stop"}}'
# 3. Instance-এর পেছনের request খুঁজে বের করো, তারপর আগে REQUEST CANCEL, তারপর terminate
SIR=$(aws ec2 describe-instances --instance-ids i-0abc1234def567890 \
--query 'Reservations[0].Instances[0].SpotInstanceRequestId' --output text)
aws ec2 cancel-spot-instance-requests --spot-instance-request-ids "$SIR"
aws ec2 terminate-instances --instance-ids i-0abc1234def567890
# 4. ১ বছরের Standard RI offering তুলনা (31536000 সেকেন্ড = ১ বছর)
aws ec2 describe-reserved-instances-offerings \
--instance-type m7i.large --product-description "Linux/UNIX" \
--offering-class standard --instance-tenancy default \
--min-duration 31536000 --max-duration 31536000 \
--query 'ReservedInstancesOfferings[].[OfferingType,Scope,FixedPrice,RecurringCharges[0].Amount]' --output table
# 5. একটা AZ-এ দুইটা Instance-এর জায়গা রিজার্ভ (cancel না করা পর্যন্ত On-Demand রেটে বিল)
CR=$(aws ec2 create-capacity-reservation \
--instance-type m7i.large --instance-platform Linux/UNIX \
--availability-zone us-east-1a --instance-count 2 \
--instance-match-criteria open --query 'CapacityReservation.CapacityReservationId' --output text)
aws ec2 cancel-capacity-reservation --capacity-reservation-id "$CR" # টাকা কাটা বন্ধ
২ নম্বর ধাপে run-instances দিয়ে persistent request বানালে behaviour হতে হবে stop বা hibernate। ৩ নম্বর ধাপের cancel বাদ দিয়ে শুধু instance terminate করে দেখো, এক মিনিট পরে console-এ তাকালেই দেখবে request নতুন আরেকটা চালু করে দিয়েছে।
#সারসংক্ষেপ
মূল কথাগুলো
- On-Demand: commitment নেই, দাম সবচেয়ে বেশি; Linux, Windows, RHEL আর Ubuntu Pro-তে সেকেন্ড হিসেবে বিল (অন্তত ৬০ সেকেন্ড); জায়গা পাওয়ার নিশ্চয়তা দেয় না।
- Reserved Instance: একটা configuration-এর জন্য ১ বা ৩ বছরের বিলের ছাড়, প্রায় ৭২% (Standard) বা ৬৬% (Convertible) পর্যন্ত। No/Partial/All Upfront। Zonal RI capacity-ও রিজার্ভ করে; Regional RI-তে size নিয়ে নমনীয়তা আছে, capacity নেই। Marketplace-এ বিক্রি করা যায় শুধু Standard RI।
- Savings Plan: ১ বা ৩ বছরের জন্য ঘণ্টায় নির্দিষ্ট টাকার commitment; তার বেশি গেলে On-Demand দাম, কম গেলে বাকিটা নষ্ট। Compute (যেকোনো জায়গার EC2 + Fargate + Lambda, প্রায় ৬৬% পর্যন্ত), EC2 Instance (এক Region-এ এক family, প্রায় ৭২% পর্যন্ত), SageMaker AI, Database (১ বছর, upfront নেই)। capacity রিজার্ভ করে না।
- Spot: অলস capacity, প্রায় ৯০% পর্যন্ত ছাড়, দাম ঠিক হয় দীর্ঘমেয়াদি চাহিদা-জোগানে (কোনো নিলাম নেই)। আগে rebalance recommendation (আগেভাগে, তবে নিশ্চিত না), তারপর ২ মিনিটের interruption notice। Terminate (default), stop বা hibernate (stop/hibernate-এর জন্য persistent request লাগে)। persistent request-এর instance terminate করার আগে request cancel করো। database-এ কখনো না।
- Fleet: অনেকগুলো pool, চাইলে On-Demand base;
price-capacity-optimizedহলো পরামর্শ দেওয়া strategy,lowest-priceসবচেয়ে ঝুঁকির। - Dedicated Host: আস্ত একটা server, socket/core দেখা যায়, BYOL, placement-এর নিয়ন্ত্রণ, সবচেয়ে দামি। Dedicated Instance: অন্য account-এর সাথে hardware ভাগ হয় না, এর বেশি কিছু না।
- Capacity Reservation: একটা zone-এ জায়গা, যতদিন খুশি, ব্যবহার হোক বা না হোক পুরো On-Demand দাম; ছাড় চাইলে Savings Plan বা Regional RI জুড়ে দাও।
- baseline-এ commit, interrupt হলেও চলে এমন অংশ Spot-এ, বাকিটা On-Demand।
আগে নিজে উত্তর দাও, তারপর ব্যাখ্যাটা পড়ো। ঠিক হলেও পড়ো, কারণ ভুল Option-গুলো কেন ভুল, সেটাও ওখানে আছে।
নিজেকে যাচাই করোপ্রশ্ন
Linux On-Demand Instance-এর বিল কীভাবে হয়?
নিজেকে যাচাই করোপ্রশ্ন
AWS থেকে EC2 Reserved Instance কেনার সময় কোন মেয়াদগুলো বেছে নেওয়া যায়?
নিজেকে যাচাই করোপ্রশ্ন
একটা কোম্পানির Compute Savings Plan-এ ঘণ্টায় ১০ ডলারের commitment। এক ঘণ্টায় Savings Plan-এর দামে তাদের যোগ্য ব্যবহার দাঁড়াল ১৪ ডলার। বাড়তি অংশের বিল কীভাবে হবে?
নিজেকে যাচাই করোপ্রশ্ন
এখন Spot Instance-এর দাম কীভাবে ঠিক হয়?
নিজেকে যাচাই করোপ্রশ্ন
Spot Instance stop বা terminate করার আগে AWS সাধারণত কতটুকু সময় দিয়ে সতর্ক করে?
নিজেকে যাচাই করোপ্রশ্ন
কোনো interruption behaviour বেছে না দিলে, interrupt হওয়া Spot Instance-এর কী হয়?
নিজেকে যাচাই করোপ্রশ্ন
একটা কোম্পানি দরকারের চেয়ে বেশি Reserved Instance কিনে ফেলেছে। এর মধ্যে কোনগুলো তারা Reserved Instance Marketplace-এ বিক্রি করতে পারবে?
নিজেকে যাচাই করোপ্রশ্ন
কোন ধরনের Reserved Instance তোমার জন্য capacity-ও রিজার্ভ করে?
নিজেকে যাচাই করোপ্রশ্ন
একটা টিম চায় Spot Instance interrupt হলে terminate না হয়ে stop হোক, যাতে EBS-এর data থেকে যায়। কোন দুটো শর্ত পূরণ করতে হবে?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
Dedicated Instance নিয়ে কোন দুটো কথা ঠিক?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
একটা কোম্পানি ১ বছরের commitment-এর ছাড় চায়, যেটা তাদের Aurora cluster আর DynamoDB table-এর ওপর খাটবে। কোন option মানানসই?
নিজেকে যাচাই করোপ্রশ্ন
EC2-এর rebalance recommendation তোমাকে কী জানায়?
নিজেকে যাচাই করোপ্রশ্ন
একটা research টিম EC2-এর একটা fleet-এ genome analysis চালায়। প্রতিটা job checkpoint লেখে, এই সপ্তাহের যেকোনো সময় শুরু হতে পারে, আর একটা instance হারালে শুধু ফলাফল একটু দেরিতে আসে। fleet চালানোর সবচেয়ে সাশ্রয়ী উপায় কী?
নিজেকে যাচাই করোপ্রশ্ন
একটা কোম্পানি EC2-তে একই database server সারাক্ষণ চালায়, আর আগামী ৩ বছর ঠিক একই instance type রাখবে। সবচেয়ে কম খরচ কোনটায়?
নিজেকে যাচাই করোপ্রশ্ন
একটা কোম্পানি ৩ বছরের জন্য EC2-তে commit করছে, কিন্তু পরিকল্পনা আছে x86 থেকে Graviton instance-এ যাওয়ার, কিছু service Fargate আর Lambda-তে সরানোর, আর হয়তো অন্য একটা Region ব্যবহার করার। কোন option এই সব বদলের মধ্যেও ছাড় ধরে রাখবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা start-up দুই মাসের trial হিসেবে নতুন একটা application চালু করছে। ব্যবহার কেমন হবে আন্দাজ করা অসম্ভব, আর service কোনোভাবেই থামানো যাবে না। কোন option সবচেয়ে মানানসই?
নিজেকে যাচাই করোপ্রশ্ন
একটা কোম্পানি EC2-তে একটা commercial database চালাতে চায়। vendor licence দেয় physical core ধরে, socket visibility-ও লাগে, আর কোম্পানি আগে থেকে কেনা licence-ই আবার ব্যবহার করতে চায়। কোনটা নেবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা retailer-কে দুই সপ্তাহের sale-এর সময় us-east-1a-তে ৪০টা instance চালু করতে পারার ব্যাপারে নিশ্চিত হতে হবে। তাদের আগে থেকেই একটা Compute Savings Plan আছে। কী করা উচিত?
নিজেকে যাচাই করোপ্রশ্ন
On-Demand Capacity Reservation-এর ভেতরে চলা instance-এর দাম কোন দুটো জিনিস কমাতে পারে?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
একজন engineer একটা persistent Spot request-এর চালু করা instance terminate করলেন। এক মিনিট পরে নতুন একটা Spot Instance হাজির। কেন, আর সমাধান কী?
নিজেকে যাচাই করোপ্রশ্ন
একজন engineer একটা persistent Spot request cancel করলেন, তখন তার instance চলছিল। instance-টার কী হবে?
নিজেকে যাচাই করোপ্রশ্ন
বেশিরভাগ workload-এর জন্য AWS কোন Spot allocation strategy নিতে বলে?
নিজেকে যাচাই করোপ্রশ্ন
একটা Spot Fleet lowest-price strategy নিয়ে ২০টা instance-ই একটা সস্তা pool-এ বসিয়েছে। সেই pool ফেরত নেওয়া হলো, আর পুরো fleet একসাথে উধাও। কোন দুটো বদল এই ঝুঁকি কমায়?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
কোন দুটো workload Spot Instance-এর জন্য ভালো?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
Spot Fleet আর EC2 Fleet নিয়ে কোন দুটো কথা ঠিক?
বেছে নাও ২
নিজেকে যাচাই করোপ্রশ্ন
একটা Regional Reserved Instance default tenancy-র Linux-এ চলা একটা m7i.xlarge ঢাকে। কোম্পানি এখন তার বদলে দুইটা m7i.large চালায়। ছাড়ের কী হবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা Linux On-Demand Instance চালু করে ৪০ সেকেন্ড পরে terminate করা হলো। কতক্ষণের বিল হবে?
নিজেকে যাচাই করোপ্রশ্ন
একটা workload-এর সারাক্ষণ ২০টা instance লাগে, আর প্রতিদিন বিকেলে প্রায় ৪ ঘণ্টার জন্য ৫০টা। peak-এর কাজ interrupt হলেও চলে। কোন commitment strategy-তে সাধারণত খরচ সবচেয়ে কম?
নিজেকে যাচাই করোপ্রশ্ন
একটা কোম্পানি EC2 Instance Savings Plan-এ ঘণ্টায় ১০ ডলার commit করেছে, কিন্তু এক শান্ত weekend-এ Savings Plan-এর দামে তাদের যোগ্য ব্যবহার ঘণ্টায় মাত্র ৬ ডলার। তারা কত দেবে?
নিজেকে যাচাই করোপ্রশ্ন
একজন সহকর্মী বলছেন: ‘আমাদের Spot Instance তখনই interrupt হবে, যখন Spot দাম আমাদের bid-এর ওপরে উঠবে।’ ঠিক কোনটা?
নিজেকে যাচাই করোপ্রশ্ন
On-Demand Capacity Reservation নিয়ে কোন কথাটা ঠিক না?
নিজেকে যাচাই করোপ্রশ্ন
Reserved Instance নিয়ে কোন কথাটা ভুল?