Ravindra BagaleCourses & study guides English

AWS Lambda म्हणजे काय? Serverless सोप्या भाषेत Examples सह

तुम्ही आठवडे EC2 वर code चालवत आहात. API ला कोणी dial नाही तरी server चालूच असतो. CPU, disk आणि public IP चे पैसे जातात. हा chapter दुसरा मार्ग दाखवतो: छोटी function upload करा, आणि काही घडल्यावरच AWS ती चालवतो. हाच AWS Lambda.

या chapter मध्ये तुम्ही काय शिकाल

  • दिवसभर server चालू ठेवणं अनेकदा वाया का
  • Serverless, function, trigger आणि event म्हणजे काय
  • Lambda vs EC2 vs containers — कधी कोणतं
  • Pricing, free tier आणि hard limits (15 min, memory, package)
  • छोटा lab: Lambda console मधून Hello चालवा

1. गोष्ट: कधी न विझणारा bakery चा दिवा

Ravi छोटी bakery site चालवतो. Orders बहुतेक सकाळी 7 ते रात्री 10. रात्री 3 ला जवळजवळ कोणी order करत नाही. तरी एक EC2 रात्रभर चालतो. Idle hours चे पैसे जातात.

त्याला खरं हवं आहे: order आला की थोडा code चालवा; काही नाही तर जवळजवळ पैसे नाही. हीच कल्पना serverless. AWS Lambda ही AWS वरची मुख्य serverless compute service.

2. Serverless म्हणजे काय आणि Lambda काय?

हे का लागतं?

Servers विकत घेणं, patch करणं आणि बघणं हे काम तुमची app चांगली करत नाही. Event ने सुरू होणाऱ्या छोट्या कामांसाठी servers AWS कडे ठेवायला हवेत.

हे काय आहे?

Serverless म्हणजे "servers नाहीत" असं नाही. तुम्ही manage करत नाही एवढंच. AWS ला code द्या; AWS machine शोधतो, code चालवतो, मग machine मोकळी करतो.

AWS Lambda ही service event आल्यावर तुमची function चालवते. Requests किती आणि code किती वेळ चालला (GB-seconds) याचे पैसे. Idle time मोफत.

Wordअर्थKitchen उदाहरण
Functionतुमचा code आणि settings (runtime, memory, timeout)Recipe कार्ड
TriggerFunction सुरू करणारी serviceDoorbell
EventTrigger पाठवलेला JSON dataकोण आलं आणि काय हवं
Execution roleAWS APIs call करण्यासाठी Lambda घेतलेला IAM roleKitchen च्या चाव्या
InvocationFunction चा एक runएक order cook
एक Lambda requestEvent येतोS3 / API / schedule / queueLambda warm किंवानवीन microVM शोधतोतुमचा handlerevent JSON सह चालवतोLogs CloudWatch Logsमध्ये लिहितोResult परतकिंवा failure वर retry
तुम्ही SSH करत नाही. Machine AWS ची.

3. Lambda vs EC2 vs containers

हे का लागतं?

Interview आणि खरे designs मध्ये हे पहिले विचारतात. चुकीचं निवडलं तर पैसे वाया किंवा Lambda limits लागतात.

हे काय आहे?

NeedPreferका
HTTP API, छोट्या requests, कमी/बदलणारा trafficLambda + API GatewayIdle cost नाही; zero पर्यंत scale
लांब jobs, custom kernel, GPU, always-on websocketEC2OS आणि process वर पूर्ण control
एकच app अनेक ठिकाणी, packing हवं, minutes+ECS / EKS / App RunnerContainers फिरतात; जास्त runtime
Cron जो EC2 start/stop किंवा S3 clean करतोLambda + EventBridgeSeconds चं काम; server ठेवायची गरज नाही
दर S3 upload वर image resizeLambdaEvent-driven; दर image पैसे

Ravindra Bagale's Tip

Lambda छोट्या APIs आणि glue साठी उत्तम. 2-तास video encode किंवा sticky in-memory game server साठी वाईट.

4. Pricing, free tier आणि hard limits

हे का लागतं?

Limits ठरवतात कल्पना बसते का. Pricing ठरवतं वाढल्यावर स्वस्त राहतं का.

