मुख्य सामग्री पर जाएँ

Amazon Simple Queue Service (SQS): एक व्यापक ट्यूटोरियल

यह ट्यूटोरियल बताता है कि AWS पर स्केलेबल डिस्ट्रिब्यूटेड एप्लिकेशन बनाने के लिए Amazon SQS कतारें कैसे बनाएं, प्रबंधित करें और उपयोग करें—कंसोल और CLI दोनों के व्यावहारिक उदाहरणों सहित।
· 15 मि॰ पढ़ें

AI के साथ खोजें

Amazon Simple Queue Service (SQS) Amazon Web Services (AWS) द्वारा प्रदत्त एक पूर्णत: प्रबंधित मैसेज क्यूइंग सेवा है। यह डिस्ट्रिब्यूटेड सिस्टम्स, माइक्रोसर्विसेज़ और सर्वरलेस एप्लिकेशंस को डिकपल और स्केल करने में सक्षम बनाती है।

यह गाइड AWS SQS की स्पष्ट समझ प्रदान करता है—इसकी विशेषताओं, कतारें सेट अप और प्रबंधित करने की प्रक्रिया को कवर करता है। यह संदेश भेजने और प्राप्त करने के तरीकों पर चर्चा करता है, प्राइसिंग मॉडल की जाँच करता है, मॉनिटरिंग और मेट्रिक्स की पड़ताल करता है, SQS की तुलना SNS से करता है, और बेहतर उपयोग के लिए सर्वोत्तम प्रथाएँ साझा करता है। 

जिनके पास AWS की पृष्ठभूमि नहीं है, उनके लिए हमारा Introduction to AWS कोर्स एक अच्छा शुरुआती बिंदु है। यह आपको Amazon Web Services की दुनिया से परिचित कराता है और समझाता है कि यह क्लाउड कंप्यूटिंग में अग्रणी क्यों है।

AWS SQS क्या है?

विवरण में जाने से पहले, पहले समझते हैं कि AWS SQS क्या है और AWS इकोसिस्टम में यह इतना महत्वपूर्ण क्यों है।

AWS SQS architecture diagram

Amazon SQS आर्किटेक्चर आरेख

AWS SQS एक डिस्ट्रिब्यूटेड क्यूइंग सिस्टम है जो वेब सर्विस एप्लिकेशनों को प्रोड्यूसर्स द्वारा जनरेट किए गए संदेशों को शीघ्रता और विश्वसनीयता से कंज्यूमर्स द्वारा उपयोग हेतु कतारबद्ध करने में सक्षम बनाती है।

एक कतार प्रसंस्करण की प्रतीक्षा कर रहे संदेशों के लिए एक अस्थायी भंडार का कार्य करती है। Amazon SQS अपने रीड्राइव पॉलिसी के माध्यम से रिट्राई क्षमता भी प्रदान करता है, जो एकाधिक रिट्राई और डेड लेटर क्यूज़ (DLQs) के उपयोग की अनुमति देता है—ये त्रुटि-प्रवण संदेशों को संभालने के लिए डेवलपर्स को समस्याओं की सूचना देते हैं और वैकल्पिक रूप से संदेशों को भविष्य में पुन:प्रसंस्करण हेतु संग्रहीत करते हैं।

SQS की विशेषताएँ और लाभ

SQS का उपयोग करने के कई लाभ हैं, जिनमें निम्नलिखित शामिल हैं, पर सीमित नहीं हैं:

AWS SQS key features and benefits

AWS SQS की प्रमुख विशेषताएँ और लाभ

  • स्केलेबिलिटी: SQS किसी भी मात्रा के ट्रैफ़िक को संभाल सकता है, और इसके लिए आपको इन्फ्रास्ट्रक्चर प्रोविजन या प्रबंधन करने की आवश्यकता नहीं होती।
  • ड्यूरेबिलिटी: संदेश कई अवेलेबिलिटी ज़ोन्स में रिडंडेंट रूप से संग्रहीत होते हैं।
  • अवेलेबिलिटी: यह संदेशों के उत्पादन और उपभोग के लिए उच्च उपलब्धता प्रदान करता है।
  • सुरक्षा: यह संदेशों की सामग्री की सुरक्षा के लिए सर्वर-साइड एन्क्रिप्शन (SSE) प्रदान करता है।
  • लचीलापन: यह अनेक संदेश प्रारूपों का समर्थन करता है और विभिन्न AWS सेवाओं के साथ उपयोग किया जा सकता है।

माइक्रोसर्विसेज़ को डिकपल और स्केल करने के उपयोग के मामले

कई उद्योग-विशिष्ट उपयोग के मामले SQS के लाभ उठा सकते हैं; नीचे कुछ उदाहरण दर्शाए गए हैं:

AWS SQS use cases in decoupling and scaling microservices

माइक्रोसर्विसेज़ को डिकपल और स्केल करने में AWS SQS के उपयोग के मामले

  • वर्क क्यू: कार्यों को कई वर्कर प्रोसेस में बाँटना।
  • डेटाबेस राइट्स के लिए बफ़र: अत्यधिक राइट लोड से डेटाबेस की सुरक्षा करना।
  • रिक्वेस्ट ऑफ़लोडिंग: धीमी प्रक्रियाओं को इंटरैक्टिव रिक्वेस्ट पाथ से हटाना।
  • बैच प्रोसेसिंग: एक बार में संदेशों के समूह को एकत्र करना और संसाधित करना।

