Νοημοσύνη δεδομένων Πλάτωνα.
Κάθετη Αναζήτηση & Αι.

Δημιουργήστε μια εσωτερική υπηρεσία SaaS με παρακολούθηση κόστους και χρήσης για μοντέλα θεμελίων στο Amazon Bedrock | Υπηρεσίες Ιστού της Amazon

Ημερομηνία:

Οι επιχειρήσεις επιδιώκουν να ξεκλειδώσουν γρήγορα τις δυνατότητες της γενετικής τεχνητής νοημοσύνης παρέχοντας πρόσβαση σε μοντέλα θεμελίωσης (FM) σε διαφορετικούς κλάδους επιχειρήσεων (LOB). Οι ομάδες πληροφορικής είναι υπεύθυνες να βοηθούν το LOB να καινοτομεί με ταχύτητα και ευελιξία, παρέχοντας παράλληλα κεντρική διακυβέρνηση και παρατηρησιμότητα. Για παράδειγμα, μπορεί να χρειαστεί να παρακολουθούν τη χρήση των FM σε ομάδες, το κόστος αντιστροφής χρέωσης και να παρέχουν ορατότητα στο σχετικό κέντρο κόστους στο LOB. Επιπλέον, μπορεί να χρειαστεί να ρυθμίσουν την πρόσβαση σε διαφορετικά μοντέλα ανά ομάδα. Για παράδειγμα, εάν μόνο συγκεκριμένα FM μπορούν να εγκριθούν για χρήση.

Θεμέλιο του Αμαζονίου είναι μια πλήρως διαχειριζόμενη υπηρεσία που προσφέρει μια επιλογή μοντέλων θεμελίωσης υψηλής απόδοσης από κορυφαίες εταιρείες τεχνητής νοημοσύνης όπως AI21 Labs, Anthropic, Cohere, Meta, Stability AI και Amazon μέσω ενός μόνο API, μαζί με ένα ευρύ σύνολο δυνατοτήτων για τη δημιουργία τεχνητής νοημοσύνης. εφαρμογές με ασφάλεια, απόρρητο και υπεύθυνη τεχνητή νοημοσύνη. Επειδή το Amazon Bedrock είναι χωρίς διακομιστές, δεν χρειάζεται να διαχειριστείτε καμία υποδομή και μπορείτε να ενσωματώσετε και να αναπτύξετε με ασφάλεια δυνατότητες τεχνητής νοημοσύνης στις εφαρμογές σας χρησιμοποιώντας τις υπηρεσίες AWS που γνωρίζετε ήδη.

Ένα επίπεδο λογισμικού ως υπηρεσίας (SaaS) για μοντέλα θεμελίωσης μπορεί να παρέχει μια απλή και συνεπή διεπαφή για τους τελικούς χρήστες, διατηρώντας παράλληλα την κεντρική διαχείριση της πρόσβασης και της κατανάλωσης. Οι πύλες API μπορούν να παρέχουν χαλαρή σύζευξη μεταξύ των καταναλωτών του μοντέλου και της υπηρεσίας τελικού σημείου του μοντέλου και ευελιξία προσαρμογής σε μεταβαλλόμενα μοντέλα, αρχιτεκτονικές και μεθόδους επίκλησης.

Σε αυτήν την ανάρτηση, σας δείχνουμε πώς να δημιουργήσετε ένα εσωτερικό επίπεδο SaaS για πρόσβαση σε μοντέλα θεμελίωσης με το Amazon Bedrock σε μια αρχιτεκτονική πολλών ενοικιαστών (ομάδας). Εστιάζουμε συγκεκριμένα στη χρήση και την παρακολούθηση κόστους ανά μισθωτή, καθώς και σε ελέγχους όπως ο περιορισμός χρήσης ανά μισθωτή. Περιγράφουμε πώς η λύση και τα σχέδια κατανάλωσης του Amazon Bedrock αντιστοιχίζονται στο γενικό πλαίσιο ταξιδιού SaaS. Ο κωδικός για τη λύση και ένα Κιτ ανάπτυξης AWS Cloud Το πρότυπο (AWS CDK) είναι διαθέσιμο στο Αποθετήριο GitHub.

Προκλήσεις

Ένας διαχειριστής πλατφόρμας AI πρέπει να παρέχει τυποποιημένη και εύκολη πρόσβαση σε FM σε πολλές ομάδες ανάπτυξης.