हे काय आहे?

  • Always-free tier (दर महिना, प्रत्येक account): 1 million requests आणि 400,000 GB-seconds compute.
  • Free tier नंतर requests आणि duration × memory (GB-seconds) चे पैसे. जास्त memory = जास्त CPU.
  • Hard timeout: सामान्य functions साठी प्रति invocation 900 seconds (15 minutes).
  • Memory: 128 MB ते 10,240 MB (1 MB steps). साधारण 1,769 MB ला एक पूर्ण vCPU.
  • Deployment package: console/API upload ने 50 MB zipped; layers सह unzipped 250 MB. मोठे zips S3 मधून. Container images 10 GB पर्यंत.
  • Sync payload ~6 MB request/response; async ~1 MB. Environment variables एकूण 4 KB. Layers 5 पर्यंत.

उदाहरण: 512 MB function 200 ms चालते, दशलक्ष वेळा. Duration = 0.2 × 0.5 × 1,000,000 = 100,000 GB-seconds — free 400,000 च्या आत. अनेक student projects free राहतात.

5. वेगवेगळ्या stacks मधली उदाहरणे

  1. EC2 वर Python Flask → /resize route Lambda + API Gateway वर; admin UI EC2 वरच.
  2. Node.js Express image API → दर route एक Lambda किंवा router सह एक Lambda.
  3. Java Spring Boot रात्रीचा batch → EventBridge cron Lambda trigger करतो; जड भाग ECS task.
  4. .NET 8 minimal API → Amazon.Lambda.AspNetCoreServer package सह Lambda.
  5. SQS drain करणारा Go worker → SQS event source mapping सह Lambda; polling loop लिहिण्याची गरज नाही.
  6. PHP Laravel queued jobs → बहुतेक EC2/ECS वर; S3 event hooks आणि webhooks साठी Lambda.

6. Lab: Lambda console मधून Hello

कसं करायचं (step by step)

Region: ap-south-1 (Mumbai). AWS account हवा. Laptop tools नको.

  1. AWS Console → Lambda शोधा → Functions → Create function.
  2. Author from scratch निवडा. Function name: hello-lambda-lab.
  3. Runtime: Python 3.12 (किंवा दिसणारी नवीन Python 3.x). Architecture: x86_64.
  4. Permissions: Create a new role with basic Lambda permissions ठेवा. का: Logs CloudWatch मध्ये लिहायला role हवा.
  5. Create function क्लिक. Code editor येईपर्यंत थांबा.
  6. Handler body बदला:
def lambda_handler(event, context):
    name = (event or {}).get("name", "world")
    return {"statusCode": 200, "body": f"hello, {name}"}
  1. Deploy क्लिक. का: Deploy शिवाय edits live होत नाहीत.
  2. Tab Test → Create new event → name hello-event → event JSON:
{"name": "Ravi"}
  1. Save → Test. अपेक्षित: statusCode 200 आणि body hello, Ravi, हिरवे success box duration सह.
  2. Monitor → View CloudWatch logs. नवीन log stream उघडा. START, return, END, REPORT दिसावे.
  3. Configuration → General configuration → Edit. Timeout 10 seconds, Memory 256 MB. Save. का: default 3 s खरा कामाला कमी; 128 MB imports साठी अनेकदा slow.

Cleanup

  1. Lambda → Functions → hello-lambda-lab → Actions → Delete. Confirm.
  2. IAM → Roles → hello-lambda-lab-role-... सारखा role न वापरला असेल तर delete.

7. Interview questions

प्र. AWS Lambda म्हणजे काय?

Serverless compute service. Function upload करा; event आल्यावर AWS चालवतो आणि request व duration नुसार पैसे घेतो.

प्र. Function vs trigger vs event?

Function = तुमचा code. Trigger = काय सुरू करतं. Event = त्या run साठीचा JSON.

प्र. Max timeout?

सामान्य Lambda invocation साठी 15 minutes (900 seconds).

प्र. Lambda vs EC2 एका line मध्ये?

Lambda: servers manage नको, zero पर्यंत scale, छोटी tasks. EC2: OS तुम्ही, long-running आणि special hardware.

प्र. Free tier काय?

दर महिना 1 million requests आणि 400,000 GB-seconds.

प्र. Execution role का?

Function त्या IAM role ने CloudWatch Logs, S3 सारख्या AWS APIs call करते. नसेल तर logging सुद्धा fail.