AWS SQS सेट अप करना

अब जबकि हमें SQS का अर्थ समझ में आ गया है, आइए देखते हैं इसे कैसे सेट अप करें। यह अनुभाग पूर्वापेक्षाएँ और SQS कंसोल तक पहुंचने का तरीका बताएगा।

पूर्वापेक्षाएँ

AWS SQS का उपयोग शुरू करने से पहले, सुनिश्चित करें कि आपके पास ये हों:

  • एक सक्रिय AWS खाता। इसे आधिकारिक पेज से बनाया जा सकता है।
  • SQS एक्सेस के लिए आवश्यक IAM रोल और परमिशन्स।

IAM परमिशन्स सेट करने के लिए:

  • IAM कंसोल पर जाएँ।
  • एक नई पॉलिसी बनाएँ।

Setting Up AWS SQS

AWS SQS सेट अप करना

  • पॉलिसी बनाने के दो मुख्य विकल्प हैं: विज़ुअल एप्रोच या JSON। हमारे मामले में, हम विज़ुअल एप्रोच का उपयोग करते हैं, जो अधिक सहज है। 
  • “Service” क्षेत्र से “SQS” चुनें और Effect को “Allow” पर सेट करें, निम्न परमिशन्स के लिए: sqs:CreateQueue, sqs:DeleteQueue, sqs:SendMessage, sqs:ReceiveMessage, sqs:DeleteMessage।

Setting Up AWS SQS

AWS SQS सेट अप करना

  • कार्यों को “All” संसाधनों तक पहुँच की अनुमति दें, और “Next” चुनें।
  • पॉलिसी को एक नाम दें, हमारे मामले में यह “SQSHandsOnPolicies” है, और अंत में पॉलिसी बनाएँ।

Setting Up AWS SQS

AWS SQS सेट अप करना

अंतिम पॉलिसी JSON फॉर्मेट में कुछ इस प्रकार दिखनी चाहिए:

Setting Up AWS SQS

AWS SQS सेट अप करना

आइए अपनी पॉलिसी परिभाषा का संक्षिप्त अवलोकन करें:

  • “Version”: “2012-10-17” IAM पॉलिसी भाषा का मौजूदा संस्करण है।
  • पॉलिसी में एक “Statement” है, जो अनुमतियों के सेट को परिभाषित करता है।
  • “Sid”: “VisualEditor0” का अर्थ है कि यह पॉलिसी विज़ुअल एडिटर के माध्यम से बनाई गई है।
  • “Effect”: “Allow” का अर्थ है कि ये कार्रवाइयाँ अनुमत हैं।
  • “Action”: यह सूची ऊपर उल्लिखित SQS ऑपरेशन्स को निर्दिष्ट करती है जो अनुमत हैं:
  • “Resource”: “*” का अर्थ है कि ये कार्रवाइयाँ खाते की सभी SQS संसाधनों पर अनुमत हैं।

यह पॉलिसी खाते में किसी भी SQS कतार से संदेश बनाने, हटाने, भेजने और प्राप्त करने की पूरी अनुमति देती है। यह काफ़ी परमीसिव है, इसलिए प्रोडक्शन वातावरण में बेहतर सुरक्षा के लिए हम इसे विशिष्ट कतार ARNs तक सीमित करना चाहेंगे।

यदि आप IAM कॉन्फ़िगरेशन के बारे में और जानना चाहते हैं, तो The Complete Guide to AWS Identity and Access Management (IAM) ट्यूटोरियल आपको AWS वातावरण को सुरक्षित करना, उपयोगकर्ताओं, समूहों और रोल्स के साथ एक्सेस प्रबंधन करना, और मजबूत सुरक्षा के लिए सर्वोत्तम प्रथाएँ लागू करना सिखाता है।

AWS कॉन्फ़िगरेशन का ज्ञान गहरा करने के लिए, How to Setup and Configure AWS: A Comprehensive Tutorial आवश्यक सेटिंग्स, सुरक्षा के सर्वोत्तम अभ्यास, और डेटा विश्लेषण तथा मशीन लर्निंग के लिए AWS सेवाओं का लाभ उठाने के तरीकों को समझने में सहायक होगा।

Amazon SQS कंसोल तक पहुँच

एक बार पूर्वापेक्षाएँ पूरी हो जाने के बाद, अगला कदम SQS कंसोल तक पहुंचना है ताकि कतारें बनाना और प्रबंधित करना शुरू किया जा सके। कंसोल तक पहुँचने के चरण इस प्रकार हैं:

  • ऊपर सर्च बार में "SQS" टाइप करें और ड्रॉपडाउन से "Simple Queue Service" का चयन करें।
  • आप SQS डैशबोर्ड पर निर्देशित हो जाएँगे।

Accessing the Amazon SQS Console

Amazon SQS कंसोल तक पहुँचना

SQS कतारें बनाना और प्रबंधित करना

SQS कंसोल तक पहुँच के साथ, हम कतारें बनाना और प्रबंधित करना शुरू कर सकते हैं। यह अनुभाग स्टैंडर्ड और FIFO—दोनों प्रकार की कतारें बनाने की प्रक्रिया बताता है।

लेकिन रुकिए, हमारी IAM पॉलिसी कहाँ काम आती है?