Ακολουθούν ορισμένες από τις προκλήσεις για την παροχή ρυθμιζόμενης πρόσβασης στα μοντέλα θεμελίωσης:

  • Παρακολούθηση κόστους και χρήσης – Παρακολούθηση και έλεγχος μεμονωμένων δαπανών ενοικιαστών και χρήσης μοντέλων θεμελίωσης και παροχή κόστους αντιστροφής χρέωσης σε συγκεκριμένα κέντρα κόστους
  • Έλεγχοι προϋπολογισμού και χρήσης – Διαχειριστείτε το όριο API, τον προϋπολογισμό και τα όρια χρήσης για την επιτρεπόμενη χρήση μοντέλων θεμελίωσης σε μια καθορισμένη συχνότητα ανά μισθωτή
  • Έλεγχος πρόσβασης και μοντέλο διακυβέρνησης – Καθορίστε τα στοιχεία ελέγχου πρόσβασης για συγκεκριμένα επιτρεπόμενα μοντέλα ανά ενοικιαστή
  • Τυποποιημένο API πολλαπλών μισθωτών – Παρέχετε συνεπή πρόσβαση στα μοντέλα θεμελίωσης με OpenAPI πρότυπα
  • Κεντρική διαχείριση του API – Παρέχετε ένα ενιαίο επίπεδο για τη διαχείριση των κλειδιών API για πρόσβαση σε μοντέλα
  • Εκδόσεις και ενημερώσεις μοντέλων – Χειριστείτε νέες και ενημερωμένες εκδόσεις μοντέλων

Επισκόπηση λύσεων

Σε αυτή τη λύση, αναφερόμαστε σε α πολυενοικιαστής πλησιάζω. ΕΝΑ ενοικιαστής εδώ μπορεί να κυμαίνεται από έναν μεμονωμένο χρήστη, ένα συγκεκριμένο έργο, ομάδα ή ακόμα και ένα ολόκληρο τμήμα. Καθώς συζητάμε την προσέγγιση, χρησιμοποιούμε τον όρο , γιατί είναι το πιο κοινό. Χρησιμοποιούμε κλειδιά API για τον περιορισμό και την παρακολούθηση της πρόσβασης API για ομάδες. Σε κάθε ομάδα εκχωρείται ένα κλειδί API για πρόσβαση στα FM. Μπορεί να υπάρχουν διαφορετικοί μηχανισμοί ελέγχου ταυτότητας και εξουσιοδότησης χρήστη που αναπτύσσονται σε έναν οργανισμό. Για απλότητα, δεν τα συμπεριλαμβάνουμε σε αυτή τη λύση. Μπορείτε επίσης να ενσωματώσετε υπάρχοντες παρόχους ταυτότητας με αυτήν τη λύση.

Το παρακάτω διάγραμμα συνοψίζει την αρχιτεκτονική λύσης και τα βασικά στοιχεία. Οι ομάδες (ενοικιαστές) που έχουν ανατεθεί σε ξεχωριστά κέντρα κόστους καταναλώνουν τα Amazon Bedrock FM μέσω μιας υπηρεσίας API. Για την παρακολούθηση της κατανάλωσης και του κόστους ανά ομάδα, η λύση καταγράφει δεδομένα για κάθε μεμονωμένη επίκληση, συμπεριλαμβανομένου του μοντέλου που επικαλείται, του αριθμού των διακριτικών για μοντέλα δημιουργίας κειμένου και των διαστάσεων εικόνας για μοντέλα πολλαπλών μέσων. Επιπλέον, συγκεντρώνει τις κλήσεις ανά μοντέλο και το κόστος από κάθε ομάδα.

Μπορείτε να αναπτύξετε τη λύση στον δικό σας λογαριασμό χρησιμοποιώντας το AWS CDK. Το AWS CDK είναι ένα πλαίσιο ανάπτυξης λογισμικού ανοιχτού κώδικα για τη μοντελοποίηση και την παροχή πόρων της εφαρμογής σας στο cloud χρησιμοποιώντας γνωστές γλώσσες προγραμματισμού. Ο κωδικός AWS CDK είναι διαθέσιμος στο Αποθετήριο GitHub.

Στις επόμενες ενότητες, θα συζητήσουμε τα βασικά συστατικά της λύσης με περισσότερες λεπτομέρειες.

Καταγραφή της χρήσης του μοντέλου βάσης ανά ομάδα

