AWS Messaging Services से डिकपलिंग

AWS पर एप्लिकेशन विकसित करना

Ricardo Sueiras

Principal Technologist

Amazon SQS मूल बातें

 

sqs overview

  • प्रोड्यूसर से स्वतंत्र होकर ट्रैफिक बर्स्ट संभालता है.
  • असिंक्रोनस मैसेजिंग के लिए मैनेज्ड मैसेज क्यू.
  • प्रोड्यूसर मैसेज क्यू में भेजते हैं.
  • कंज्यूमर क्यू से मैसेज लेते हैं.
  • कंज्यूमर लेने तक मैसेज रिटेन रहता है.
  • रिटेंशन: डिफॉल्ट 4 दिन, अधिकतम 14 दिन.
  • कंज्यूमर क्यू को पोल करते हैं और अपनी गति से प्रोसेस करते हैं.
AWS पर एप्लिकेशन विकसित करना

मैसेज विज़िबिलिटी

  • कंज्यूमर द्वारा पढ़ते ही मैसेज इनविज़िबल हो जाता है.
  • विज़िबिलिटी टाइमआउट तय करता है कितनी देर छुपा रहेगा.
  • अगर प्रोसेसिंग फेल हो जाए और मैसेज डिलीट न हो:
    • यह फिर से विज़िबल हो जाता है.
    • इसे फिर से प्रोसेस किया जा सकता है.
  • डिफॉल्ट विज़िबिलिटी टाइमआउट 30 सेकंड.
  • अधिकतम विज़िबिलिटी टाइमआउट 12 घंटे.

 

message visibility

AWS पर एप्लिकेशन विकसित करना

मैसेज साइज

 

image size

  • मैसेज का साइज अधिकतम 256KB हो सकता है.
  • SQS Extended Client लाइब्रेरी बड़े मैसेज सक्षम करती है.
  • बड़े पेलोड को Amazon S3 में स्टोर करता है.
  • मैसेज पेलोड में S3 का पॉइंटर भेजता है.
AWS पर एप्लिकेशन विकसित करना

शॉर्ट पोलिंग

  • पोलिंग स्ट्रैटेजी लागत और दक्षता को प्रभावित करती है.
  • शॉर्ट पोलिंग डिफॉल्ट है.
  • SQS सर्वर के एक सबसेट से क्वेरी करता है, तुरंत रिटर्न करता है.
  • मैसेज होने पर भी खाली लौट सकता है.
  • अधिक API कॉल्स और अधिक लागत होती है.

 

polling

AWS पर एप्लिकेशन विकसित करना

लॉन्ग पोलिंग

  • लॉन्ग पोलिंग सभी SQS सर्वर को क्वेरी करता है.
  • मैसेज के लिए अधिकतम 20 सेकंड तक इंतज़ार करता है.
  • अनावश्यक खाली रिस्पॉन्स हटाता है.
  • API कॉल्स घटती हैं और लागत कम होती है.

 

polling

AWS पर एप्लिकेशन विकसित करना

स्टैंडर्ड क्यू

  • SQS दो प्रकार की क्यू देता है.
  • स्टैंडर्ड क्यू:
    • कम-से-कम-एक बार डिलीवरी.
    • बेस्ट-एफर्ट ऑर्डरिंग.
    • लगभग असीमित थ्रूपुट.

 

queue types

AWS पर एप्लिकेशन विकसित करना

FIFO क्यू

 

queue types

  • FIFO क्यू:
    • एक्ज़ैक्टली-वंस प्रोसेसिंग.
    • सख्त मैसेज ऑर्डरिंग.
    • इनबिल्ट मैसेज डी-डुप्लिकेशन.
  • डिफॉल्ट 300 TPS
    • बैचिंग से 3,000 तक या हाई-थ्रूपुट मोड से और अधिक.
  • यूज़ केस से क्यू टाइप चुनें:
    • स्केल और थ्रूपुट के लिए स्टैंडर्ड.
    • ऑर्डरिंग और डी-डुपिंग के लिए FIFO.
AWS पर एप्लिकेशन विकसित करना

पॉइज़न मैसेज हैंडलिंग

 

