Lambda এর অটো স্কেলিং কিভাবে কাজ করে?

Lambda এর স্কেলিং এবং পারফরম্যান্স অপ্টিমাইজেশন - এডাব্লিউএস ল্যাম্বডা (AWS Lambda) - Web Development

346

AWS Lambda একটি serverless সেবা, যার প্রধান সুবিধা হলো এটি স্বয়ংক্রিয়ভাবে স্কেল হয়। AWS Lambda ফাংশনগুলি ইনভোকড (triggered) হওয়ার সাথে সাথে AWS ইনফ্রাস্ট্রাকচার স্বয়ংক্রিয়ভাবে ফাংশনটির জন্য প্রয়োজনীয় রিসোর্স প্রদান করে। একাধিক কনকারেন্ট (concurrent) রিকোয়েস্ট পাওয়ার পরও Lambda ফাংশনটির কার্যক্ষমতা বা পারফরম্যান্স কমে না যায়। এই প্রক্রিয়াটিই Auto-scaling হিসেবে পরিচিত, যেখানে Lambda ফাংশনটি কোনো অতিরিক্ত ম্যানুয়াল কনফিগারেশন ছাড়াই স্বয়ংক্রিয়ভাবে স্কেল হয়।


Lambda এর অটো স্কেলিং কিভাবে কাজ করে?

Lambda ফাংশনের অটো স্কেলিং প্রধানত concurrency এবং event-driven architecture এর ওপর ভিত্তি করে কাজ করে। Lambda ফাংশন যখন ট্রিগার হয়, তখন AWS এর ইনফ্রাস্ট্রাকচার স্বয়ংক্রিয়ভাবে প্রয়োজনীয় রিসোর্স তৈরি করে এবং ফাংশনটি একটি নতুন execution environment এ রান করাতে শুরু করে।


1. Concurrency (একসাথে একাধিক রিকোয়েস্টের প্রসেসিং)

Lambda ফাংশনগুলোর জন্য নির্দিষ্ট concurrency সীমা থাকে, যার মাধ্যমে AWS Lambda স্বয়ংক্রিয়ভাবে ফাংশনটির কনকারেন্ট রিকোয়েস্ট (একসাথে আসা রিকোয়েস্ট) প্রসেস করতে সক্ষম হয়। যখন Lambda ফাংশনটি কোন ইভেন্ট বা রিকোয়েস্ট দ্বারা ট্রিগার হয়, তখন AWS Lambda একটি নতুন execution environment তৈরি করে, এবং সেই environment এ ফাংশনটি চালানো হয়।

  • Dynamic Scaling: Lambda ফাংশনগুলির জন্য স্কেলিং খুবই ডাইনামিক (dynamic)। যদি অনেক রিকোয়েস্ট আসে, তবে Lambda আরো execution environments তৈরি করবে যতক্ষণ না তা সব রিকোয়েস্ট প্রসেস করতে পারে।
  • Concurrency Limit: AWS Lambda সেবা প্রতিটি অ্যাকাউন্টের জন্য একটি default concurrency limit নির্ধারণ করে, যা প্রতিটি সময়ের মধ্যে Lambda ফাংশনের সর্বোচ্চ ইনভোকেশনের সংখ্যা নির্ধারণ করে।

2. Event-driven Model (ইভেন্ট-ড্রিভেন মডেল)

AWS Lambda একে অপরের সাথে ইভেন্ট-ড্রিভেন (event-driven) মডেলে কাজ করে। মানে, Lambda ফাংশন কেবলমাত্র তখনই রান হয় যখন একটি নির্দিষ্ট ইভেন্ট ঘটে, যেমন একটি S3 বকেটে ফাইল আপলোড, API Gateway থেকে HTTP রিকোয়েস্ট বা DynamoDB টেবিলের মধ্যে ডেটা ইনসার্ট। এই ধরনের ইভেন্টের স্রোত খুব সহজেই স্কেল করতে পারে, কারণ Lambda নিজেই সেগুলোর মধ্যে সমান্তরালভাবে কাজ করতে পারে।

এছাড়া, AWS Event Sources (যেমন S3, DynamoDB Streams, Kinesis, SNS, SQS) Lambda ফাংশনকে ট্রিগার করে এবং যখনই একটি ইভেন্ট ঘটে, Lambda স্বয়ংক্রিয়ভাবে প্রক্রিয়াকরণ শুরু করে। একাধিক ইভেন্টের উপস্থিতি Lambda কে স্বয়ংক্রিয়ভাবে স্কেলিংয়ের মাধ্যমে সমান্তরাল কাজ করতে সাহায্য করে।


3. Auto Scalingের সুবিধা

AWS Lambda এর auto-scaling সিস্টেমের কারণে এটি অনেক সুবিধা প্রদান করে:

1. নো ম্যানুয়াল স্কেলিং কনফিগারেশন:

AWS Lambda স্বয়ংক্রিয়ভাবে স্কেল হয়, তাই কোনো ম্যানুয়াল স্কেলিং কনফিগারেশন বা ইন্সট্যান্স কাস্টমাইজেশন করতে হয় না। Lambda ট্রাফিকের পরিমাণ অনুযায়ী নিজেই স্কেল হয় এবং যখন কম ট্রাফিক থাকে তখন স্কেল ডাউন হয়।