पूर्वापेक्षाओं में बनाई गई IAM पॉलिसी कतार निर्माण और प्रबंधन के लिए महत्वपूर्ण है। यह इस प्रकार प्रभाव डालती है:

  • यूजर या रोल एसोसिएशन: पॉलिसी उस IAM यूजर या रोल से अटैच होनी चाहिए जिसका उपयोग आप SQS कंसोल या AWS CLI तक पहुँचने के लिए कर रहे हैं।
  • परमिशन जाँच: जब आप कतार बनाने (या कोई अन्य SQS कार्रवाई करने) का प्रयास करते हैं, AWS यह सुनिश्चित करने के लिए इस पॉलिसी की जाँच करता है कि आपके पास आवश्यक परमिशन्स हैं।
  • एक्शन ऑथराइज़ेशन: हमारी पॉलिसी में sqs:CreateQueue परमिशन विशेष रूप से कतार निर्माण की अनुमति देता है। इसके बिना, कतार बनाते समय आपको "Access Denied" त्रुटि मिलती।
  • निरंतर ऑपरेशन्स: पॉलिसी में अन्य परमिशन्स (sqs:SendMessage, sqs:ReceiveMessage, sqs:DeleteMessage, sqs:DeleteQueue) आपको निर्माण के बाद कतार पर विभिन्न कार्रवाइयाँ करने की अनुमति देते हैं।

इस समझ के साथ, आइए स्टैंडर्ड कतार से शुरू करते हुए अपनी कतारें बनाना जारी रखें।

स्टैंडर्ड कतार बनाना

स्टैंडर्ड कतारें SQS में डिफ़ॉल्ट कतार प्रकार हैं। एक बनाने के चरण:

  • SQS डैशबोर्ड पर "Create queue" पर क्लिक करें।
  • कतार प्रकार के रूप में "Standard" चुनें।
  • कतार का नाम दर्ज करें—हमारे परिदृश्य में “SQSHandsOn”।
  • कतार सेटिंग्स कॉन्फ़िगर करें: Visibility timeout, Message retention period, Maximum message size, और Delivery delay। इन्हें डिफ़ॉल्ट मानों पर ही रहने दें और “Create queue” पर क्लिक करें।

Creating a Standard Queue

स्टैंडर्ड कतार बनाना

कतार सफलतापूर्वक बनने पर पुष्टि संदेश प्रदर्शित होता है, जैसा कि नीचे दिखाया गया है, साथ ही कतार के बारे में अतिरिक्त जानकारी भी मिलती है।

Creating a Standard Queue

स्टैंडर्ड कतार बनाना

FIFO कतार बनाना

FIFO कतारें संदेश प्रसंस्करण के क्रम की गारंटी के लिए उपयोग की जाती हैं। इन्हें बनाने के चरण नीचे दिए गए हैं: 

  • SQS डैशबोर्ड पर "Create queue" पर क्लिक करें।
  • कतार प्रकार के रूप में "FIFO" चुनें।
  • अपनी कतार का नाम दर्ज करें (जिसका अंत “.fifo” से होना चाहिए)। मैंने अपनी कतार का नाम “SQSHandsOn.fifo” रखा है।
  • ऊपर वाले परिदृश्य की तरह, अन्य सभी सेटिंग्स डिफ़ॉल्ट पर रखें और “Create queue” करें। 

Creating a FIFO Queue

FIFO कतार बनाना

स्टैंडर्ड कतार की तरह ही, FIFO कतार के सफल निर्माण पर भी संदेश भेजने के लिए आवश्यक वही विवरण उपलब्ध होते हैं।

Creating a FIFO Queue

FIFO कतार बनाना

स्टैंडर्ड और FIFO कतारों के बीच अंतर

Amazon SQS में स्टैंडर्ड और FIFO कतारों के बीच चयन करते समय, उनकी विशिष्ट विशेषताओं और क्षमताओं को समझना महत्वपूर्ण है। 

निम्न तालिका तुलनात्मक विश्लेषण प्रदान करती है ताकि आप तय कर सकें कि आपकी एप्लिकेशन आवश्यकताओं के लिए कौन सा कतार प्रकार उपयुक्त है:

Differences between Standard and FIFO Queues

स्टैंडर्ड और FIFO कतारों के बीच अंतर

SQS में संदेश भेजना और प्राप्त करना

अब जबकि हमारी सभी कतारें सेट हैं, आइए संदेश भेजना और प्राप्त करना शुरू करें। यह अनुभाग AWS Management Console और AWS Command Line Interface (CLI) के माध्यम से यह कैसे करना है, उसे कवर करता है।

संदेश भेजना

संदेश भेजने की प्रक्रिया स्टैंडर्ड और FIFO—दोनों कतारों का उपयोग कर दिखाई गई है।

स्टैंडर्ड कतार

AWS मैनेजमेंट कंसोल का उपयोग
  • SQS डैशबोर्ड से अपनी कतार चुनें।
  • "Send and receive messages" पर क्लिक करें।
  • "Message body" फ़ील्ड में एक संदेश दर्ज करें, उदाहरण के लिए: “यह कतार ‘Comprehensive Guide to Amazon Simple Queue Service (SQS)’ ट्यूटोरियल का उपयोग करके बनाई गई है।”
  • "Send message" पर क्लिक करें।

Sending Messages Using AWS Management Console

AWS मैनेजमेंट कंसोल का उपयोग करके संदेश भेजना

