जेफिरनेट लोगो

अमेज़ॅन बेडरॉक | पर फाउंडेशन मॉडल के लिए लागत और उपयोग ट्रैकिंग के साथ एक आंतरिक SaaS सेवा बनाएं अमेज़न वेब सेवाएँ

दिनांक:

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

अमेज़ॅन बेडरॉक एक पूरी तरह से प्रबंधित सेवा है जो एक ही एपीआई के माध्यम से एआई21 लैब्स, एंथ्रोपिक, कोहेयर, मेटा, स्टेबिलिटी एआई और अमेज़ॅन जैसी प्रमुख एआई कंपनियों से उच्च प्रदर्शन वाले फाउंडेशन मॉडल का विकल्प प्रदान करती है, साथ ही जेनरेटिव एआई बनाने की क्षमताओं का एक व्यापक सेट भी प्रदान करती है। सुरक्षा, गोपनीयता और जिम्मेदार AI वाले एप्लिकेशन। क्योंकि अमेज़ॅन बेडरॉक सर्वर रहित है, आपको किसी भी बुनियादी ढांचे का प्रबंधन करने की आवश्यकता नहीं है, और आप पहले से ही परिचित एडब्ल्यूएस सेवाओं का उपयोग करके अपने अनुप्रयोगों में जेनरेटिव एआई क्षमताओं को सुरक्षित रूप से एकीकृत और तैनात कर सकते हैं।

फाउंडेशन मॉडल के लिए एक सेवा के रूप में सॉफ़्टवेयर (SaaS) परत पहुंच और उपभोग के केंद्रीकृत शासन को बनाए रखते हुए, अंतिम उपयोगकर्ताओं के लिए एक सरल और सुसंगत इंटरफ़ेस प्रदान कर सकता है। एपीआई गेटवे मॉडल उपभोक्ताओं और मॉडल एंडपॉइंट सेवा के बीच ढीला युग्मन प्रदान कर सकते हैं, और बदलते मॉडल, आर्किटेक्चर और आमंत्रण विधियों के अनुकूल लचीलापन प्रदान कर सकते हैं।

इस पोस्ट में, हम आपको दिखाते हैं कि मल्टी-टेनेंट (टीम) आर्किटेक्चर में अमेज़ॅन बेडरॉक के साथ फाउंडेशन मॉडल तक पहुंचने के लिए आंतरिक SaaS परत कैसे बनाई जाए। हम विशेष रूप से प्रति किरायेदार उपयोग और लागत ट्रैकिंग पर ध्यान केंद्रित करते हैं और प्रति किरायेदार उपयोग थ्रॉटलिंग जैसे नियंत्रण भी करते हैं। हम वर्णन करते हैं कि समाधान और अमेज़ॅन बेडरॉक उपभोग योजनाएँ सामान्य SaaS यात्रा ढांचे से कैसे मेल खाती हैं। समाधान के लिए कोड और a AWS क्लाउड डेवलपमेंट किट (एडब्ल्यूएस सीडीके) टेम्पलेट उपलब्ध है गिटहब भंडार.

चुनौतियां

एक एआई प्लेटफ़ॉर्म प्रशासक को कई विकास टीमों को एफएम तक मानकीकृत और आसान पहुंच प्रदान करने की आवश्यकता होती है।

फाउंडेशन मॉडल तक नियंत्रित पहुंच प्रदान करने में निम्नलिखित कुछ चुनौतियाँ हैं:

  • लागत और उपयोग ट्रैकिंग - व्यक्तिगत किरायेदार की लागत और फाउंडेशन मॉडल के उपयोग को ट्रैक और ऑडिट करें, और विशिष्ट लागत केंद्रों को चार्जबैक लागत प्रदान करें
  • बजट और उपयोग नियंत्रण - प्रति किरायेदार एक परिभाषित आवृत्ति पर फाउंडेशन मॉडल के अनुमत उपयोग के लिए एपीआई कोटा, बजट और उपयोग सीमा प्रबंधित करें
  • अभिगम नियंत्रण और मॉडल शासन - प्रति किरायेदार विशिष्ट अनुमति सूचीबद्ध मॉडल के लिए पहुंच नियंत्रण परिभाषित करें
  • बहु-किरायेदार मानकीकृत एपीआई - फाउंडेशन मॉडल तक लगातार पहुंच प्रदान करें OpenAPI मानकों
  • एपीआई का केंद्रीकृत प्रबंधन - मॉडलों तक पहुंचने के लिए एपीआई कुंजियों को प्रबंधित करने के लिए एक परत प्रदान करें
  • मॉडल संस्करण और अद्यतन - नए और अद्यतन मॉडल संस्करण रोलआउट को संभालें