2. কনকারেন্ট রিকোয়েস্ট প্রসেসিং:

Lambda ফাংশন একাধিক রিকোয়েস্টকে একসাথে প্রসেস করতে পারে। যখন অনেক কনকারেন্ট রিকোয়েস্ট আসে, Lambda আরো ইন্টারনাল রিসোর্স তৈরি করে, যাতে একেকটি রিকোয়েস্ট আলাদাভাবে প্রসেস করা যায়। এর ফলে, লোড বাড়লেও Lambda এর পারফরম্যান্স কমে না এবং দ্রুত কাজ সম্পাদন করতে পারে।

3. বিলিং এফিসিয়েন্সি:

Lambda এর auto-scaling মডেলটি কেবলমাত্র তখন স্কেল করে যখন ইভেন্টটি ঘটে। এর মানে হলো, আপনি শুধু যখন Lambda ফাংশনটি কাজ করবে, তখনই চার্জ করবেন। যদি কোনো রিকোয়েস্ট না আসে, Lambda স্কেল হবে না এবং আপনাকে বিলিংয়ের জন্য অর্থ খরচ করতে হবে না।


4. Concurrency Limits (কনকারেন্ট লিমিটস)

যদিও Lambda ফাংশন স্বয়ংক্রিয়ভাবে স্কেল হয়, তবে AWS Lambda এর কিছু নির্দিষ্ট সীমাবদ্ধতা রয়েছে, যা আপনাকে স্কেলিং এর সময়ে বিবেচনা করতে হবে:

Default Concurrency Limit:

  • প্রতিটি অ্যাকাউন্টে একটি default concurrency limit থাকে। এটি হলো, একে একে সর্বোচ্চ কত Lambda ফাংশন একসাথে চলতে পারে। সাধারণত, এই লিমিটটি 1000 কনকারেন্ট রিকোয়েস্ট থাকে। তবে আপনি চাইলে এই লিমিট বাড়ানোর জন্য AWS Support এর সাথে যোগাযোগ করতে পারেন।

Reserved Concurrency:

  • আপনি চাইলে একটি নির্দিষ্ট Lambda ফাংশনের জন্য Reserved Concurrency সেট করতে পারেন, যা নির্দিষ্ট করে দেয় যে, ওই ফাংশনটি সর্বোচ্চ কত রিকোয়েস্ট একসাথে প্রসেস করতে পারবে। এটি আপনাকে একাধিক ফাংশনের কনকারেন্ট প্রসেসিং কনফিগার করতে সাহায্য করে।

Throttling:

যদি Lambda ফাংশন কনকারেন্ট রিকোয়েস্ট সীমা অতিক্রম করে, তবে সিস্টেমটি নতুন রিকোয়েস্ট থ্রটল (throttle) করতে পারে। অর্থাৎ, নতুন রিকোয়েস্টগুলো এক্সিকিউট না হয়ে ফিরে আসবে (ইতিহাসগত ত্রুটি হিসেবে)।


5. Auto-scaling মডেল এবং AWS Services এর সাথে ইন্টিগ্রেশন

AWS Lambda এর অটো স্কেলিং আরও ভালোভাবে কাজ করতে পারে যদি এটি অন্য AWS সেবার সাথে একত্রিত করা হয়। যেমন:

  • Amazon SQS (Simple Queue Service): একাধিক কনকারেন্ট রিকোয়েস্ট বা ইভেন্ট সিঙ্ক্রোনাসলি আসলে SQS ব্যবহার করে সেগুলিকে ব্যাচে বা কোডের মাধ্যমে প্রসেস করতে পারেন।
  • Amazon Kinesis: Kinesis Streams এর মাধ্যমে বড় ডেটাসেট বা স্ট্রিমিং ডেটা প্রক্রিয়া করা যায় এবং Lambda স্বয়ংক্রিয়ভাবে সেগুলো প্রসেস করতে পারে।
  • AWS Step Functions: যদি Lambda ফাংশনটি কোনো স্টেপ-ভিত্তিক প্রসেসিং প্রক্রিয়াতে অংশ নেয়, তবে Step Functions ব্যবহার করে একাধিক ফাংশনের সমন্বয় করা যায়।

সারাংশ

AWS Lambda এর অটো স্কেলিং সিস্টেম সঠিকভাবে কাজ করার জন্য Concurrency, Event-driven Architecture, এবং AWS Service Integration উপর নির্ভর করে। Lambda যখন কোন ইভেন্ট ট্রিগার হয়, তখন এটি স্বয়ংক্রিয়ভাবে স্কেল হয় এবং প্রয়োজনীয় রিসোর্স সরবরাহ করে। এটি কোনো অতিরিক্ত ম্যানুয়াল কনফিগারেশন ছাড়াই স্কেল করে এবং আপনার Lambda ফাংশনকে বিভিন্ন ট্রাফিক লোডের সাথে উপযুক্তভাবে কাজ করতে সক্ষম করে।

Content added By
Promotion

Are you sure to start over?

Loading...