Η ροή εργασίας για την καταγραφή της χρήσης FM ανά ομάδα αποτελείται από τα ακόλουθα βήματα (όπως αριθμούνται στο προηγούμενο διάγραμμα):

  1. Η εφαρμογή μιας ομάδας στέλνει ένα αίτημα POST στο Amazon API Gateway με το μοντέλο που θα επικαλεστεί στο model_id παράμετρος ερωτήματος και η προτροπή χρήστη στο σώμα αιτήματος.
  2. Το API Gateway δρομολογεί το αίτημα σε ένα AWS Lambda λειτουργία (bedrock_invoke_model) που είναι υπεύθυνο για την καταγραφή των πληροφοριών χρήσης της ομάδας amazoncloudwatch και επικαλούμενος το μοντέλο Amazon Bedrock.
  3. Το Amazon Bedrock παρέχει ένα τελικό σημείο VPC που τροφοδοτείται από AWS PrivateLink. Σε αυτήν τη λύση, η συνάρτηση Lambda στέλνει το αίτημα στο Amazon Bedrock χρησιμοποιώντας το PrivateLink για να δημιουργήσει μια ιδιωτική σύνδεση μεταξύ του VPC του λογαριασμού σας και του λογαριασμού υπηρεσίας Amazon Bedrock. Για να μάθετε περισσότερα σχετικά με το PrivateLink, βλ Χρησιμοποιήστε το AWS PrivateLink για να ρυθμίσετε την ιδιωτική πρόσβαση στο Amazon Bedrock.
  4. Μετά την επίκληση του Amazon Bedrock, Amazon CloudTrail παράγει ένα Εκδήλωση CloudTrail.
  5. Εάν η κλήση του Amazon Bedrock είναι επιτυχής, η συνάρτηση Lambda καταγράφει τις ακόλουθες πληροφορίες ανάλογα με τον τύπο του μοντέλου που καλείται και επιστρέφει την απόκριση που δημιουργήθηκε στην εφαρμογή:
    • ομάδα_αναγνωριστικό – Το μοναδικό αναγνωριστικό για την ομάδα που εκδίδει το αίτημα.
    • requestId – Το μοναδικό αναγνωριστικό του αιτήματος.
    • μοντέλο_αναγνωριστικό – Το αναγνωριστικό του προς επίκληση μοντέλου.
    • inputTokens – Ο αριθμός των διακριτικών που αποστέλλονται στο μοντέλο ως μέρος της προτροπής (για μοντέλα δημιουργίας κειμένου και ενσωματώσεων).
    • outputTokens – Ο μέγιστος αριθμός διακριτικών που θα δημιουργηθούν από το μοντέλο (για μοντέλα δημιουργίας κειμένου).
    • ύψος – Το ύψος της ζητούμενης εικόνας (για μοντέλα πολλαπλών τρόπων και μοντέλα ενσωματώσεων πολλαπλών τρόπων).
    • πλάτος – Το πλάτος της ζητούμενης εικόνας (μόνο για πολυτροπικά μοντέλα).
    • βήματα – Τα βήματα που ζητήθηκαν (για μοντέλα Stability AI).

Κόστος παρακολούθησης ανά ομάδα

Μια διαφορετική ροή συγκεντρώνει τις πληροφορίες χρήσης, στη συνέχεια υπολογίζει και εξοικονομεί το κόστος κατ' απαίτηση ανά ομάδα σε καθημερινή βάση. Διαθέτοντας ξεχωριστή ροή, διασφαλίζουμε ότι η παρακολούθηση κόστους δεν επηρεάζει τον λανθάνοντα χρόνο και την απόδοση της ροής επίκλησης του μοντέλου. Τα βήματα της ροής εργασιών είναι τα εξής:

  1. An Amazon EventBridge ο κανόνας ενεργοποιεί μια συνάρτηση λάμδα (bedrock_cost_tracking) καθημερινά.
  2. Η συνάρτηση Lambda λαμβάνει τις πληροφορίες χρήσης από το CloudWatch για την προηγούμενη ημέρα, υπολογίζει το σχετικό κόστος και αποθηκεύει τα δεδομένα που συγκεντρώνονται από team_id και model_id in Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) σε μορφή CSV.

Για να αναζητήσετε και να οπτικοποιήσετε τα δεδομένα που είναι αποθηκευμένα στο Amazon S3, έχετε διαφορετικές επιλογές, μεταξύ των οποίων S3 Επιλέξτε, να Amazon Athena και Amazon QuickSight.

Έλεγχος χρήσης ανά ομάδα

