Cost-Effective API System Design
Learn the essential skills and steps to become a full stack developer. Start your journey today with this comprehensive guide for beginners!
Last Update: 10 Oct 2024

সিস্টেম ডিজাইন কুইজ
বর্তমান যুগে API-নির্ভর অ্যাপ্লিকেশন তৈরি করা অনেক বেশি জনপ্রিয় এবং প্রয়োজনীয়। আজকের এই ব্লগ পোস্টে আমরা আলোচনা করবো কীভাবে একটি সহজ অ্যাপ্লিকেশন তৈরি করা যায় যা ঢাকার এবং সিঙ্গাপুরের তাপমাত্রার পার্থক্য নির্ণয় করবে এবং ডেটাবেজে সেভ করে রাখবে। এই ডিজাইনের মূল লক্ষ্য হলো অল্প খরচে একটি কার্যকরী সিস্টেম তৈরি করা, যা মাসিক খরচের দিক থেকেও অপটিমাইজড থাকবে।
ইউজ কেস
আমাদের অ্যাপ্লিকেশনের দুইটি প্রধান ফাংশন থাকবে:
১. API কলের মাধ্যমে তাপমাত্রার পার্থক্য বের করা:
- যখনই বাইরের ইউজার API কল করবে, তখন ঢাকার এবং সিঙ্গাপুরের বর্তমান তাপমাত্রার পার্থক্য রিয়েল-টাইমে বের করে তা রিটার্ন করবে।
- সেই তাপমাত্রার পার্থক্য ডেটাবেজে সংরক্ষণ করবে ভবিষ্যতের জন্য।
২. স্বয়ংক্রিয়ভাবে ডেটা সংরক্ষণ:
- প্রতি তিন মিনিট অন্তর, সিস্টেমটি নিজেই তাপমাত্রার পার্থক্য বের করে ডেটাবেজে সংরক্ষণ করবে।
- এই ডেটাগুলো পরবর্তীতে ডেটা অ্যানালিটিক্সের জন্য কাজে লাগানো যাবে।
এই অ্যাপ্লিকেশনটির বড় একটি চ্যালেঞ্জ হলো কম খরচে এটি ডেপ্লয় করা এবং প্রতিদিনের কাজ পরিচালনা করা। প্রতিদিনের API কলের সংখ্যা হতে পারে ১০০ থেকে ২০০। চলুন, বিভিন্ন সমাধান নিয়ে আলোচনা করি।
সম্ভাব্য সলিউশনগুলো
সলিউশন ১: EC2 Instance + Cron Job
প্রথম সমাধানটি হলো, আমরা একটি ছোট AWS EC2 instance (যেমন t2.micro) ব্যবহার করতে পারি। অ্যাপ্লিকেশনটি সেখানে ডেপ্লয় করা হবে এবং API কলের মাধ্যমে বাইরের ইউজাররা তাপমাত্রার পার্থক্য জানতে পারবে। প্রতি তিন মিনিট অন্তর একটি Cron job রান করিয়ে ডেটা সংরক্ষণের কাজটি করা যাবে।
স্ট্রাকচার:
- EC2 instance: অ্যাপ্লিকেশন হোস্ট করবে।
- Cron job: প্রতি তিন মিনিট অন্তর তাপমাত্রার পার্থক্য ডেটাবেজে সেভ করবে।
প্লাস পয়েন্ট:
- EC2 instance সম্পূর্ণভাবে কাস্টমাইজ করা যায়।
- t2.micro সাধারণত ফ্রি টায়ারের মধ্যে পড়ে, যা খরচ কমাতে সাহায্য করবে।
মাইনাস পয়েন্ট:
- সার্ভার ২৪/৭ চালু রাখতে হবে, যা খরচ বাড়াতে পারে।
- স্কেল করার জন্য অতিরিক্ত ম্যানুয়াল ইন্টারভেনশন দরকার হতে পারে।
সলিউশন ২: AWS Lambda + API Gateway + setInterval()
দ্বিতীয় সমাধান হিসেবে, আমরা একটি AWS Lambda function তৈরি করতে পারি যা বাইরের API কল হ্যান্ডেল করবে। Lambda function এর সাথে একটি AWS API Gateway থাকবে যাতে বাইরের ইউজাররা API কল করতে পারে। এছাড়া, প্রতি তিন মিনিট অন্তর ডেটা সেভ করার জন্য Node.js-এর setInterval()
ফাংশন ব্যবহার করা যেতে পারে।
স্ট্রাকচার:
- Lambda function: অ্যাপ্লিকেশন এবং API হ্যান্ডেল করবে।
- API Gateway: বাইরের ইউজারদের API কল ম্যানেজ করবে।
- setInterval(): প্রতি তিন মিনিট অন্তর ডেটাবেজে ডেটা সেভ করবে।
প্লাস পয়েন্ট:
- কোনো সার্ভার মেইনটেন্যান্সের প্রয়োজন নেই, যা খরচ কমাবে।
- Lambda function তখনই বিল হবে যখন এটি ট্রিগার করা হবে, সার্বক্ষণিক সার্ভার চালানোর প্রয়োজন নেই।
মাইনাস পয়েন্ট:
setInterval()
ফাংশনের কারণে Lambda function পুরোপুরি নির্ধারিত সময়ে ট্রিগার না হতে পারে।- বেশি কল হলে বিল বাড়তে পারে।
সলিউশন ৩: AWS Lambda + API Gateway + EventBridge
এই সমাধানটি দ্বিতীয় সমাধানের অনুরূপ, তবে setInterval()
ব্যবহার করার পরিবর্তে AWS EventBridge ব্যবহার করা হবে। EventBridge প্রতি তিন মিনিট অন্তর Lambda function ট্রিগার করবে।
স্ট্রাকচার:
- Lambda function: আগের মতোই API হ্যান্ডেল করবে।
- API Gateway: বাইরের ইউজারদের ম্যানুয়াল API কল ম্যানেজ করবে।
- EventBridge: প্রতি তিন মিনিট অন্তর স্বয়ংক্রিয়ভাবে Lambda function ট্রিগার করবে।
প্লাস পয়েন্ট:
- EventBridge নির্ভুলভাবে নির্দিষ্ট সময়ে Lambda function ট্রিগার করতে সক্ষম।
- সার্ভারলেস আর্কিটেকচারের কারণে খরচ তুলনামূলকভাবে কম হতে পারে।
মাইনাস পয়েন্ট:
- যদিও খরচ কম, তবে EventBridge এবং API Gateway ব্যবহারের জন্য কিছু অ্যাডিশনাল কস্ট হতে পারে।