संदेश भेजने के बाद, एक पॉप-अप इसकी पुष्टि करता है। “View details” पर क्लिक करने से हमारे संदेश का विवरण मिलता है, जैसा कि नीचे दिखाया गया है।

Sending Messages Using AWS Management Console

AWS मैनेजमेंट कंसोल का उपयोग करके संदेश भेजना

अंत में, “Receive messages” अनुभाग में हम देख सकते हैं कि एक संदेश उपलब्ध है।

Sending Messages Using AWS Management Console

AWS मैनेजमेंट कंसोल का उपयोग करके संदेश भेजना

AWS CLI SQS का उपयोग

CLI के माध्यम से संदेश भेजने के मुख्य चरण नीचे दिए गए टेम्पलेट का पालन करते हैं।

aws sqs send-message --queue-url [YOUR URL]--message-body "YOUR MESSAGE"

स्टैंडर्ड कतार विधि के लिए हमारा URL ऊपर दिए गए स्क्रीनशॉट में है। CLI के लिए, चलिए अलग संदेश उपयोग करते हैं:

  • URL: https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn
  • Message: “Message sent via AWS CLI”

CLI का उपयोग शुरू करने का पहला चरण इसे कॉन्फ़िगर करना है ताकि यह हमारे AWS संसाधनों के साथ इंटरैक्ट कर सके—इसके लिए निम्नलिखित क्रेडेंशियल्स की आवश्यकता है:

  • Access key ID
  • Secret access key
aws configure

कॉन्फ़िगरेशन पूरा होने के बाद, निम्न कमांड को सही आर्गुमेंट मानों के साथ चलाएँ:

aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn --message-body "Message sent via AWS CLI"

Sending Messages Using CLI

CLI का उपयोग करके संदेश भेजना

कमांड निष्पादन का JSON आउटपुट नए भेजे गए संदेश का विवरण दिखाता है, और हम देख सकते हैं कि अब SQSHandsOn कतार में दो संदेश हैं।

Sending Messages Using CLI

CLI का उपयोग करके संदेश भेजना

FIFO कतार

FIFO का उपयोग करके संदेश भेजने की प्रक्रिया स्टैंडर्ड क्यूइंग एप्रोच से थोड़ी भिन्न है।

इस परिदृश्य को बेहतर ढंग से समझाने के लिए, कल्पना कीजिए कि आप एक ई-कॉमर्स प्लेटफ़ॉर्म चला रहे हैं जो इलेक्ट्रॉनिक डिवाइस बेचता है। 

आपकी प्रणाली को ऑर्डर प्रोसेसिंग, इन्वेंटरी अपडेट करना, और पेमेंट मैनेज करना जैसी विभिन्न कार्रवाइयों को संभालना होता है। इस स्थिति में, हम SQS FIFO कतार का उपयोग कर सकते हैं ताकि ये कार्रवाइयाँ सही क्रम में और बिना डुप्लिकेट के संसाधित हों।

  • CLI उदाहरण 1 (ग्राहक ऑर्डर): यह संदेश तब भेजा जाता है जब कोई ग्राहक नया ऑर्डर देता है। ऑर्डर प्रोसेसिंग सिस्टम इन संदेशों को उसी क्रम में उठाएगा जिसमें वे प्राप्त हुए।
  • CLI उदाहरण 2 (इन्वेंटरी अपडेट): ऑर्डर प्रोसेस होने के बाद, यह संदेश इन्वेंटरी अपडेट करने के लिए भेजा जाता है। यह सुनिश्चित करता है कि उत्पाद बिकते समय स्टॉक स्तर सटीक बने रहें।
  • कंसोल उदाहरण (पेमेंट प्रोसेसिंग): जब किसी ऑर्डर के लिए भुगतान प्रोसेस करना होता है, तो यह संदेश जनरेट होता है। यह सुनिश्चित करता है कि भुगतान उसी क्रम में संभाले जाएँ जिसमें वे प्राप्त हुए हैं और दोहरी चार्जिंग न हो।

इन कार्रवाइयों के लिए FIFO कतार का उपयोग सुनिश्चित करता है कि:

  • ऑर्डर उसी अनुक्रम में प्रोसेस हों जिसमें वे दिए गए थे।
  • इन्वेंटरी अपडेट सही क्रम में हों, जिससे ओवरसेलिंग रोकी जा सके।
  • भुगतान एक बार और सही क्रम में प्रोसेस हों।

FIFO कतार को संदेश भेजते समय दो प्रमुख तत्व याद रखें:

  • Message group ID: सभी संदेशों के लिए आवश्यक। यह निर्धारित करता है कि किसी समूह के भीतर कौन से संदेश क्रम में प्रोसेस होंगे।
  • Message deduplication ID: सुनिश्चित करता है कि प्रत्येक संदेश 5-मिनट की विंडो में केवल एक बार प्रोसेस हो।

इस समझ के साथ, आइए CLI एप्रोच के साथ आगे बढ़ते हैं।

AWS CLI SQS का उपयोग

   हम FIFO कतार में पहले दो संदेश भेजने के लिए निम्न कमांड्स चला सकते हैं।

  • CLI उदाहरण 1: ग्राहक ऑर्डर भेजना:
aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn.fifo --message-body "Process customer order: #A1001" --message-group-id "CustomerOrders" --message-deduplication-id "Order-A1001-20240817-1"

पहले निष्पादन का आउटपुट नीचे दिया गया है।

Example 1 - Sending Messages Result Using CLI with FIFO