समाधान अवलोकन

इस समाधान में, हम एक का उल्लेख करते हैं बहु किरायेदार दृष्टिकोण। ए किरायेदार यहां एक व्यक्तिगत उपयोगकर्ता से लेकर एक विशिष्ट परियोजना, टीम या यहां तक ​​कि एक संपूर्ण विभाग भी हो सकता है। जैसे ही हम दृष्टिकोण पर चर्चा करते हैं, हम इस शब्द का उपयोग करते हैं टीम, क्योंकि यह सबसे आम है। हम टीमों के लिए एपीआई पहुंच को प्रतिबंधित और मॉनिटर करने के लिए एपीआई कुंजियों का उपयोग करते हैं। एफएम तक पहुंच के लिए प्रत्येक टीम को एक एपीआई कुंजी सौंपी गई है। किसी संगठन में अलग-अलग उपयोगकर्ता प्रमाणीकरण और प्राधिकरण तंत्र तैनात हो सकते हैं। सरलता के लिए, हम इन्हें इस समाधान में शामिल नहीं करते हैं। आप इस समाधान के साथ मौजूदा पहचान प्रदाताओं को भी एकीकृत कर सकते हैं।

निम्नलिखित आरेख समाधान वास्तुकला और प्रमुख घटकों का सारांश प्रस्तुत करता है। अलग-अलग लागत केंद्रों को सौंपी गई टीमें (किरायेदार) एपीआई सेवा के माध्यम से अमेज़ॅन बेडरॉक एफएम का उपभोग करती हैं। प्रति टीम खपत और लागत को ट्रैक करने के लिए, समाधान प्रत्येक व्यक्तिगत आह्वान के लिए डेटा लॉग करता है, जिसमें लागू मॉडल, टेक्स्ट जेनरेशन मॉडल के लिए टोकन की संख्या और मल्टी-मोडल मॉडल के लिए छवि आयाम शामिल हैं। इसके अलावा, यह प्रत्येक टीम द्वारा प्रति मॉडल आमंत्रण और लागत को एकत्रित करता है।

आप AWS CDK का उपयोग करके समाधान को अपने खाते में तैनात कर सकते हैं। AWS CDK परिचित प्रोग्रामिंग भाषाओं का उपयोग करके आपके क्लाउड एप्लिकेशन संसाधनों को मॉडल और प्रावधान करने के लिए एक ओपन सोर्स सॉफ्टवेयर डेवलपमेंट फ्रेमवर्क है। AWS CDK कोड उपलब्ध है गिटहब भंडार.

निम्नलिखित अनुभागों में, हम समाधान के प्रमुख घटकों पर अधिक विस्तार से चर्चा करते हैं।

प्रति टीम फाउंडेशन मॉडल के उपयोग को कैप्चर करना