ফাইনাল থটস
এই তিনটি সমাধানের মধ্যে কোনটি আপনার জন্য পারফেক্ট হবে তা নির্ভর করবে আপনার বাজেট এবং অ্যাপ্লিকেশনের স্কেলিং প্রয়োজনের ওপর। যদি আপনি একেবারে ম্যানুয়াল কন্ট্রোল রাখতে চান এবং খরচ কমাতে চান, তবে সলিউশন ১ ভালো হবে। অন্যদিকে, যদি আপনি কম মেইনটেন্যান্স এবং সার্ভারলেস আর্কিটেকচারের সুবিধা চান, তবে সলিউশন ৩ সবচেয়ে কার্যকরী হবে।
আমাদের উদ্দেশ্য হলো সর্বনিম্ন খরচে সর্বোচ্চ কার্যক্ষমতা নিশ্চিত করা। আপনি কোন সমাধানটি পছন্দ করলেন? কিংবা আপনার নিজের কোনো নতুন প্রস্তাব থাকলে সেটাও শেয়ার করতে পারেন।
শেষ কথা
অ্যাপ্লিকেশন ডিজাইন করার সময় খরচ এবং কার্যকারিতার মধ্যে একটি ভালো ভারসাম্য রাখা খুবই গুরুত্বপূর্ণ। এই ছোট্ট API প্রকল্পের মাধ্যমে আমরা দেখেছি কীভাবে AWS এর বিভিন্ন সার্ভিস ব্যবহার করে অপটিমাইজড সমাধান তৈরি করা যায়। আশা করি, এই পোস্টটি আপনাকে সিস্টেম ডিজাইন সম্পর্কে কিছুটা ধারণা দিতে পেরেছে।
Trendingblogs
Get the best of our content straight to your inbox!
By submitting, you agree to our privacy policy.