Performance और resource optimization

AWS पर एप्लिकेशन डिप्लॉय करना

Dunieski Otano

Amazon Web Services Solutions Architect

Slow और expensive

  • ट्रैफिक स्पाइक्स में ऐप धीमा लगता है
  • उसी महीने Lambda का बिल उछल जाता है
  • ट्यूनिंग से यह तेज और सस्ता हो जाता है

स्पीड और कॉस्ट गेज: फंक्शन धीमा और महंगा, सुई optimization की ओर

AWS पर एप्लिकेशन डिप्लॉय करना

Concurrency: cost बनाम cold start


Reserved: cap और protect

  • किसी फंक्शन के लिए cap लगाएँ और capacity सुनिश्चित करें
  • सबसे सस्ता नियंत्रण, पर cold starts पर असर नहीं

Provisioned: warmth के लिए भुगतान

  • इंस्टेंसेज़ को pre-warmed रखता है, cold start नहीं होता
  • महंगा है; जहाँ latency सच में मायने रखती है वहीं उपयोग करें
AWS पर एप्लिकेशन डिप्लॉय करना

Duration-cost कर्व से सही memory size

ड्यूरेशन-कॉस्ट कर्व: मेमोरी बढ़ने पर duration घटकर समतल, कुल लागत U-आकार, optimal मेमोरी हाइलाइटेड

  • ज्यादा memory = ज्यादा CPU = कम duration
  • Cost = memory price x duration
  • सबसे सस्ता बिंदु अक्सर बीच में होता है
  • कई sizes पर प्रोफाइल करें, फिर चुनें
AWS पर एप्लिकेशन डिप्लॉय करना

एप्लिकेशन-लेवल caching

  • काम को execution context के अंदर reuse करें
  • warm Lambda invocations के बीच globals रखता है
  • config, clients, और hot lookups cache करें
  • इंस्टेंसेज़ में shared cache के लिए ElastiCache

Lambda execution context caching: warm invocations में global client reuse, और कई फंक्शन इंस्टेंसेज़ में ElastiCache hot डेटा शेयर करता है

AWS पर एप्लिकेशन डिप्लॉय करना

CloudFront caching at the edge

  • CloudFront: edge locations पर responses cache करें
  • रिपीट रिक्वेस्ट backend को हिट किए बिना सर्व करें
  • Cache keys में headers, query strings, cookies शामिल कर सकते हैं
  • Static और cacheable कंटेंट मुफ्त में scale होता है

CloudFront edge caching: globe पर edge locations पास के यूज़र्स को cached responses देती हैं, backend को हिट किए बिना; cache key config में headers और query strings दिखे

AWS पर एप्लिकेशन डिप्लॉय करना

सही cache लेयर चुनना

तीन स्टैक्ड cache लेयर्स: CloudFront edge पर static, shared कंटेंट; in-memory per-instance cache हॉट ऑब्जेक्ट्स के लिए; और ElastiCache या DAX shared high-frequency reads के लिए

  • Edge (CloudFront): static, widely shared कंटेंट
  • Application (in-memory): per-instance hot objects
  • Data (ElastiCache/DAX): shared hot reads
  • परतें जोड़ें; हर एक अलग लागत घटाती है
AWS पर एप्लिकेशन डिप्लॉय करना

Optimization को एक साथ लाना

  • duration-cost कर्व से memory right-size करें
  • Provisioned concurrency सिर्फ वहीं जोड़ें जहाँ latency अहम है
  • edge, app, और data लेयर्स पर cache करें
  • मापें, एक बदलाव करें, फिर से मापें

Optimization सार: मेमोरी साइजिंग के लिए duration-cost कर्व, provisioned concurrency निर्णय, तीन cache लेयर डायग्राम, और measure-change-measure साइकिल

AWS पर एप्लिकेशन डिप्लॉय करना

अभ्यास करते हैं!

AWS पर एप्लिकेशन डिप्लॉय करना

Preparing Video For Download...