घरी करून बघा

  1. तीच Hello function Node.js 20.x मध्ये बनवा, तोच test event.
  2. Memory 128 वरून 1024 MB करा आणि त्याच event ची billed duration compare करा.

थोडक्यात सांगायचं तर

  1. Serverless = servers तुम्ही manage करत नाही; AWS करतो.
  2. Event आल्यावरच Lambda function चालवतो.
  3. Requests + GB-seconds चे पैसे; free tier अनेक labs पुरवतो.
  4. Hard limits: 15 min, 10 GB memory, 50 MB zip (250 MB unzipped).
  5. छोट्या event-driven कामासाठी Lambda; लांब/special साठी EC2/containers.

सराव Tasks

या scenario बद्दल

Paris Fashion Hub हा पॅरिस मधला फॅशन व्यवसाय आहे. Camille Laurent त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे EUR मध्ये मोजले जातात आणि AWS resources eu-west-3 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 12

सोपं Functions ची list

का: या Region मध्ये कोणते functions आहेत ते पाहा.

काय करायचं: eu-west-3 मधले Lambda functions दाखवा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Function invoke करा

का: Invoke function आत्ता चालवतो व उत्तर file मध्ये ठेवतो.

काय करायचं: parisfashion-orders-fn invoke करा व response out.json मध्ये ठेवा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Lambda role साठी trust policy

का: Trust policy role कोण घेऊ शकतो ते सांगते.

काय करायचं: lambda.amazonaws.com ला role assume करू देणारी trust policy लिहा.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

मध्यम Timeout व memory बदला

का: जास्त memory म्हणजे जास्त CPU; timeout अडकलेले runs थांबवतो.

काय करायचं: parisfashion-orders-fn चा timeout 30 seconds व memory 512 MB करा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Function ला logs लिहू द्या

का: या actions शिवाय Lambda logs CloudWatch मध्ये दिसत नाहीत.

काय करायचं: फक्त arn:aws:logs:*:*:* वर logs:CreateLogGroup, logs:CreateLogStream, logs:PutLogEvents allow करा.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

मध्यम Logs live पाहा

का: aws logs tail --follow म्हणजे CloudWatch Logs साठी tail -f.

काय करायचं: /aws/lambda/parisfashion-orders-fn log group live follow करा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड Lambda function बनवा

का: Lambda ला code zip, runtime, handler नाव व execution role लागतो.

काय करायचं: parisfashion-orders-fn function बनवा: runtime python3.12, handler app.handler, role arn:aws:iam::121178088922:role/lambda-basic, code function.zip मध्ये.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड Environment variables द्या

का: Table नावांसारख्या settings code बाहेर ठेवा.

काय करायचं: parisfashion-orders-fn वर environment variable TABLE=parisfashion-orders द्या.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड JSON payload सह invoke करा

का: CLI v2 मध्ये raw JSON साठी --cli-binary-format raw-in-base64-out लागतो.

काय करायचं: parisfashion-orders-fn ला payload {"orderId":"o-101"} (raw JSON) सह invoke करा व उत्तर out.json मध्ये.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड Lambda GB-seconds

का: Lambda memory × time bill करतो.

काय करायचं: 1,000,000 invocations, 512 MB, प्रत्येकी 200 ms. किती GB-seconds?

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

अवघड SQS queue Lambda ला जोडा

का: Event source mapping मुळे Lambda queue poll करून batches मध्ये messages process करतो.

काय करायचं: Queue arn:aws:sqs:eu-west-3:121178088922:parisfashion-orders पासून parisfashion-orders-fn ला batch size 10 सह event source mapping बनवा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड S3 ला function call करू द्या

का: S3 function invoke करण्याआधी resource-based permission लागते.

काय करायचं: parisfashion-orders-fn ला s3invoke permission statement द्या: s3.amazonaws.com ने bucket arn:aws:s3:::parisfashion-uploads कडून lambda:InvokeFunction करावं.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

उजळणी, तुलना आणि मुलाखत cards

हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.