dlq

  • डेड लेटर क्यू (DLQ) प्रोसेसिंग में फेल मैसेज स्टोर करती है.
  • maxReceiveCount पार होते ही मैसेज DLQ में चला जाता है.
  • इससे पॉइज़न मैसेज का अनंत रीट्राई रुकता है.
  • DLQ का टाइप सोर्स क्यू जैसा ही होना चाहिए.
  • रीप्रोसेस के लिए मैसेज सोर्स क्यू में वापस भेजें.
AWS पर एप्लिकेशन विकसित करना

क्यू की सुरक्षा

 

securing SQS

  • डिफॉल्ट रूप से HTTPS से इन-ट्रांज़िट एन्क्रिप्ट करता है.
  • AWS KMS से एट-रेस्ट सर्वर-साइड एन्क्रिप्शन.
  • AWS Encryption SDK से क्लाइंट-साइड पर पेलोड एन्क्रिप्ट करें.
  • IAM पॉलिसी तय करती हैं कौन SQS क्यू एक्सेस कर सकता है.
  • रिसोर्स-बेस्ड पॉलिसी से क्यू-लेवल ग्रैन्युलर कंट्रोल.
AWS पर एप्लिकेशन विकसित करना

Amazon SNS मूल बातें

  • मैनेज्ड पब्लिश-सब्सक्राइब (pub/sub) सर्विस.
  • पुश मॉडल इस्तेमाल करता है.
  • पब्लिशर मैसेज एक टॉपिक पर भेजते हैं.
    • अधिकतम मैसेज साइज 256KB.
  • कंज्यूमर टॉपिक को सब्सक्राइब करते हैं.
  • सब्सक्राइबर पैसिवली मैसेज प्राप्त करते हैं.

 

sns overview

AWS पर एप्लिकेशन विकसित करना

स्केल

  • प्रति टॉपिक 12.5 मिलियन तक सब्सक्रिप्शन सपोर्ट.
  • कोई मैसेज रिटेंशन नहीं:
    • सब्सक्राइबर अनुपलब्ध हो तो मैसेज खो जाता है.
    • मैसेज लॉस से बचने के लिए DLQ या ड्यूरेबल सब्सक्राइबर (SQS क्यू) का उपयोग करें.
  • एक इवेंट को कई कंज्यूमर तक वितरित करता है (फैन-आउट).

 

scaling sns

AWS पर एप्लिकेशन विकसित करना

मैसेज फिल्टरिंग

  • SNS मैसेज फिल्टरिंग पॉलिसी सपोर्ट करता है.
  • सब्सक्रिप्शन को सिर्फ प्रासंगिक मैसेज मिलते हैं.
  • बिना फिल्टर के, सब्सक्रिप्शन हर मैसेज पाता है.
  • फिल्टर पॉलिसी टॉपिक पर नहीं, सब्सक्रिप्शन लेवल पर लगती है.

 

filter

AWS पर एप्लिकेशन विकसित करना

फिल्टर लॉजिक और इवाल्यूएशन

 

filter polices

  • फिल्टर JSON में परिभाषित होते हैं.
  • मैसेज एट्रिब्यूट्स से मैच किए जाते हैं.
  • कई कंडीशन AND के रूप में इवाल्यूएट होती हैं.
  • एक कंडीशन में कई वैल्यू OR के रूप में इवाल्यूएट होती हैं.
  • अनेक फिल्टर ऑपरेशन सपोर्टेड हैं:
    • एक्ज़ैक्ट स्ट्रिंग, न्यूमेरिक, प्रीफ़िक्स, एक्सक्लूज़न, और रेंज मैचिंग.
AWS पर एप्लिकेशन विकसित करना

SNS सुरक्षा

 

sns security

  • डिफॉल्ट रूप से HTTPS से इन-ट्रांज़िट डेटा एन्क्रिप्ट करता है.
  • AWS KMS से एट-रेस्ट सर्वर-साइड एन्क्रिप्शन.
    • KMS कुंजी उपयोग के लिए SNS को अनुमति दें.
  • IAM पॉलिसी एक्सेस कंट्रोल देती हैं.
    • तय करती हैं कौन टॉपिक पर पब्लिश या उससे सब्सक्राइब कर सकता है.
AWS पर एप्लिकेशन विकसित करना

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

AWS पर एप्लिकेशन विकसित करना

Preparing Video For Download...