Ένα σχέδιο χρήσης καθορίζει ποιος μπορεί να έχει πρόσβαση σε ένα ή περισσότερα αναπτυγμένα API και προαιρετικά ορίζει το στοχευόμενο ποσοστό αιτημάτων για να ξεκινήσει ο περιορισμός των αιτημάτων. Το σχέδιο χρησιμοποιεί κλειδιά API για τον εντοπισμό πελατών API που μπορούν να έχουν πρόσβαση στο συσχετισμένο API για κάθε κλειδί. Μπορείτε να χρησιμοποιήσετε το API Gateway σχέδια χρήσης για να περιορίσετε αιτήματα που υπερβαίνουν τα προκαθορισμένα όρια. Μπορείτε επίσης να χρησιμοποιήσετε Κλειδιά API και όρια ορίων, τα οποία σας επιτρέπουν να ορίσετε τον μέγιστο αριθμό αιτημάτων ανά κλειδί API που επιτρέπεται να εκδίδει κάθε ομάδα εντός ενός καθορισμένου χρονικού διαστήματος. Αυτό είναι επιπλέον σε Ποσόστωση υπηρεσιών Amazon Bedrock που εκχωρούνται μόνο σε επίπεδο λογαριασμού.

Προϋποθέσεις

Πριν αναπτύξετε τη λύση, βεβαιωθείτε ότι έχετε τα εξής:

Αναπτύξτε τη στοίβα AWS CDK

Ακολουθήστε τις οδηγίες στο README αρχείο του αποθετηρίου GitHub για τη διαμόρφωση και την ανάπτυξη της στοίβας AWS CDK.

Η στοίβα αναπτύσσει τους ακόλουθους πόρους:

  • Ιδιωτικό περιβάλλον δικτύωσης (VPC, ιδιωτικά υποδίκτυα, ομάδα ασφαλείας)
  • Ρόλος IAM για τον έλεγχο της πρόσβασης του μοντέλου
  • Lambda layers για τα απαραίτητα modules Python
  • Λειτουργία λάμδα invoke_model
  • Λειτουργία λάμδα list_foundation_models
  • Λειτουργία λάμδα cost_tracking
  • Rest API (Πύλη API)
  • Σχέδιο χρήσης πύλης API
  • Κλειδί API που σχετίζεται με το σχέδιο χρήσης

Επιβιβαστείτε σε μια νέα ομάδα

Για την παροχή πρόσβασης σε νέες ομάδες, μπορείτε είτε να μοιραστείτε το ίδιο κλειδί API σε διαφορετικές ομάδες και να παρακολουθήσετε τις καταναλώσεις του μοντέλου παρέχοντας ένα διαφορετικό team_id για την επίκληση API ή δημιουργήστε αποκλειστικά κλειδιά API που χρησιμοποιούνται για την πρόσβαση σε πόρους του Amazon Bedrock ακολουθώντας τις οδηγίες που παρέχονται στο README.

Η στοίβα αναπτύσσει τους ακόλουθους πόρους:

  • Σχέδιο χρήσης πύλης API που σχετίζεται με το API REST που δημιουργήθηκε προηγουμένως
  • Κλειδί API που σχετίζεται με το σχέδιο χρήσης για τη νέα ομάδα, με δεσμευμένες διαμορφώσεις throttling και burst για το API

Για περισσότερες πληροφορίες σχετικά με τις διαμορφώσεις throttling και burst Gateway API, ανατρέξτε στο Αιτήματα API Throttle για καλύτερη απόδοση.

Αφού αναπτύξετε τη στοίβα, μπορείτε να δείτε ότι το νέο κλειδί API για team-2 δημιουργείται επίσης.

Διαμόρφωση ελέγχου πρόσβασης μοντέλου

Ο διαχειριστής της πλατφόρμας μπορεί να επιτρέψει την πρόσβαση σε συγκεκριμένα μοντέλα θεμελίωσης επεξεργάζοντας την πολιτική IAM που σχετίζεται με τη συνάρτηση Lambda invoke_model. ο

Τα δικαιώματα IAM ορίζονται στο αρχείο setup/stack_constructs/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)

Επικαλέστε την υπηρεσία

Αφού αναπτύξετε τη λύση, μπορείτε να καλέσετε την υπηρεσία απευθείας από τον κώδικά σας. Το ακόλουθο

είναι ένα παράδειγμα στην Python για την κατανάλωση του invoke_model API για δημιουργία κειμένου μέσω αιτήματος 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)