उदाहरण 1 - FIFO के साथ CLI से संदेश भेजने का परिणाम

  • CLI उदाहरण 2: इन्वेंटरी अपडेट भेजना:
aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn.fifo --message-body "Update inventory: ProductX -5 units"  --message-group-id "InventoryUpdates" --message-deduplication-id "Inventory-ProductX-20240817-1"

आउटपुट नीचे दिया गया है।

Example 2 - Sending Messages Result Using CLI with FIFO

उदाहरण 2 - FIFO के साथ CLI से संदेश भेजने का परिणाम

अब तक दो संदेश FIFO कतार में भेजे जा चुके हैं, जिन्हें नीचे देखा जा सकता है।

Sending Messages Result Using CLI with FIFO - Number of messages

FIFO कतारों के साथ CLI का उपयोग करके संदेश भेजने का परिणाम - संदेशों की संख्या

AWS मैनेजमेंट कंसोल का उपयोग

स्टैंडर्ड कतार की तरह, हम मैनेजमेंट कंसोल से भी इस प्रकार संदेश भेज सकते हैं:

  • “Queues” पेज से “SQSHandsOn.fifo” चुनें।
  • संदेश भेजने के लिए “Send and receive message” टैब चुनें।
  • “Message group ID” और “Message deduplication ID” जैसे अतिरिक्त फ़ील्ड आवश्यक होते हैं।

Sending Messages Result Using Management Console with FIFO

मैनेजमेंट कंसोल का उपयोग करके FIFO कतारों में संदेश भेजने का परिणाम

अब, हम देख सकते हैं कि FIFO कतार में कुल संदेशों की संख्या तीन है।

Sending Messages Result Using Management Console with FIFO - Total number of messages

मैनेजमेंट कंसोल का उपयोग करके FIFO कतारों में संदेश भेजने का परिणाम - कुल संदेश

संदेश प्राप्त करना और हटाना

संदेश प्राप्त करना और हटाना, संदेश भेजने जितना ही महत्वपूर्ण है। दोनों कार्य इस प्रकार करें।

स्टैंडर्ड कतार

AWS मैनेजमेंट कंसोल का उपयोग
  • SQS डैशबोर्ड से अपनी कतार चुनें।
  • "Send and receive messages" पर क्लिक करें।
  • "Poll for messages" पर क्लिक करें।
  • संदेश "Messages" सेक्शन में दिखाई देंगे।

Receiving Messages Using Management Console with Standard Queue

स्टैंडर्ड कतार के साथ AWS मैनेजमेंट कंसोल का उपयोग करके संदेश प्राप्त करना

स्टैंडर्ड कतार में सभी दो संदेश ऊपर देखे जा सकते हैं।

AWS CLI SQS का उपयोग

स्टैंडर्ड कतार से संदेश प्राप्त करने के लिए सामान्य कमांड नीचे है।

aws sqs receive-message --queue-url [YOUR URL]

हमारी स्टैंडर्ड कतार का उपयोग करते हुए, पूर्ण कमांड इस प्रकार होगा:

aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn

FIFO कतार

मैनेजमेंट कंसोल के माध्यम से संदेश प्राप्त करने की प्रक्रिया स्टैंडर्ड एप्रोच जैसी ही है।

AWS CLI का उपयोग करके FIFO कतार से संदेश प्राप्त करने के लिए आप aws sqs receive-message कमांड का उपयोग कर सकते हैं। इसका बेसिक स्ट्रक्चर इस प्रकार है:

aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn.fifo --attribute-names All --message-attribute-names All --max-number-of-messages 3
  • -attribute-names All: सभी संदेश एट्रीब्यूट्स को प्राप्त करता है।
  • -message-attribute-names All: सभी कस्टम संदेश एट्रीब्यूट्स को प्राप्त करता है।
  • --max-number-of-messages 3: प्राप्त किए जाने वाले संदेशों की अधिकतम संख्या निर्दिष्ट करता है

उपरोक्त कमांड के निष्पादन से FIFO कतार के सभी तीन संदेश मिलते हैं।

Receiving Messages Result Using CLI with FIFO

FIFO कतारों के साथ CLI का उपयोग करके संदेश प्राप्त करने का परिणाम

AWS SQS प्राइसिंग

SQS को किफायती ढंग से उपयोग करने के लिए प्राइसिंग मॉडल समझना आवश्यक है। यह अनुभाग प्राइसिंग को विभाजित कर बताता है और लागत प्रबंधन के सुझाव देता है।

सामान्यतः, AWS SQS की कीमत API अनुरोधों की संख्या, डेटा ट्रांसफर, और प्रयुक्त वैकल्पिक सुविधाओं पर आधारित होती है।

रिक्वेस्ट प्राइसिंग

निम्न तालिकाएँ SQS रिक्वेस्ट प्राइसिंग का अवलोकन प्रदान करती हैं:

 

स्टैंडर्ड कतारें 

(प्रति मिलियन रिक्वेस्ट)

FIFO कतारें 

(प्रति मिलियन रिक्वेस्ट)

पहले 1 मिलियन रिक्वेस्ट/महीना

मुफ़्त

मुफ़्त

1 मिलियन से 100 बिलियन रिक्वेस्ट/महीना

$0.40

$0.5

100 बिलियन से 200 बिलियन रिक्वेस्ट/महीना

$0.30

$0.40

200 बिलियन रिक्वेस्ट/महीने से अधिक