प्रति टीम एफएम उपयोग को कैप्चर करने के वर्कफ़्लो में निम्नलिखित चरण शामिल हैं (जैसा कि पिछले चित्र में क्रमांकित किया गया है):

  1. एक टीम का एप्लिकेशन एक POST अनुरोध भेजता है अमेज़ॅन एपीआई गेटवे में लागू किये जाने वाले मॉडल के साथ model_id अनुरोध निकाय में क्वेरी पैरामीटर और उपयोगकर्ता संकेत।
  2. एपीआई गेटवे अनुरोध को एक पर रूट करता है AWS लाम्बा समारोह (bedrock_invoke_model) जो टीम के उपयोग की जानकारी लॉग करने के लिए जिम्मेदार है अमेज़ॅन क्लाउडवॉच और अमेज़ॅन बेडरॉक मॉडल का आह्वान किया जा रहा है।
  3. अमेज़ॅन बेडरॉक द्वारा संचालित एक वीपीसी एंडपॉइंट प्रदान करता है एडब्ल्यूएस प्राइवेटलिंक. इस समाधान में, लैम्ब्डा फ़ंक्शन आपके खाते में वीपीसी और अमेज़ॅन बेडरॉक सेवा खाते के बीच एक निजी कनेक्शन स्थापित करने के लिए प्राइवेटलिंक का उपयोग करके अमेज़ॅन बेडरॉक को अनुरोध भेजता है। PrivateLink के बारे में अधिक जानने के लिए देखें Amazon बेडरॉक तक निजी पहुंच स्थापित करने के लिए AWS PrivateLink का उपयोग करें.
  4. अमेज़ॅन बेडरॉक आह्वान के बाद, अमेज़ॅन क्लाउडट्रेल एक उत्पन्न करता है क्लाउडट्रेल इवेंट.
  5. यदि अमेज़ॅन बेडरॉक कॉल सफल है, तो लैम्ब्डा फ़ंक्शन लागू मॉडल के प्रकार के आधार पर निम्नलिखित जानकारी लॉग करता है और एप्लिकेशन को उत्पन्न प्रतिक्रिया लौटाता है:
    • टीम_आईडी - अनुरोध जारी करने वाली टीम के लिए विशिष्ट पहचानकर्ता।
    • अनुरोध आईडी - अनुरोध का विशिष्ट पहचानकर्ता.
    • मॉडल_आईडी - लागू किए जाने वाले मॉडल की आईडी।
    • इनपुट टोकन - प्रॉम्प्ट के हिस्से के रूप में मॉडल को भेजे गए टोकन की संख्या (टेक्स्ट जेनरेशन और एम्बेडिंग मॉडल के लिए)।
    • आउटपुट टोकन - मॉडल द्वारा उत्पन्न किए जाने वाले टोकन की अधिकतम संख्या (पाठ पीढ़ी मॉडल के लिए)।
    • ऊंचाई - अनुरोधित छवि की ऊंचाई (मल्टी-मोडल मॉडल और मल्टी-मोडल एम्बेडिंग मॉडल के लिए)।
    • चौडाई - अनुरोधित छवि की चौड़ाई (केवल मल्टी-मोडल मॉडल के लिए)।
    • कदम - अनुरोधित चरण (स्थिरता एआई मॉडल के लिए)।

प्रति टीम ट्रैकिंग लागत

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

  1. An अमेज़न EventBridge नियम एक लैम्ब्डा फ़ंक्शन को ट्रिगर करता है (bedrock_cost_tracking) रोज।
  2. लैम्ब्डा फ़ंक्शन पिछले दिन के लिए क्लाउडवॉच से उपयोग की जानकारी प्राप्त करता है, संबंधित लागतों की गणना करता है, और एकत्रित डेटा को संग्रहीत करता है team_id और model_id in अमेज़न सरल भंडारण सेवा (अमेज़ॅन एस3) सीएसवी प्रारूप में।

Amazon S3 में संग्रहीत डेटा को क्वेरी करने और विज़ुअलाइज़ करने के लिए, आपके पास विभिन्न विकल्प हैं S3 चुनें, तथा अमेज़ॅन एथेना और अमेज़ॅन क्विकसाइट।

प्रति टीम उपयोग को नियंत्रित करना

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

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

समाधान तैनात करने से पहले, सुनिश्चित करें कि आपके पास निम्नलिखित हैं:

एडब्ल्यूएस सीडीके ढेर तैनात करें

में निर्देशों का पालन करें README AWS CDK स्टैक को कॉन्फ़िगर और तैनात करने के लिए GitHub रिपॉजिटरी की फ़ाइल।

स्टैक निम्नलिखित संसाधनों को तैनात करता है:

  • निजी नेटवर्किंग वातावरण (VPC, निजी सबनेट, सुरक्षा समूह)
  • मॉडल पहुंच को नियंत्रित करने के लिए IAM की भूमिका
  • आवश्यक पायथन मॉड्यूल के लिए लैम्ब्डा परतें
  • लैम्ब्डा फ़ंक्शन invoke_model
  • लैम्ब्डा फ़ंक्शन list_foundation_models
  • लैम्ब्डा फ़ंक्शन cost_tracking
  • रेस्ट एपीआई (एपीआई गेटवे)
  • एपीआई गेटवे उपयोग योजना
  • उपयोग योजना से संबद्ध एपीआई कुंजी

एक नई टीम को शामिल करें

