AWS Lambda এর কনকারেন্সি কনফিগারেশন Lambda ফাংশনের একসাথে রান করার সক্ষমতা নির্ধারণ করে। এটি একটি গুরুত্বপূর্ণ পারফরম্যান্স প্রোপার্টি যা Lambda ফাংশনটি একসাথে কতগুলো রিকোয়েস্ট প্রসেস করতে পারে তা নিয়ন্ত্রণ করে।
Lambda কনকারেন্সি বুঝতে হলে, কিছু গুরুত্বপূর্ণ বিষয় যেমন Reserved Concurrency, Provisioned Concurrency, এবং Concurrent Executions সম্পর্কে জানাটা প্রয়োজন। এই কনফিগারেশনগুলির সঠিক ব্যবহার Lambda ফাংশনের পারফরম্যান্স ও স্কেলেবিলিটি বাড়াতে সাহায্য করে।
Lambda কনকারেন্সি কি?
কনকারেন্সি (Concurrency) বলতে বোঝায়, Lambda ফাংশনের একাধিক ইনস্ট্যান্স একই সময়ে প্রসেস করতে সক্ষম। যখন Lambda ফাংশনটি একাধিক রিকোয়েস্টের জন্য ট্রিগার হয়, তখন AWS Lambda ঐ ফাংশনটির বিভিন্ন ইনস্ট্যান্স তৈরি করে, এবং সেই ইনস্ট্যান্সগুলো একসাথে রিকোয়েস্টগুলো প্রক্রিয়া করে। কনকারেন্সি মানে হল, Lambda ফাংশনটি একসাথে কতগুলো রিকোয়েস্ট এক্সিকিউট করতে পারবে।
Lambda কনকারেন্সি কনফিগারেশন এর ধরন
Lambda কনকারেন্সি কনফিগারেশনের মূল দুটি ধরন হল:
- Reserved Concurrency
- Provisioned Concurrency
1. Reserved Concurrency
Reserved Concurrency কনফিগারেশন ব্যবহার করে, আপনি একটি নির্দিষ্ট সংখ্যা নির্ধারণ করতে পারেন, যার মধ্যে Lambda ফাংশনটি একসাথে রান করবে। এর মাধ্যমে আপনি Lambda ফাংশনটির জন্য একটি নির্দিষ্ট কনকারেন্সি বরাদ্দ করতে পারেন, যাতে ফাংশনটি একাধিক রিকোয়েস্ট প্রসেস করার জন্য যথেষ্ট ক্ষমতা পায়, কিন্তু একাধিক Lambda ফাংশন একে অপরের কনকারেন্সি শেয়ার করে না।
সুবিধা:
- শেডুলড কাজের জন্য উপকারী: আপনি যখন নিশ্চিত করতে চান যে, আপনার Lambda ফাংশনটি একটি নির্দিষ্ট সংখ্যক কনকারেন্সির সঙ্গে কার্যকরভাবে কাজ করবে।
- থ্রটলিং থেকে রক্ষা: আপনাকে যদি অন্য Lambda ফাংশনের সাথে কনকারেন্সি শেয়ার না করতে হয়, তবে এটি উপকারী।
কনফিগারেশন:
Reserved Concurrency কনফিগার করার জন্য AWS Management Console ব্যবহার করতে পারেন।
- Lambda Console এ যান।
- ফাংশন নির্বাচন করুন।
- Concurrency ট্যাব থেকে Reserved concurrency সিলেক্ট করুন।
- একটি নির্দিষ্ট কনকারেন্সি সংখ্যা নির্ধারণ করুন (যেমন, 10, 20 ইত্যাদি)।
- Save ক্লিক করুন।
এটি করলে Lambda ফাংশনটি সর্বোচ্চ নির্ধারিত কনকারেন্সি সংখ্যার সাথে একসাথে প্রসেস করতে পারবে।
2. Provisioned Concurrency
Provisioned Concurrency হল একটি পেমেন্ট-প্ল্যান যা আপনাকে Lambda ফাংশনের জন্য একটি নির্দিষ্ট সংখ্যক পূর্বনির্ধারিত ইনস্ট্যান্স তৈরি করতে দেয়। এটি Lambda ফাংশনের একটি নির্দিষ্ট সংখ্যক ইনস্ট্যান্সের জন্য সর্বদা প্রস্তুত থাকে, যেগুলো একসাথে রিকোয়েস্ট প্রক্রিয়া করতে পারে, এবং এটি থ্রটলিং বা লেটেন্সি হ্রাস করতে সাহায্য করে।
সুবিধা:
- নির্ধারিত লেটেন্সি: যদি আপনার Lambda ফাংশনটি বিশেষ করে সংবেদনশীল লেটেন্সি বা সময়ের উপর নির্ভরশীল হয় (যেমন API গেটওয়ে), তাহলে Provisioned Concurrency ব্যবহার করে এটি কমানো যায়।
- উচ্চ পারফরম্যান্স: স্বাভাবিক কনকারেন্সির তুলনায় উচ্চতর পারফরম্যান্স নিশ্চিত করে, কারণ Lambda ফাংশনের ইনস্ট্যান্স প্রস্তুত থাকে এবং সেগুলো একসাথে দ্রুত কাজ করতে পারে।
কনফিগারেশন:
Provisioned Concurrency কনফিগার করার জন্য:
- Lambda Console এ যান।
- আপনার Lambda ফাংশন নির্বাচন করুন।
- Configuration ট্যাবে গিয়ে Concurrency নির্বাচন করুন।
- Provisioned Concurrency সিলেক্ট করুন এবং সংখ্যা নির্ধারণ করুন (যেমন, 10, 50, 100 ইত্যাদি)।
- Save ক্লিক করুন।
এটি Lambda ফাংশনটির জন্য নির্দিষ্ট ইনস্ট্যান্স প্রস্তুত রাখবে এবং সেই ইনস্ট্যান্সগুলো রিকোয়েস্ট গ্রহণ করতে থাকবে।
3. Concurrent Executions এবং Account-Level Limits
AWS Lambda একটি অ্যাকাউন্টে সর্বোচ্চ কনকারেন্সি সংখ্যা বরাদ্দ করে থাকে। এটি একসাথে রান করা Lambda ফাংশনের সর্বোচ্চ সংখ্যা সীমাবদ্ধ করে। সাধারণত AWS Lambda অ্যাকাউন্টের জন্য 1,000 কনকারেন্সি বরাদ্দ থাকে, কিন্তু এটি আপনি অ্যাকাউন্ট লেভেলে পরিবর্তন করতে পারবেন।
সাধারণ কারণ:
- ভলিউম বেসড অ্যাপ্লিকেশন: যদি আপনার অ্যাপ্লিকেশন বা সার্ভিসটি অনেক বেশি রিকোয়েস্ট গ্রহণ করে, তবে আপনার অ্যাকাউন্টের কনকারেন্সি সীমা বৃদ্ধি করা দরকার হতে পারে।
- ধীর লেটেন্সি এবং থ্রটলিং সমস্যা: কনকারেন্সি সীমা অতিক্রম করলে লেটেন্সি বৃদ্ধি পায় এবং থ্রটলিং শুরু হয়।
কনফিগারেশন:
কনকারেন্সি সীমা বাড়ানোর জন্য আপনাকে AWS Support এর মাধ্যমে অনুরোধ করতে হবে।
কনকারেন্সি কনফিগারেশনের ভাল অভ্যাস
- Provisioned Concurrency ব্যবহার করুন যখন নির্দিষ্ট লেটেন্সি দরকার: যদি আপনার Lambda ফাংশনটি খুব কম সময়ে রেসপন্স করতে হয়, যেমন API গেটওয়ে রিকোয়েস্ট হ্যান্ডলিং, তাহলে Provisioned Concurrency ভাল কাজ করে।
- Reserved Concurrency ব্যবহার করুন যখন নির্দিষ্ট রিসোর্স বরাদ্দের প্রয়োজন: কোনো Lambda ফাংশন যদি নির্দিষ্ট কনকারেন্সি প্রয়োজন, তাহলে Reserved Concurrency সেট করা যেতে পারে, যেমন একটি ব্যাচ প্রসেসিং টাস্ক যেখানে নির্দিষ্ট সংখ্যক ইনস্ট্যান্স ব্যবহার করা প্রয়োজন।
- Account-Level Limits মনিটর করুন: অ্যাকাউন্ট লেভেল কনকারেন্সি সীমার মধ্যে থাকুন, যদি তা অতিক্রম করেন তবে আপনার Lambda ফাংশন থ্রটলড হবে এবং এটির পারফরম্যান্স কমে যাবে।
- CloudWatch ব্যবহার করুন: Lambda কনকারেন্সির পারফরম্যান্স মনিটর করতে AWS CloudWatch ব্যবহার করুন, যা আপনাকে কনকারেন্সির ট্র্যাকিং এবং লোড সমন্বয়ের সুবিধা দেয়।
সারাংশ
Lambda ফাংশনের কনকারেন্সি কনফিগারেশন আপনাকে Lambda ফাংশনের একসাথে কাজ করার সক্ষমতা নিয়ন্ত্রণ করতে সাহায্য করে। Reserved Concurrency আপনাকে একটি নির্দিষ্ট সংখ্যক কনকারেন্সি বরাদ্দ করতে দেয়, আর Provisioned Concurrency নিশ্চিত করে যে Lambda ফাংশনটির জন্য নির্দিষ্ট ইনস্ট্যান্স সবসময় প্রস্তুত থাকবে। এই কনফিগারেশনগুলো ব্যবহার করে আপনি Lambda ফাংশনের পারফরম্যান্স, স্কেলেবিলিটি এবং লেটেন্সি নিয়ন্ত্রণ করতে পারেন।
Read more