Amazon API Gateway म्हणजे काय? REST vs HTTP vs WebSocket
तुमची Lambda Test बटणाने चालते. Browser आणि mobile ते बटण call करू शकत नाहीत. त्यांना HTTPS URL, /notes सारखे routes, GET/POST methods हवेत. Amazon API Gateway तो front door. हा chapter REST vs HTTP vs WebSocket आणि Lambda एकटी का expose करू नये हे सांगतो.
या chapter मध्ये तुम्ही काय शिकाल
- Public HTTPS front door का लागतो
- API Gateway काय आहे
- REST vs HTTP vs WebSocket APIs
- Routes, methods आणि stages
- Interview मध्ये वापरता येणारा comparison table
1. गोष्ट: काउंटर नसलेली दुकान
Aniket ने आजची menu JSON देणारी Lambda बनवली. React app मध्ये Lambda invoke URL paste केली. Fail: CORS, auth अवघड, URL तात्पुरत्या SDK endpoint सारखी. इतर network वरील friends नीट call करू शकले नाहीत.
त्याने पुढे API Gateway ठेवला. आता app https://api.hisdomain.com/menu call करते. Gateway route तपासतो, HTTPS, API keys/JWT, मगच Lambda invoke.
2. Amazon API Gateway म्हणजे काय?
हे का लागतं?
Lambda = compute. पूर्ण HTTP product नाही. Edge वर TLS, routing, throttling आणि बहुतेकदा auth हवं.
हे काय आहे?
Amazon API Gateway म्हणजे APIs साठी managed front door. Clients HTTP(S) किंवा WebSocket Gateway कडे पाठवतात; Gateway Lambda, HTTP backends किंवा इतर AWS services कडे पाठवतो.
3. REST vs HTTP vs WebSocket
हे का लागतं?
API Gateway छत्राखाली तीन API products. चुकीचं निवडलं तर पैसे जास्त किंवा feature मिळत नाही.
हे काय आहे?
| Feature | HTTP API | REST API | WebSocket API |
|---|---|---|---|
| Best for | सोपे Lambda/HTTP proxies, कमी खर्च, कमी latency | API keys, usage plans, validation, WAF, private APIs, caching | Chat, live dashboards, games — दीर्घ connections |
| HTTPS routes | Yes | Yes | WebSocket वर upgrade |
| API keys + usage plans | No | Yes | No |
| AWS WAF | No | Yes | No |
| JWT / OIDC authorizer | Yes | Yes (also Lambda authorizer) | Yes (some options) |
| Price (अंदाजे, us-east-1) | सुमारे $1.00 / million (पहिला tier) | सुमारे $3.50 / million (पहिला tier) | Messages + connection minutes |
| नव्या serverless APIs साठी default | हो, REST-only features नसतील तर | API management features हव्यात तेव्हा | Client कडे push हवं तेव्हा |
Ravindra Bagale's Tip
बहुतेक student/startup serverless APIs साठी HTTP API ने सुरू करा. API keys, usage plans, WAF किंवा private API हवे असल्यास REST.
4. Routes, methods आणि stages
हे काय आहे?
- Route = path pattern, उदा.
GET /notesकिंवाGET /notes/{id}. - Method = GET, POST, PUT, PATCH, DELETE, OPTIONS.
- Integration = Gateway request कुठे पाठवतो (Lambda proxy सामान्य).
- Stage = API ची named copy, उदा.
dev/prod, स्वतःची URL आणि throttling. HTTP APIs सहसा$defaultstage.
Lambda proxy integration म्हणजे Gateway पूर्ण HTTP request JSON म्हणून Lambda ला देतो, आणि function statusCode, headers, body परत करते. पुढच्या chapter च्या lab मध्ये हाच pattern.
5. Browser मधून Lambda थेट का call करू नये?
- Gateway इतकी स्वच्छ स्थिर/custom domain story नाही.
- Auth, throttling, API keys, WAF Gateway कडे (विशेषतः REST).
- Browser मध्ये AWS credentials किंवा जटिल signing — security smell.
- CORS आणि HTTP semantics Gateway वर सोपे.
6. Interview questions
प्र. API Gateway म्हणजे?
HTTP आणि WebSocket APIs साठी managed front door जो Lambda व backends invoke करतो.
प्र. HTTP vs REST?
HTTP: स्वस्त, जलद, Lambda proxy; कमी management. REST: API keys, usage plans, WAF, caching, private APIs.
प्र. Stage म्हणजे?
API ची named deployment (dev/prod) स्वतःच्या URL आणि settings सह.
प्र. Lambda proxy integration?
Gateway कच्चा HTTP request Lambda ला; Lambda statusCode, headers, body परत.
प्र. WebSocket कधी?
Server ला long-lived connection वर client कडे push करायचं असेल (chat, live scores).
घरी करून बघा
- Console मध्ये API Gateway उघडा, असलेल्या APIs HTTP/REST/WebSocket आहेत का लिहा.
- अधिकृत HTTP vs REST table एकदा वाचा आणि तीन bullets लिहा.
थोडक्यात सांगायचं तर
- API Gateway = Lambda पुढचा HTTPS front door.
- बहुतेक serverless साठी HTTP; management साठी REST; push साठी WebSocket.
- Routes + methods + stages तुमच्या app ची URL ठरवतात.
- Browser मधून Lambda invoke URLs थेट call करू नका.
सराव Tasks
Pune Fintech Labs हा पुणे मधला वित्त व्यवसाय आहे. Rohan Kulkarni त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 12
सोपं एक function invoke
का: Caller ने फक्त लागणारा function invoke करावा.
काय करायचं: फक्त arn:aws:lambda:ap-south-1:105420458853:function:punefintech-orders-fn वर lambda:InvokeFunction allow करा.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
सोपं Functions ची list
का: या Region मध्ये कोणते functions आहेत ते पाहा.
काय करायचं: ap-south-1 मधले Lambda functions दाखवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम REST API बनवा
का: REST APIs API keys, usage plans व request validation देतात.
काय करायचं: punefintech-rest नावाची REST API बनवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम REST API stage वर deploy करा
का: REST API चे बदल stage वर deployment नंतरच live होतात.
काय करायचं: REST API a1b2c3d4e5 prod stage वर deploy करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Timeout व memory बदला
का: जास्त memory म्हणजे जास्त CPU; timeout अडकलेले runs थांबवतो.
काय करायचं: punefintech-orders-fn चा timeout 30 seconds व memory 512 MB करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Function invoke करा
का: Invoke function आत्ता चालवतो व उत्तर file मध्ये ठेवतो.
काय करायचं: punefintech-orders-fn invoke करा व response out.json मध्ये ठेवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम Function ला logs लिहू द्या
का: या actions शिवाय Lambda logs CloudWatch मध्ये दिसत नाहीत.
काय करायचं: फक्त arn:aws:logs:*:*:* वर logs:CreateLogGroup, logs:CreateLogStream, logs:PutLogEvents allow करा.
- { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
- प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
- Task ला लागेल तेवढंच द्या (least privilege).
- Double quotes व commas नीट वापरा. Check answer दाबा.
अवघड Lambda साठी HTTP API quick-create
का: Quick create HTTP API, default route व stage बनवतो.
काय करायचं: punefintech-api नावाची HTTP API बनवा जिचा target arn:aws:lambda:ap-south-1:105420458853:function:punefintech-orders-fn.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड S3 ला function call करू द्या
का: S3 function invoke करण्याआधी resource-based permission लागते.
काय करायचं: punefintech-orders-fn ला s3invoke permission statement द्या: s3.amazonaws.com ने bucket arn:aws:s3:::punefintech-uploads कडून lambda:InvokeFunction करावं.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड Lambda GB-seconds
का: Lambda memory × time bill करतो.
काय करायचं: 1,000,000 invocations, 512 MB, प्रत्येकी 200 ms. किती GB-seconds?
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
अवघड Lambda function बनवा
का: Lambda ला code zip, runtime, handler नाव व execution role लागतो.
काय करायचं: punefintech-orders-fn function बनवा: runtime python3.12, handler app.handler, role arn:aws:iam::105420458853:role/lambda-basic, code function.zip मध्ये.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड Environment variables द्या
का: Table नावांसारख्या settings code बाहेर ठेवा.
काय करायचं: punefintech-orders-fn वर environment variable TABLE=punefintech-orders द्या.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.










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