नई टीमों तक पहुंच प्रदान करने के लिए, आप या तो एक ही एपीआई कुंजी को विभिन्न टीमों में साझा कर सकते हैं और एक अलग प्रदान करके मॉडल खपत को ट्रैक कर सकते हैं team_id एपीआई आमंत्रण के लिए, या दिए गए निर्देशों का पालन करके अमेज़ॅन बेडरॉक संसाधनों तक पहुंचने के लिए उपयोग की जाने वाली समर्पित एपीआई कुंजी बनाएं README.

स्टैक निम्नलिखित संसाधनों को तैनात करता है:

  • एपीआई गेटवे उपयोग योजना पहले बनाए गए REST API से संबद्ध है
  • एपीआई के लिए आरक्षित थ्रॉटलिंग और बर्स्ट कॉन्फ़िगरेशन के साथ नई टीम के लिए उपयोग योजना से जुड़ी एपीआई कुंजी

एपीआई गेटवे थ्रॉटलिंग और बर्स्ट कॉन्फ़िगरेशन के बारे में अधिक जानकारी के लिए देखें बेहतर थ्रूपुट के लिए थ्रॉटल एपीआई अनुरोध.

स्टैक को तैनात करने के बाद, आप देख सकते हैं कि नई एपीआई कुंजी team-2 भी बनाया गया है.

मॉडल अभिगम नियंत्रण कॉन्फ़िगर करें

प्लेटफ़ॉर्म प्रशासक लैम्ब्डा फ़ंक्शन से जुड़ी IAM नीति को संपादित करके विशिष्ट फाउंडेशन मॉडल तक पहुंच की अनुमति दे सकता है invoke_model

IAM अनुमतियाँ फ़ाइल में परिभाषित की गई हैं सेटअप/स्टैक_कंस्ट्रक्ट्स/iam.py। निम्नलिखित कोड देखें:

self.bedrock_policy = iam.Policy(
            scope=self,
            id=f"{self.id}_policy_bedrock",
            policy_name="BedrockPolicy",
            statements=[
                iam.PolicyStatement(
                    effect=iam.Effect.ALLOW,
                    actions=[
                        "sts:AssumeRole",
                    ],
                    resources=["*"],
                ),
                iam.PolicyStatement(
                    effect=iam.Effect.ALLOW,
                    actions=[
                        "bedrock:InvokeModel",
				“bedrock:ListFoundationModels",

                    ],
                    resources=[
  	"arn:aws:bedrock:*::foundation-model/anthropic.claude-v2.1",
	"arn:aws:bedrock:*::foundation-model/amazon.titan-text-express-v1",
	"arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v1"
],
                )
            ],
        )

…

self.bedrock_policy.attach_to_role(self.lambda_role)

सेवा का आह्वान करें

समाधान तैनात करने के बाद, आप सीधे अपने कोड से सेवा शुरू कर सकते हैं। निम्नलिखित

का उपभोग करने के लिए पायथन में एक उदाहरण है invoke_model POST अनुरोध के माध्यम से टेक्स्ट जनरेशन के लिए एपीआई:

api_key=”abcd1234”

model_id = "amazon.titan-text-express-v1" #the model id for the Amazon Titan Express model
 
model_kwargs = { # inference configuration
    "maxTokenCount": 4096,
    "temperature": 0.2
}

prompt = "What is Amazon Bedrock?"

response = requests.post(
    f"{api_url}/invoke_model?model_id={model_id}",
    json={"inputs": prompt, "parameters": model_kwargs},
    headers={
        "x-api-key": api_key, #key for querying the API
        "team_id": team_id #unique tenant identifier 
    }
)

text = response.json()[0]["generated_text"]

print(text)

आउटपुट: अमेज़ॅन बेडरॉक एक आंतरिक प्रौद्योगिकी प्लेटफ़ॉर्म है जिसे अमेज़ॅन द्वारा अपनी कई सेवाओं और उत्पादों को चलाने और संचालित करने के लिए विकसित किया गया है। बेडरॉक के बारे में कुछ प्रमुख बातें...

उपभोग के लिए पायथन में निम्नलिखित एक और उदाहरण है invoke_model POST अनुरोध के माध्यम से एम्बेडिंग जनरेशन के लिए एपीआई:

model_id = "amazon.titan-embed-text-v1" #the model id for the Amazon Titan Embeddings Text model

prompt = "What is Amazon Bedrock?"