Έξοδος: Το Amazon Bedrock είναι μια εσωτερική τεχνολογική πλατφόρμα που αναπτύχθηκε από την Amazon για να τρέξει και να λειτουργήσει πολλές από τις υπηρεσίες και τα προϊόντα της. Μερικά βασικά πράγματα για το Bedrock…

Το παρακάτω είναι ένα άλλο παράδειγμα στην Python για την κατανάλωση του invoke_model API για δημιουργία ενσωματώσεων μέσω αιτήματος 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, XNUMX, -XNUMX. XNUMX, XNUMX…

Δεν επιτρέπεται η πρόσβαση στα μοντέλα θεμελίωσης

Το παρακάτω είναι ένα παράδειγμα στην Python για την κατανάλωση του invoke_model API για δημιουργία κειμένου μέσω αιτήματος 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)

“Traceback (τελευταία κλήση):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 raise en File ”/var/task/index.py”, γραμμή 131, στο _invoke_textn answer = bedrock_client.invoke_model(n Αρχείο ”/opt/python/botocore/client.py”, γραμμή 535, στο _api_calln επιστρέψτε self._make_api_call(operation_name, kwargs)n File ”/opt/python/botocore/client.py”, γραμμή 980, στο _make_api_calln raise error_class(parsed_response, Operation_name)nbotocore.errored:Erroriy Παρουσιάστηκε σφάλμα (AccessDeniedException) κατά την κλήση της λειτουργίας InvokeModel: Ο λογαριασμός σας δεν είναι εξουσιοδοτημένος να επικαλείται αυτήν τη λειτουργία API.n”

Παράδειγμα εκτίμησης κόστους

Κατά την επίκληση μοντέλων Amazon Bedrock με τιμολόγηση κατ' απαίτηση, το συνολικό κόστος υπολογίζεται ως το άθροισμα του κόστους εισόδου και εξόδου. Το κόστος εισόδου βασίζεται στον αριθμό των διακριτικών εισόδου που αποστέλλονται στο μοντέλο και το κόστος εξόδου βασίζεται στα διακριτικά που παράγονται. Οι τιμές είναι ανά 1,000 μάρκες εισόδου και ανά 1,000 μάρκες εξόδου. Για περισσότερες λεπτομέρειες και συγκεκριμένες τιμές μοντέλων, ανατρέξτε στο Τιμολόγηση του Amazon Bedrock.

Ας δούμε ένα παράδειγμα όπου δύο ομάδες, η ομάδα1 και η ομάδα2, έχουν πρόσβαση στο Amazon Bedrock μέσω της λύσης αυτής της ανάρτησης. Τα δεδομένα χρήσης και κόστους που αποθηκεύτηκαν στο 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

ομάδα_αναγνωριστικό μοντέλο_αναγνωριστικό input_tokens output_tokens επικλήσεις input_cost output_cost
Team1 amazon.titan-tg1-large 24000 2473 1000 0.0072 0.00099
Team1 ανθρωπικός.claude-v2 2448 4800 24 0.02698 0.15686
Team2 amazon.titan-tg1-large 35000 52500 350 0.0105 0.021
Team2 ai21.j2-grande-instruct 4590 9000 45 0.05738 0.1125
Team2 ανθρωπικός.claude-v2 1080 4400 20 0.0119 0.14379

Προβολή από άκρο σε άκρο ενός λειτουργικού περιβάλλοντος SaaS χωρίς διακομιστή πολλών ενοικιαστών

Ας καταλάβουμε πώς μπορεί να μοιάζει ένα ολοκληρωμένο λειτουργικό περιβάλλον SaaS χωρίς διακομιστή πολλών ενοικιαστών. Ακολουθεί ένα διάγραμμα αρχιτεκτονικής αναφοράς.

Αυτό το διάγραμμα αρχιτεκτονικής είναι μια έκδοση με σμίκρυνση του προηγούμενου διαγράμματος αρχιτεκτονικής που εξηγήθηκε νωρίτερα στην ανάρτηση, όπου το προηγούμενο διάγραμμα αρχιτεκτονικής εξηγεί τις λεπτομέρειες μιας από τις αναφερόμενες μικροϋπηρεσίες (υπηρεσία θεμελιώδους μοντέλου). Αυτό το διάγραμμα εξηγεί ότι, εκτός από την υπηρεσία βασικού μοντέλου, πρέπει να έχετε και άλλα στοιχεία στην πλατφόρμα SaaS πολλαπλών μισθωτών για να εφαρμόσετε μια λειτουργική και επεκτάσιμη πλατφόρμα.

Ας δούμε τις λεπτομέρειες της αρχιτεκτονικής.

Αιτήσεις ενοικιαστών

Οι εφαρμογές μισθωτή είναι οι εφαρμογές μπροστινής πλευράς που αλληλεπιδρούν με το περιβάλλον. Εδώ, δείχνουμε πολλούς ενοικιαστές που έχουν πρόσβαση από διαφορετικά τοπικά περιβάλλοντα ή περιβάλλοντα AWS. Οι εφαρμογές διεπαφής μπορούν να επεκταθούν ώστε να περιλαμβάνουν μια σελίδα εγγραφής για τους νέους ενοικιαστές που μπορούν να εγγραφούν και μια κονσόλα διαχειριστή για τους διαχειριστές του επιπέδου υπηρεσιών SaaS. Εάν οι εφαρμογές μισθωτή απαιτούν την εφαρμογή μιας προσαρμοσμένης λογικής που απαιτεί αλληλεπίδραση με το περιβάλλον SaaS, μπορούν να εφαρμόσουν τις προδιαγραφές της μικρουπηρεσίας προσαρμογέα εφαρμογής. Παραδείγματα σεναρίων θα μπορούσαν να είναι η προσθήκη λογικής προσαρμοσμένης εξουσιοδότησης με ταυτόχρονη τήρηση των προδιαγραφών εξουσιοδότησης του περιβάλλοντος SaaS.

Κοινόχρηστες υπηρεσίες

Οι παρακάτω είναι κοινές υπηρεσίες:

  • Υπηρεσίες διαχείρισης ενοικιαστών και χρηστών – Αυτές οι υπηρεσίες είναι υπεύθυνες για την εγγραφή και τη διαχείριση των ενοικιαστών. Παρέχουν τη διατομεακή λειτουργία που είναι ξεχωριστή από τις υπηρεσίες εφαρμογών και είναι κοινή σε όλους τους ενοικιαστές.
  • Υπηρεσία μοντέλου ιδρύματος –Το διάγραμμα αρχιτεκτονικής λύσης που εξηγείται στην αρχή αυτής της ανάρτησης αντιπροσωπεύει αυτήν τη μικρουπηρεσία, όπου η αλληλεπίδραση από την πύλη API στις λειτουργίες Λάμδα συμβαίνει εντός του πεδίου εφαρμογής αυτής της μικρουπηρεσίας. Όλοι οι ενοικιαστές χρησιμοποιούν αυτήν τη μικρουπηρεσία για να επικαλούνται τα μοντέλα θεμελίων από τα Anthropic, AI21, Cohere, Stability, Meta και Amazon, καθώς και βελτιωμένα μοντέλα. Καταγράφει επίσης τις πληροφορίες που απαιτούνται για την παρακολούθηση χρήσης στα αρχεία καταγραφής του CloudWatch.
  • Υπηρεσία παρακολούθησης κόστους –Αυτή η υπηρεσία παρακολουθεί το κόστος και τη χρήση για κάθε ενοικιαστή. Αυτή η μικρουπηρεσία εκτελείται βάσει ενός χρονοδιαγράμματος για να ρωτήσει τα αρχεία καταγραφής του CloudWatch και να εξάγει τη συγκεντρωτική παρακολούθηση χρήσης και το συναγόμενο κόστος για την αποθήκευση δεδομένων. Η υπηρεσία παρακολούθησης κόστους μπορεί να επεκταθεί για τη δημιουργία περαιτέρω αναφορών και οπτικοποίησης.

Υπηρεσία προσαρμογέα εφαρμογής

Αυτή η υπηρεσία παρουσιάζει ένα σύνολο προδιαγραφών και API που μπορεί να εφαρμόσει ένας μισθωτής προκειμένου να ενσωματώσει την προσαρμοσμένη λογική του στο περιβάλλον SaaS. Με βάση το πόση προσαρμοσμένη ενσωμάτωση απαιτείται, αυτό το στοιχείο μπορεί να είναι προαιρετικό για τους ενοικιαστές.

Αποθήκη δεδομένων πολλαπλών μισθωτών

Οι κοινόχρηστες υπηρεσίες αποθηκεύουν τα δεδομένα τους σε ένα χώρο αποθήκευσης δεδομένων που μπορεί να είναι ένα κοινόχρηστο Amazon DynamoDB πίνακας με κλειδί διαμερίσματος μισθωτή που συνδέει στοιχεία DynamoDB με μεμονωμένους ενοικιαστές. Η κοινή υπηρεσία παρακολούθησης κόστους εξάγει τα συγκεντρωτικά δεδομένα χρήσης και παρακολούθησης κόστους στο Amazon S3. Με βάση την περίπτωση χρήσης, μπορεί να υπάρχει και αποθήκευση δεδομένων για συγκεκριμένη εφαρμογή.

Ένα περιβάλλον SaaS πολλαπλών ενοικιαστών μπορεί να έχει πολύ περισσότερα στοιχεία. Για περισσότερες πληροφορίες, ανατρέξτε στο Δημιουργία λύσης SaaS πολλαπλών μισθωτών με χρήση υπηρεσιών χωρίς διακομιστή AWS.

Υποστήριξη για πολλαπλά μοντέλα ανάπτυξης

Τα πλαίσια SaaS συνήθως περιγράφουν δύο μοντέλα ανάπτυξης: πισίνα και σιλό. Για το μοντέλο της πισίνας, όλοι οι ενοικιαστές έχουν πρόσβαση στα FM από ένα κοινό περιβάλλον με κοινό χώρο αποθήκευσης και υπολογιστική υποδομή. Στο μοντέλο σιλό, κάθε μισθωτής έχει το δικό του σύνολο ειδικών πόρων. Μπορείτε να διαβάσετε για τα μοντέλα απομόνωσης στο Λευκή βίβλο Στρατηγικών Απομόνωσης Ενοικιαστών SaaS.

Η προτεινόμενη λύση μπορεί να υιοθετηθεί και για τα δύο μοντέλα ανάπτυξης SaaS. Στην προσέγγιση συγκέντρωσης, ένα κεντρικό περιβάλλον AWS φιλοξενεί το API, την αποθήκευση και τους υπολογιστικούς πόρους. Στη λειτουργία σιλό, κάθε ομάδα έχει πρόσβαση σε API, αποθήκευση και υπολογιστικούς πόρους σε ένα αποκλειστικό περιβάλλον AWS.

Η λύση ταιριάζει επίσης με τα διαθέσιμα σχέδια κατανάλωσης που παρέχει η Amazon Bedrock. Το AWS παρέχει μια επιλογή από δύο σχέδια κατανάλωσης για συμπέρασμα:

  • Κατα παραγγελια – Αυτή η λειτουργία σάς επιτρέπει να χρησιμοποιείτε μοντέλα θεμελίωσης επί πληρωμή χωρίς να χρειάζεται να κάνετε χρονικές δεσμεύσεις
  • Παρεχόμενη απόδοση – Αυτή η λειτουργία σάς επιτρέπει να παρέχετε επαρκή απόδοση για την κάλυψη των απαιτήσεων απόδοσης της εφαρμογής σας με αντάλλαγμα μια χρονική δέσμευση

Για περισσότερες πληροφορίες σχετικά με αυτές τις επιλογές, ανατρέξτε στο Τιμολόγηση του Amazon Bedrock.

Η λύση αναφοράς SaaS χωρίς διακομιστή που περιγράφεται σε αυτήν την ανάρτηση μπορεί να εφαρμόσει τα σχέδια κατανάλωσης του Amazon Bedrock για να παρέχει βασικές και premium επιλογές βαθμίδων στους τελικούς χρήστες. Η βασική θα μπορούσε να περιλαμβάνει την κατανάλωση κατ' απαίτηση ή την παροχή προβλεπόμενης ροής του Amazon Bedrock και θα μπορούσε να περιλαμβάνει συγκεκριμένα όρια χρήσης και προϋπολογισμού. Τα όρια ενοικιαστών θα μπορούσαν να ενεργοποιηθούν με περιορισμό αιτημάτων βάσει αιτημάτων, μεγεθών διακριτικών ή κατανομής προϋπολογισμού. Οι μισθωτές Premium Tier θα μπορούσαν να έχουν τους δικούς τους αποκλειστικούς πόρους με την προβλεπόμενη κατανάλωση ροής του Amazon Bedrock. Αυτοί οι μισθωτές συνήθως συνδέονται με φόρτους εργασίας παραγωγής που απαιτούν πρόσβαση υψηλής απόδοσης και χαμηλής καθυστέρησης στα Amazon Bedrock FM.

Συμπέρασμα

Σε αυτήν την ανάρτηση, συζητήσαμε πώς να δημιουργήσετε μια εσωτερική πλατφόρμα SaaS για πρόσβαση σε μοντέλα θεμελίωσης με το Amazon Bedrock σε μια ρύθμιση πολλών ενοικιαστών με έμφαση στην παρακολούθηση του κόστους και της χρήσης, καθώς και στα όρια περιορισμού για κάθε μισθωτή. Πρόσθετα θέματα προς διερεύνηση περιλαμβάνουν την ενσωμάτωση υπαρχουσών λύσεων ελέγχου ταυτότητας και εξουσιοδότησης στον οργανισμό, τη βελτίωση του επιπέδου API ώστε να περιλαμβάνει υποδοχές ιστού για αλληλεπιδράσεις αμφίδρομου διακομιστή πελάτη, προσθήκη φιλτραρίσματος περιεχομένου και άλλων προστατευτικών κιγκλιδωμάτων, σχεδιασμός πολλαπλών επιπέδων ανάπτυξης, ενσωμάτωση άλλων μικροϋπηρεσιών στο SaaS αρχιτεκτονική και πολλά άλλα.

Ολόκληρος ο κώδικας για αυτήν τη λύση είναι διαθέσιμος στο Αποθετήριο GitHub.

Για περισσότερες πληροφορίες σχετικά με τα πλαίσια που βασίζονται σε SaaS, ανατρέξτε στο SaaS Journey Framework: Δημιουργία νέας λύσης SaaS στο AWS.


Σχετικά με τους Συγγραφείς

Χασάν Πουνουάλα είναι Senior AI/ML Specialist Solutions Architect στην AWS, συνεργαζόμενος με πελάτες Healthcare και Life Sciences. Ο Hasan βοηθά στο σχεδιασμό, την ανάπτυξη και την κλίμακα εφαρμογών Generative AI και Machine Learning στο AWS. Έχει πάνω από 15 χρόνια συνδυασμένης εργασιακής εμπειρίας στη μηχανική μάθηση, την ανάπτυξη λογισμικού και την επιστήμη δεδομένων στο cloud. Στον ελεύθερο χρόνο του, ο Χασάν λατρεύει να εξερευνά τη φύση και να περνά χρόνο με φίλους και οικογένεια.

Αναστασία Τζεβελέκα είναι Senior AI/ML Specialist Solutions Architect στο AWS. Στο πλαίσιο της δουλειάς της, βοηθά τους πελάτες σε όλη την EMEA να δημιουργήσουν βασικά μοντέλα και να δημιουργήσουν επεκτάσιμες παραγωγικές λύσεις τεχνητής νοημοσύνης και μηχανικής εκμάθησης χρησιμοποιώντας υπηρεσίες AWS.

Bruόχι Pistone είναι Generative AI and ML Specialist Solutions Architect για το AWS με έδρα το Μιλάνο. Συνεργάζεται με μεγάλους πελάτες βοηθώντας τους να κατανοήσουν σε βάθος τις τεχνικές τους ανάγκες και να σχεδιάσουν λύσεις τεχνητής νοημοσύνης και μηχανικής μάθησης που αξιοποιούν με τον καλύτερο τρόπο το AWS Cloud και τη στοίβα Machine Learning Amazon. Η τεχνογνωσία του περιλαμβάνει: Μηχανική μάθηση από άκρο σε άκρο, Βιομηχανοποίηση μηχανικής μάθησης και Generative AI. Του αρέσει να περνά χρόνο με τους φίλους του και να εξερευνά νέα μέρη, καθώς και να ταξιδεύει σε νέους προορισμούς.

Βίκες Πάντει είναι ένας αρχιτέκτονας Generative AI/ML Solutions, που ειδικεύεται στις χρηματοοικονομικές υπηρεσίες όπου βοηθά τους οικονομικούς πελάτες να δημιουργήσουν και να κλιμακώσουν Generative AI/ML πλατφόρμες και λύσεις που κλιμακώνονται σε εκατοντάδες έως και χιλιάδες χρήστες. Στον ελεύθερο χρόνο του, στον Vikesh αρέσει να γράφει σε διάφορα φόρουμ blog και να φτιάχνει lego με το παιδί του.

spot_img

Τελευταία Νοημοσύνη

spot_img

Συνομιλία με μας

Γεια σου! Πώς μπορώ να σε βοηθήσω?