0.24

$0.35

प्राइसिंग AWS की SQS पेज से

डेटा ट्रांसफर प्राइसिंग

डेटा ट्रांसफर प्राइसिंग समझने के लिए, निम्न तालिका देखें:

Data transfer IN

प्राइसिंग

सभी डेटा ट्रांसफर इन

$0.00 प्रति GB

Data transfer OUT

प्राइसिंग

पहले 10 TB/महीना

$0.09 प्रति GB

अगले 40 TB / महीना

$0.085 प्रति GB

अगले 100 TB / महीना

$0.07 प्रति GB

150 TB / महीना से अधिक

$0.05 प्रति GB

प्राइसिंग AWS की SQS पेज से

लागत प्रबंधन सुझाव

अपने SQS खर्चों को प्रबंधित करने के लिए कुछ त्वरित सुझाव:

  • खाली रिसीव को कम करने के लिए लॉन्ग पॉलिंग का उपयोग करें।
  • अपनी भेजने और प्राप्त करने की कार्रवाइयों को बैच में करें।
  • AWS Cost Explorer के साथ अपने उपयोग की निगरानी करें।

AWS SQS मॉनिटरिंग और मेट्रिक्स

एक स्वस्थ SQS इम्प्लीमेंटेशन बनाए रखने के लिए प्रभावी मॉनिटरिंग अत्यंत महत्वपूर्ण है। यह अनुभाग महत्वपूर्ण मेट्रिक्स और अलार्म सेट करने के तरीके को कवर करता है।

प्रमुख AWS SQS मेट्रिक्स

यहाँ कुछ सबसे महत्वपूर्ण मेट्रिक्स दिए गए हैं जिन पर नज़र रखनी चाहिए:

Key AWS SQS Metrics

प्रमुख AWS SQS मेट्रिक्स

ApproximateNumberOfMessagesVisible

यह मेट्रिक कतार से प्राप्ति हेतु उपलब्ध संदेशों की संख्या दर्शाता है। यह कतार बैकलॉग और प्रोसेसिंग दक्षता का संकेतक है। उच्च संख्या प्रोसेसिंग बॉटलनेक्स का संकेत दे सकती है।

ApproximateAgeOfOldestMessage

यह मेट्रिक दर्शाता है कि सबसे पुराना, न हटाया गया संदेश कितने समय से कतार में है। यह संदेश प्रसंस्करण से जुड़ी संभावित समस्याओं—जैसे अटके संदेश या धीमे कंज्यूमर्स—की पहचान में मदद करता है। FIFO कतारों के लिए यह मेट्रिक महत्वपूर्ण है क्योंकि यह ब्लॉक हुए मैसेज ग्रुप्स का संकेत दे सकता है।

NumberOfMessagesSent

यह कतार में जोड़े गए संदेशों की संख्या को ट्रैक करता है। यह कतार इनपुट दर की निगरानी और संदेश उत्पादन में असामान्य स्पाइक्स की पहचान के लिए उपयोगी है। ध्यान दें कि डेड-लेटर कतारों में मैन्युअल रूप से भेजे गए संदेश इस गणना में शामिल होते हैं।

NumberOfMessagesReceived

यह मेट्रिक दर्शाता है कि कतार से कंज्यूमर्स को कितने संदेश लौटाए गए। यह कतार की आउटपुट दर को ट्रैक करने में मदद करता है और NumberOfMessagesSent के साथ तुलना करके प्रोसेसिंग दक्षता का आकलन किया जा सकता है। NumberOfMessagesSent की तरह, यह असफल प्रोसेसिंग के चलते डेड-लेटर कतारों में ऑटोमेटिक रूप से भेजे गए संदेशों को शामिल नहीं करता।

CloudWatch अलार्म्स सेट करना

उपरोक्त चार मेट्रिक्स के लिए CloudWatch अलार्म निर्माण दर्शाया गया है। सभी मेट्रिक्स के लिए प्रक्रिया समान है। इसलिए, सादगी हेतु हम केवल एक मेट्रिक और केवल स्टैंडर्ड SQS (SQSHandsOn) पर ध्यान केंद्रित कर रहे हैं। 

ApproximateNumberOfMessagesVisible के लिए अलार्म सेट करने के मुख्य चरण नीचे हैं।

CloudWatch अलार्म संभावित समस्याओं के बारे में आपको सतर्क कर सकते हैं। मैनेजमेंट कंसोल से इन्हें इस प्रकार सेट करें:

  • "CloudWatch" खोजें और उसे चुनें।
  • बाएँ नेविगेशन पैन में "Alarms" पर क्लिक करें।
  • "Create alarm" बटन पर क्लिक करें।
  • "Select metric" पर क्लिक करें।
  • "All metrics" टैब में "SQS" खोजें और क्लिक करें।
  • "Queue Metrics" पर क्लिक करें। 
  • अपनी कतार खोजें और मेट्रिक ApproximateNumberOfMessagesVisible और स्टैंडर्ड मेट्रिक SQSHandsOn चुनें।

Setting Up CloudWatch Alarms

CloudWatch अलार्म्स सेट करना

  • ऊपर वाले पेज से, "Graph metrics" चुनें।
  • स्टैटिस्टिक चुनें और उसे “Average” पर सेट करें।
  • पीरियड सेट करें—हमारे मामले में 5 मिनट—और “Select metric” चुनें।