response = requests.post(
    f"{api_url}/invoke_model?model_id={model_id}",
    json={"inputs": prompt, "parameters": model_kwargs},
    headers={
        "x-api-key": api_key, #key for querying the API
        "team_id": team_id #unique tenant identifier,
	"embeddings": "true" #boolean value for the embeddings model 
    }
)

text = response.json()[0]["embedding"]

आउटपुट: 0.91796875, 0.45117188, 0.52734375, -0.18652344, 0.06982422, 0.65234375, -0.13085938, 0.056884766, 0.092285156, 0.06982422 , 1.03125, 0.8515625, 0.16308594, 0.079589844, -0.033935547, 0.796875, -0.15429688, -0.29882812, -0.25585938, 0.45703125, 0.044921875 0.34570312, XNUMX…

फ़ाउंडेशन मॉडल तक पहुंच अस्वीकृत

निम्नलिखित का उपभोग करने के लिए पायथन में एक उदाहरण है invoke_model एक्सेस अस्वीकृत प्रतिक्रिया के साथ POST अनुरोध के माध्यम से टेक्स्ट जनरेशन के लिए एपीआई:

model_id = " anthropic.claude-v1" #the model id for Anthropic Claude V1 model
 
model_kwargs = { # inference configuration
    "maxTokenCount": 4096,
    "temperature": 0.2
}

prompt = "What is Amazon Bedrock?"

response = requests.post(
    f"{api_url}/invoke_model?model_id={model_id}",
    json={"inputs": prompt, "parameters": model_kwargs},
    headers={
        "x-api-key": api_key, #key for querying the API
        "team_id": team_id #unique tenant identifier 
    }
)

print(response)
print(response.text)