उजळणी card: AWS Lambda म्हणजे काय?. रात्रभर उघडी bakery पण ग्राहक नसतील तरी भाडं लागतं. Always-on servers तसंच पैसे वाया घालवतात. Lambda तुमचा code फक्त event आल्यावर चालवतो. Requests आणि duration चे पैसे; idle hours नाहीत. छोटी function लिहा, runtime आणि role सेट करा, मग trigger जोडा (S3, API Gateway, schedule…). S3 वर photo → Lambda सेकंदात thumbnail → पुन्हा idle.
उजळणी card: AWS Lambda म्हणजे काय? · PNG download करा · Card page उघडा
उजळणी card: Function, trigger आणि event. तीन शब्द class मध्ये सारखे वाटतात. स्पष्ट नावं console मध्ये गोंधळ थांबवतात. Function = तुमचा code. Trigger = काय चालू करतं. Event = मिळणारा JSON payload. Function › Configuration › Triggers. Sample event JSON ने Test करा. API Gateway POST /orders → event मध्ये method, path, body.
उजळणी card: Function, trigger आणि event · PNG download करा · Card page उघडा
उजळणी card: Lambda vs EC2 vs containers. चुकीचं compute निवडलं की नंतर bill किंवा limits शी झगडा. EC2 = तुम्ही server. Containers = package + orchestrate. Lambda = code upload, AWS चालवतो. थोड्या event कामासाठी Lambda. लांब jobs, GPU, special OS साठी EC2/containers. 15-minute video encode → EC2/ECS. Upload वर एक image resize → Lambda.
उजळणी card: Lambda vs EC2 vs containers · PNG download करा · Card page उघडा
उजळणी card: Lambda limits आणि free tier. Limit वर आश्चर्य demo day वाया घालवतं. Hard caps आधीच माहीत असावेत. Timeout max 15 minutes. Memory 128–10,240 MB. Zip 50 MB; unzipped 250 MB. Free tier: सुमारे 1 million requests आणि 400,000 GB-seconds / month. 256 MB × 1 s = 0.25 GB-s. Lab traffic सहसा free.
उजळणी card: Lambda limits आणि free tier · PNG download करा · Card page उघडा
तुलना: AWS Lambda vs Amazon EC2. AWS Lambda: तुम्ही code upload; AWS चालवतो आणि scale करतो. Amazon EC2: तुम्ही virtual server निवड, patch, size.
तुलना: AWS Lambda vs Amazon EC2 · PNG download करा · Card page उघडा
तुलना: AWS Lambda vs Containers (ECS/EKS). AWS Lambda: Function ची zip/image. Containers (ECS/EKS): Orchestrate करायची पूर्ण app image.
तुलना: AWS Lambda vs Containers (ECS/EKS) · PNG download करा · Card page उघडा
मुलाखत card: Servers असूनही serverless म्हणजे काय?. Servers तरी चालतात, पण patching, scaling, capacity AWS ची जबाबदारी. तुम्ही functions आणि events वर लक्ष; रात्री 2 ला OS updates नाहीत. उदा.: S3 uploads वर Lambda scale; boxes जोडायला SSH नाही.
मुलाखत card: Servers असूनही serverless म्हणजे काय? · PNG download करा · Card page उघडा
मुलाखत card: Lambda ऐवजी EC2 कधी निवडाल?. 15 minutes पेक्षा लांब काम, GPU, custom kernel, sticky local state. Hard timeout आणि package limits मुळे ते workloads खराब बसतात. ML model तासांनी GPU वर; Lambda फक्त job start करणाऱ्या API साठी.
मुलाखत card: Lambda ऐवजी EC2 कधी निवडाल? · PNG download करा · Card page उघडा
मुलाखत card: Lambda execution role म्हणजे काय?. Function जे IAM role assume करते जेणेकरून AWS APIs call करता येतील. त्याशिवाय CloudWatch Logs पण fail. फक्त गरजेच्या actions ला least privilege. आधी AWSLambdaBasicExecutionRole; S3/DynamoDB नंतर गरजसे.
मुलाखत card: Lambda execution role म्हणजे काय? · PNG download करा · Card page उघडा
मुलाखत card: Lambda चे बिल कसं?. प्रति request आणि GB-seconds: memory × duration. Idle EC2 सारखं बिल नाही. Cold start पण duration मध्ये. CPU-bound असेल तर memory वाढवा; वेळ कमी होऊन खर्च कमी होऊ शकतो.
मुलाखत card: Lambda चे बिल कसं? · PNG download करा · Card page उघडा

अजून cards: Ravi Sir's Cards.