Setting Up CloudWatch Alarms

CloudWatch अलार्म्स सेट करना

  • मेट्रिक को एक नाम दें (उदाहरण के लिए, “SQS-AvgHighMessageCount-SQSHandsOn”), और “Threshold Type” को “Static” पर सेट करें।
  • अलार्म के लिए एक कंडीशन दें। हमारे मामले में यह “Greater” है।
  • थ्रेशहोल्ड मान “20” पर सेट करते हैं और “Next” चुनते हैं।

Setting Up CloudWatch Alarms

CloudWatch अलार्म्स सेट करना

उपरोक्त कॉन्फ़िगरेशन का अर्थ है कि यह अलार्म तब ट्रिगर होगा जब आपके SQSHandsOn कतार में दृश्यमान संदेशों की औसत संख्या 5 मिनट के भीतर कम-से-कम एक डेटा प्वाइंट के लिए 20 से अधिक हो जाए। ग्राफ वर्तमान संदेश संख्या (नीली रेखा) को थ्रेशहोल्ड (20 पर लाल रेखा) के संदर्भ में दिखाता है।

यह सेटअप यह मॉनिटर करने में मदद करता है कि क्या हमारी कतार में बहुत अधिक अनप्रोसेस्ड संदेश इकट्ठा हो रहे हैं, जो प्रोसेसिंग देरी या कंज्यूमर्स में समस्याओं का संकेत दे सकता है। 

कंज्यूमर्स से तात्पर्य हमारी सभी एप्लिकेशंस या सिस्टम कॉम्पोनेंट्स से है जो कतार से संदेश प्राप्त और प्रोसेस करते हैं।

यदि औसत संदेश संख्या 20 से ऊपर जाती है, तो आपको अलर्ट मिलेगा, जिससे आप जाँच कर उचित कार्रवाई कर सकेंगे और कतार में बैकलॉग से बच सकेंगे।

  • उपरोक्त “Next” कार्रवाई “Configure actions” पेज पर ले जाती है—हमें वहाँ कुछ सेट करने की आवश्यकता नहीं। उस पेज को जैसा है वैसा ही रहने दें।
  • “Next” चुनें और अलार्म के लिए एक यूनिक नाम दर्ज करें—हमारे मामले में "SQSHandsOn-HighMessageCount"।
  • वैकल्पिक रूप से, एक विवरण जोड़ें और “Next” चुनें।
  • अपनी सेटिंग्स की समीक्षा करें, और "Create alarm" पर क्लिक करें।

Setting Up CloudWatch Alarms

CloudWatch अलार्म्स सेट करना

  • हमें अपने अलार्म के लिए हरा पुष्टि संदेश दिखना चाहिए, और “Name” कॉलम में अलार्म का नाम भी।

Setting Up CloudWatch Alarms

CloudWatch अलार्म्स सेट करना

  • अलार्म नाम का चयन करने के बाद, पूर्ण विवरण इस प्रकार प्रदान किया जाता है:

Setting Up CloudWatch Alarms

CloudWatch अलार्म्स सेट करना

हमारी SQSHandsOn कतार के लिए अलार्म वर्तमान में "Insufficient data" स्थिति में है। इसका अर्थ है कि CloudWatch के पास यह निर्धारित करने के लिए पर्याप्त जानकारी नहीं है कि अलार्म को ट्रिगर होना चाहिए या नहीं। 

ग्राफ कोई डेटा प्वाइंट नहीं दिखाता, जो संकेत देता है कि कतार नई है। औसत संदेश संख्या 5 मिनट के भीतर 20 से अधिक होने पर अलार्म ट्रिगर होता है। 

कतार के सक्रिय होने और संदेशों के प्रोसेस होने पर CloudWatch डेटा एकत्र करेगा और अलार्म की स्थिति अपडेट करेगा। 

AWS SNS बनाम SQS

हालाँकि SQS और SNS दोनों मैसेजिंग सेवाएँ हैं, वे अलग-अलग उद्देश्यों की पूर्ति करती हैं। यह अनुभाग प्रत्येक के बीच के अंतर और उपयोग के मामलों को स्पष्ट करता है।

SNS versus SQS comparison table

SNS बनाम SQS तुलना तालिका

AWS SQS सर्वोत्तम प्रथाएँ

SQS का अधिकतम लाभ उठाने के लिए सर्वोत्तम प्रथाओं का पालन करना महत्वपूर्ण है। बेहतर उपयोग के लिए कुछ सुझाव:

  • लागत और लेटेंसी कम करने के लिए लॉन्ग पॉलिंग का उपयोग करें।
  • समस्या वाले संदेशों के लिए डेड-लेटर कतारें लागू करें।
  • जहाँ संभव हो बैच ऑपरेशन्स का उपयोग करें।
  • उचित एक्सेस पॉलिसीज़ के साथ अपनी कतारों को सुरक्षित करें।
  • कतार की गहराई की निगरानी करें और तदनुसार अपनी प्रोसेसिंग क्षमता समायोजित करें।
  • संवेदनशील डेटा के लिए ट्रांज़िट में और एट रेस्ट एन्क्रिप्शन का उपयोग करें।

निष्कर्ष