"ट्रेसबैक (अंतिम नवीनतम कॉल):n फ़ाइल "/var/task/index.py", पंक्ति 213, Lambda_handlern प्रतिक्रिया में = _invoke_text(bedrock_client, model_id, body, model_kwargs)n फ़ाइल"/var/task/index.py ”, पंक्ति 146, _invoke_textn में फ़ाइल बढ़ाएँ ”/var/task/index.py”, पंक्ति 131, _invoke_textn प्रतिक्रिया में = bedrock_client.invoke_model(n फ़ाइल ”/opt/python/botocore/client.py”, पंक्ति 535, _api_calln रिटर्न self._make_api_call(ऑपरेशन_नाम, kwargs)n फ़ाइल "/opt/python/botocore/client.py", लाइन 980, _make_api_calln में error_class(parsed_response, ऑपरेशन_नाम)nbotocore.errorfactory.AccessDeniedException बढ़ाएँ: InvokeModel ऑपरेशन को कॉल करते समय एक त्रुटि उत्पन्न हुई (AccessDeniedException): आपका खाता इस API ऑपरेशन को लागू करने के लिए अधिकृत नहीं है।

लागत अनुमान उदाहरण

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

आइए एक उदाहरण देखें जहां दो टीमें, टीम1 और टीम2, इस पोस्ट में समाधान के माध्यम से अमेज़ॅन बेडरॉक तक पहुंचती हैं। Amazon S3 में एक ही दिन में सहेजा गया उपयोग और लागत डेटा निम्न तालिका में दिखाया गया है।

कॉलम input_tokens और output_tokens किसी दिए गए दिन के लिए क्रमशः प्रति मॉडल और प्रति टीम मॉडल इनवोकेशन में कुल इनपुट और आउटपुट टोकन संग्रहीत करें।

कॉलम input_cost और output_cost प्रति मॉडल और प्रति टीम संबंधित लागतों को संग्रहीत करें। इनकी गणना निम्नलिखित सूत्रों का उपयोग करके की जाती है:

input_cost = input_token_count * model_pricing["input_cost"] / 1000
output_cost = output_token_count * model_pricing["output_cost"] / 1000

टीम_आईडी मॉडल_आईडी इनपुट_टोकन आउटपुट_टोकन आमंत्रण इनपुट_लागत आउटपुट_लागत
Team1 amazon.titan-tg1-बड़ा 24000 2473 1000 0.0072 0.00099
Team1 एंथ्रोपिक.क्लाउड-v2 2448 4800 24 0.02698 0.15686
Team2 amazon.titan-tg1-बड़ा 35000 52500 350 0.0105 0.021
Team2 ai21.j2-ग्रांडे-निर्देश 4590 9000 45 0.05738 0.1125
Team2 एंथ्रोपिक.क्लाउड-v2 1080 4400 20 0.0119 0.14379

एक कार्यात्मक बहु-किरायेदार सर्वर रहित SaaS वातावरण का अंत-से-अंत दृश्य

आइए समझें कि एंड-टू-एंड कार्यात्मक मल्टी-टेनेंट सर्वर रहित SaaS वातावरण कैसा दिख सकता है। निम्नलिखित एक संदर्भ वास्तुकला आरेख है।

यह आर्किटेक्चर आरेख पोस्ट में पहले बताए गए पिछले आर्किटेक्चर आरेख का ज़ूम-आउट संस्करण है, जहां पिछला आर्किटेक्चर आरेख उल्लिखित माइक्रोसर्विसेज (फाउंडेशनल मॉडल सेवा) में से एक का विवरण बताता है। यह आरेख बताता है कि, मूलभूत मॉडल सेवा के अलावा, आपको एक कार्यात्मक और स्केलेबल प्लेटफ़ॉर्म को लागू करने के लिए अपने बहु-किरायेदार SaaS प्लेटफ़ॉर्म में अन्य घटकों की भी आवश्यकता है।

आइए वास्तुकला के बारे में विस्तार से जानें।

किरायेदार आवेदन

टैनेंट एप्लिकेशन फ्रंट एंड एप्लिकेशन हैं जो पर्यावरण के साथ इंटरैक्ट करते हैं। यहां, हम कई किरायेदारों को विभिन्न स्थानीय या AWS परिवेशों से एक्सेस करते हुए दिखाते हैं। नए किरायेदारों के लिए खुद को पंजीकृत करने के लिए एक पंजीकरण पृष्ठ और SaaS सेवा परत के प्रशासकों के लिए एक व्यवस्थापक कंसोल को शामिल करने के लिए फ्रंट एंड एप्लिकेशन को बढ़ाया जा सकता है। यदि किरायेदार अनुप्रयोगों को एक कस्टम तर्क लागू करने की आवश्यकता होती है जिसके लिए SaaS वातावरण के साथ सहभागिता की आवश्यकता होती है, तो वे एप्लिकेशन एडाप्टर माइक्रोसर्विस के विनिर्देशों को लागू कर सकते हैं। उदाहरण परिदृश्य में SaaS परिवेश के प्राधिकरण विनिर्देशों का सम्मान करते हुए कस्टम प्राधिकरण तर्क जोड़ा जा सकता है।

साझा सेवाएं

निम्नलिखित साझा सेवाएँ हैं:

  • किरायेदार और उपयोगकर्ता प्रबंधन सेवाएँ -ये सेवाएँ किरायेदारों के पंजीकरण और प्रबंधन के लिए जिम्मेदार हैं। वे क्रॉस-कटिंग कार्यक्षमता प्रदान करते हैं जो एप्लिकेशन सेवाओं से अलग होती है और सभी किरायेदारों के बीच साझा की जाती है।
  • फाउंडेशन मॉडल सेवा -इस पोस्ट की शुरुआत में समझाया गया समाधान आर्किटेक्चर आरेख इस माइक्रोसर्विस का प्रतिनिधित्व करता है, जहां एपीआई गेटवे से लैम्ब्डा फ़ंक्शंस तक इंटरैक्शन इस माइक्रोसर्विस के दायरे में हो रहा है। सभी किरायेदार इस माइक्रोसर्विस का उपयोग एंथ्रोपिक, एआई21, कोहेयर, स्टेबिलिटी, मेटा और अमेज़ॅन के फ़ाउंडेशन मॉडल के साथ-साथ फाइन-ट्यून किए गए मॉडल को लागू करने के लिए करते हैं। यह क्लाउडवॉच लॉग में उपयोग ट्रैकिंग के लिए आवश्यक जानकारी भी कैप्चर करता है।
  • लागत ट्रैकिंग सेवा -यह सेवा प्रत्येक किरायेदार के लिए लागत और उपयोग को ट्रैक करती है। यह माइक्रोसर्विस क्लाउडवॉच लॉग को क्वेरी करने और डेटा स्टोरेज के लिए एकत्रित उपयोग ट्रैकिंग और अनुमानित लागत को आउटपुट करने के लिए एक शेड्यूल पर चलता है। आगे की रिपोर्ट और विज़ुअलाइज़ेशन बनाने के लिए लागत ट्रैकिंग सेवा का विस्तार किया जा सकता है।

एप्लिकेशन एडाप्टर सेवा

यह सेवा विशिष्टताओं और एपीआई का एक सेट प्रस्तुत करती है जिसे एक किरायेदार अपने कस्टम तर्क को SaaS वातावरण में एकीकृत करने के लिए लागू कर सकता है। कस्टम एकीकरण की कितनी आवश्यकता है, इसके आधार पर, यह घटक किरायेदारों के लिए वैकल्पिक हो सकता है।

बहु-किरायेदार डेटा स्टोर

साझा सेवाएँ अपने डेटा को एक डेटा स्टोर में संग्रहीत करती हैं जिसे एकल साझा किया जा सकता है अमेज़ॅन डायनेमोडीबी एक किरायेदार विभाजन कुंजी के साथ तालिका जो डायनेमोडीबी आइटम को अलग-अलग किरायेदारों के साथ जोड़ती है। लागत ट्रैकिंग साझा सेवा समग्र उपयोग और लागत ट्रैकिंग डेटा को Amazon S3 पर आउटपुट करती है। उपयोग के मामले के आधार पर, एक एप्लिकेशन-विशिष्ट डेटा स्टोर भी हो सकता है।

एक बहु-किरायेदार SaaS वातावरण में बहुत अधिक घटक हो सकते हैं। अधिक जानकारी के लिए देखें AWS सर्वर रहित सेवाओं का उपयोग करके एक बहु-किरायेदार SaaS समाधान का निर्माण.

एकाधिक परिनियोजन मॉडल के लिए समर्थन

SaaS फ्रेमवर्क आमतौर पर दो परिनियोजन मॉडल की रूपरेखा तैयार करते हैं: पूल और साइलो। पूल मॉडल के लिए, सभी किरायेदार सामान्य भंडारण और कंप्यूट बुनियादी ढांचे के साथ साझा वातावरण से एफएम तक पहुंचते हैं। साइलो मॉडल में, प्रत्येक किरायेदार के पास समर्पित संसाधनों का अपना सेट होता है। आप आइसोलेशन मॉडल के बारे में पढ़ सकते हैं सास किरायेदार अलगाव रणनीतियाँ श्वेतपत्र.

प्रस्तावित समाधान दोनों SaaS परिनियोजन मॉडल के लिए अपनाया जा सकता है। पूल दृष्टिकोण में, एक केंद्रीकृत AWS वातावरण एपीआई, भंडारण और कंप्यूटिंग संसाधनों को होस्ट करता है। साइलो मोड में, प्रत्येक टीम एक समर्पित AWS वातावरण में एपीआई, भंडारण और संसाधनों की गणना करती है।

यह समाधान अमेज़ॅन बेडरॉक द्वारा प्रदान की गई उपलब्ध उपभोग योजनाओं के साथ भी फिट बैठता है। AWS अनुमान के लिए दो उपभोग योजनाओं का विकल्प प्रदान करता है:

  • ऑन डिमांड - यह मोड आपको समय-आधारित प्रतिबद्धताओं के बिना भुगतान के आधार पर फाउंडेशन मॉडल का उपयोग करने की अनुमति देता है
  • प्रावधानित थ्रूपुट - यह मोड आपको समय-आधारित अवधि प्रतिबद्धता के बदले में अपने एप्लिकेशन की प्रदर्शन आवश्यकताओं को पूरा करने के लिए पर्याप्त थ्रूपुट का प्रावधान करने की अनुमति देता है

इन विकल्पों के बारे में अधिक जानकारी के लिए देखें अमेज़ॅन बेडरॉक मूल्य निर्धारण.

इस पोस्ट में वर्णित सर्वर रहित SaaS संदर्भ समाधान अंतिम-उपयोगकर्ताओं को बुनियादी और प्रीमियम टियरिंग विकल्प प्रदान करने के लिए अमेज़ॅन बेडरॉक उपभोग योजनाओं को लागू कर सकता है। बेसिक में अमेज़ॅन बेडरॉक की ऑन-डिमांड या प्रावधानित थ्रूपुट खपत शामिल हो सकती है और इसमें विशिष्ट उपयोग और बजट सीमाएं शामिल हो सकती हैं। अनुरोधों, टोकन आकारों या बजट आवंटन के आधार पर किरायेदारों की सीमाएँ थ्रॉटलिंग अनुरोधों द्वारा सक्षम की जा सकती हैं। प्रीमियम श्रेणी के किरायेदारों के पास अमेज़ॅन बेडरॉक की प्रावधानित थ्रूपुट खपत के साथ अपने स्वयं के समर्पित संसाधन हो सकते हैं। ये किरायेदार आम तौर पर उत्पादन कार्यभार से जुड़े होंगे जिनके लिए अमेज़ॅन बेडरॉक एफएम तक उच्च थ्रूपुट और कम विलंबता पहुंच की आवश्यकता होती है।

निष्कर्ष

इस पोस्ट में, हमने चर्चा की कि लागत और उपयोग पर नज़र रखने और प्रत्येक किरायेदार के लिए थ्रॉटलिंग सीमा पर ध्यान देने के साथ मल्टी-टेनेंट सेटअप में अमेज़ॅन बेडरॉक के साथ फाउंडेशन मॉडल तक पहुंचने के लिए एक आंतरिक SaaS प्लेटफ़ॉर्म कैसे बनाया जाए। तलाशने के लिए अतिरिक्त विषयों में संगठन में मौजूदा प्रमाणीकरण और प्राधिकरण समाधानों को एकीकृत करना, द्वि-दिशात्मक क्लाइंट सर्वर इंटरैक्शन के लिए वेब सॉकेट को शामिल करने के लिए एपीआई परत को बढ़ाना, सामग्री फ़िल्टरिंग और अन्य शासन रेलिंग को जोड़ना, कई तैनाती स्तरों को डिजाइन करना, सास में अन्य माइक्रोसर्विसेज को एकीकृत करना शामिल है। वास्तुकला, और भी बहुत कुछ।

इस समाधान के लिए संपूर्ण कोड इसमें उपलब्ध है गिटहब भंडार.

SaaS-आधारित फ़्रेमवर्क के बारे में अधिक जानकारी के लिए, देखें SaaS जर्नी फ्रेमवर्क: AWS पर एक नया SaaS समाधान बनाना.


लेखक के बारे में

हसन पूनावाला AWS में एक वरिष्ठ AI/ML स्पेशलिस्ट सॉल्यूशंस आर्किटेक्ट हैं, जो हेल्थकेयर और लाइफ साइंसेज ग्राहकों के साथ काम करते हैं। हसन AWS पर जेनरेटिव AI और मशीन लर्निंग एप्लिकेशन को डिजाइन, तैनात और स्केल करने में मदद करता है। उनके पास क्लाउड पर मशीन लर्निंग, सॉफ्टवेयर डेवलपमेंट और डेटा साइंस में 15 वर्षों से अधिक का संयुक्त कार्य अनुभव है। अपने खाली समय में, हसन को प्रकृति का पता लगाना और दोस्तों और परिवार के साथ समय बिताना पसंद है।

एनेस्टेसिया त्ज़ेवेलेका AWS में एक वरिष्ठ AI/ML विशेषज्ञ समाधान वास्तुकार हैं। अपने काम के हिस्से के रूप में, वह ईएमईए में ग्राहकों को फाउंडेशन मॉडल बनाने और एडब्ल्यूएस सेवाओं का उपयोग करके स्केलेबल जेनरेटिव एआई और मशीन लर्निंग समाधान बनाने में मदद करती है।

ब्रूकोई पिस्टन नहीं मिलान स्थित AWS के लिए एक जेनरेटिव AI और ML स्पेशलिस्ट सॉल्यूशंस आर्किटेक्ट है। वह बड़े ग्राहकों के साथ काम करते हैं और उन्हें उनकी तकनीकी जरूरतों को गहराई से समझने और एआई और मशीन लर्निंग समाधान डिजाइन करने में मदद करते हैं जो एडब्ल्यूएस क्लाउड और अमेज़ॅन मशीन लर्निंग स्टैक का सबसे अच्छा उपयोग करते हैं। उनकी विशेषज्ञता में शामिल हैं: मशीन लर्निंग एंड टू एंड, मशीन लर्निंग औद्योगीकरण, और जेनरेटिव एआई। उसे अपने दोस्तों के साथ समय बिताना और नई जगहों की खोज करना, साथ ही नए गंतव्यों की यात्रा करना पसंद है।

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

स्पॉट_आईएमजी

नवीनतम खुफिया

स्पॉट_आईएमजी