AWS SQS स्केलेबल और रेज़िलिएंट क्लाउड एप्लिकेशंस बनाने के लिए एक शक्तिशाली टूल है। अपनी एप्लिकेशन के कॉम्पोनेंट्स को डिकपल करके, आप अधिक लचीलापन, फॉल्ट टॉलरेंस, और स्केलेबिलिटी प्राप्त कर सकते हैं। उपयोग में सरलता, मज़बूत फीचर सेट, और अन्य AWS सेवाओं के साथ एकीकरण के साथ, SQS आधुनिक क्लाउड आर्किटेक्चर्स के लिए एक आवश्यक सेवा है।

अपना उपयोग मॉनिटर करें, अपनी इम्प्लीमेंटेशन को ऑप्टिमाइज़ करें, और सर्वोत्तम प्रथाओं का पालन करें ताकि AWS SQS से अधिकतम लाभ मिल सके। जैसे-जैसे आपकी एप्लिकेशन बढ़ती और विकसित होती है, SQS आपकी बदलती आवश्यकताओं के अनुरूप ढल सकता है—इसे आपके AWS टूलकिट में एक मूल्यवान संपत्ति बनाता है।

अपनी AWS यात्रा जारी रखें—हमारे AWS Cloud Technology and Services कोर्स में नामांकन करके। यह प्रारंभिक कदम आपके करियर को आगे बढ़ाएगा और आगे चलकर AWS प्रमाणित होने में सहायक होगा।

FAQs

SQS में स्टैंडर्ड कतार और FIFO कतार में क्या अंतर है?

स्टैंडर्ड कतार अनलिमिटेड थ्रूपुट और कम-से-कम-एक-बार संदेश डिलीवरी की अनुमति देती है, पर संदेशों के क्रम की कोई गारंटी नहीं देती। दूसरी ओर, FIFO कतार यह सुनिश्चित करती है कि संदेश ठीक उसी क्रम में प्रोसेस हों जिसमें वे भेजे गए हैं, और यह गारंटी देती है कि प्रत्येक संदेश केवल एक बार प्रोसेस होगा।

मैं अपनी SQS कतारों तक पहुँच को कैसे नियंत्रित कर सकता/सकती हूँ?

आप IAM पॉलिसीज़ और SQS रिसोर्स पॉलिसीज़ का उपयोग करके SQS कतारों तक पहुँच को नियंत्रित कर सकते हैं। IAM पॉलिसीज़ आपको उपयोगकर्ताओं और रोल्स के लिए परमिशन्स प्रबंधित करने देती हैं, जबकि SQS पॉलिसीज़ कतार स्तर पर एक्सेस प्रबंधित करती हैं—विशेष AWS खातों या कार्रवाइयों तक पहुँच को सीमित करती हैं।

AWS SQS के उपयोग से संबंधित लागतें क्या हैं?

AWS SQS की लागत API अनुरोधों और डेटा ट्रांसफर की संख्या पर आधारित होती है। हर महीने के पहले एक मिलियन अनुरोध मुफ़्त होते हैं, और प्राइसिंग अनुरोधों की संख्या तथा FIFO कतारें और लॉन्ग पॉलिंग जैसी अतिरिक्त सुविधाओं के आधार पर बढ़ती है।

मैं अपनी SQS कतारों के प्रदर्शन में सुधार कैसे कर सकता/सकती हूँ?

प्रदर्शन को ऑप्टिमाइज़ करने के लिए, खाली रिसीव कम करने हेतु लॉन्ग पॉलिंग का उपयोग करें, संदेशों को बल्क में भेजने व प्राप्त करने के लिए बैच ऑपरेशन्स लागू करें, और आवश्यकता अनुसार अपने संदेश प्रसंस्करण की क्षमता समायोजित करने हेतु CloudWatch से अपनी कतार मॉनिटर करें।

Zoumana Keita

लेखक

Zoumana Keita

बहु-प्रतिभाशाली डेटा साइंटिस्ट जो अपना ज्ञान साझा करने और समुदाय को वापस देने में आनंद लेते हैं, ज़ूमाना YouTube पर कंटेंट क्रिएटर हैं और Medium पर शीर्ष तकनीकी लेखक हैं। उन्हें बोलने, कोडिंग करने और पढ़ाने में खुशी मिलती है। ज़ूमाना के पास दो मास्टर डिग्री हैं—पहली पेरिस, फ्रांस से कंप्यूटर साइंस में, मशीन लर्निंग पर केंद्रित, और दूसरी अमेरिका के टेक्सास टेक यूनिवर्सिटी से डेटा साइंस में। उनका करियर फ्रांस में Groupe OPEN में सॉफ्टवेयर डेवलपर के रूप में शुरू हुआ, जिसके बाद वे IBM में मशीन लर्निंग कंसल्टेंट बने, जहाँ उन्होंने बीमा कंपनियों के लिए एंड-टू-एंड एआई समाधान विकसित किए। ज़ूमाना ने Axionable, पेरिस और मॉन्ट्रियल स्थित पहली Sustainable AI स्टार्टअप, से जुड़कर डेटा साइंटिस्ट के रूप में काम किया और फ्रांस, मॉन्ट्रियल, सिंगापुर और स्विट्ज़रलैंड के क्लाइंट्स के लिए मुख्यतः NLP उपयोग मामलों पर आधारित एआई प्रोडक्ट्स लागू किए। इसके अतिरिक्त, अपने समय का 5% उन्होंने अनुसंधान और विकास को समर्पित किया। वर्तमान में, वे IFC - The World Bank Group में सीनियर डेटा साइंटिस्ट के रूप में कार्यरत हैं।

विषय