Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esegui carichi di lavoro basati su messaggi su larga scala utilizzando AWS Fargate
Creato da Stan Zubarev (AWS)
Ambiente: PoC o pilota | Tecnologie: contenitori e microservizi; Messaggistica e comunicazioni; Database | Servizi AWS: AWS Fargate; Amazon SQS; Amazon DynamoDB |
Riepilogo
Questo modello mostra come eseguire carichi di lavoro basati su messaggi su larga scala nel cloud AWS utilizzando contenitori e AWS Fargate.
L'uso di contenitori per elaborare i dati può essere utile quando la quantità di dati elaborati da un'applicazione supera i limiti dei servizi di elaborazione serverless basati su funzioni. Ad esempio, se un'applicazione richiede una capacità di calcolo o un tempo di elaborazione superiore a quello offerto da AWS Lambda, l'utilizzo di Fargate può migliorare le prestazioni.
La seguente configurazione di esempio utilizza AWS Cloud Development Kit (AWS CDK) TypeScript per configurare e distribuire le seguenti risorse nel cloud AWS:
Un servizio Fargate
Una coda Amazon Simple Queue Service (Amazon SQS)
Una tabella Amazon DynamoDB.
Una CloudWatch dashboard Amazon
Il servizio Fargate riceve ed elabora i messaggi dalla coda Amazon SQS, quindi li archivia nella tabella Amazon DynamoDB. Puoi monitorare quanti messaggi Amazon SQS vengono elaborati e quanti elementi DynamoDB vengono creati da Fargate utilizzando la dashboard. CloudWatch
Nota: puoi anche utilizzare il codice di esempio di questo pattern per creare carichi di lavoro di elaborazione dati più complessi in architetture serverless basate sugli eventi. Per ulteriori informazioni, consulta Esegui carichi di lavoro pianificati e basati su eventi su larga scala con AWS Fargate.
Prerequisiti e limitazioni
Prerequisiti
Un account AWS attivo
La versione più recente di AWS Command Line Interface (AWS CLI), installata e configurata sul computer locale
Git
, installato e configurato sul tuo computer locale Il CDK AWS, installato e configurato sul tuo computer locale
Vai
, installato e configurato sul tuo computer locale Docker
, installato e configurato sul tuo computer locale
Architettura
Stack tecnologico Target
Amazon SQS
AWS Fargate
Amazon DynamoDB
Architettura Target
Il diagramma seguente mostra un esempio di flusso di lavoro per l'esecuzione di carichi di lavoro basati su messaggi su larga scala nel cloud AWS utilizzando Fargate:
![Esempio di flusso di lavoro per carichi di lavoro basati sui messaggi](images/pattern-img/ac1f893e-5de7-4192-8254-3ff87a30033f/images/20013440-037f-491b-a0c3-6b46f0118dcb.png)
Il diagramma mostra il flusso di lavoro seguente:
Il servizio Fargate utilizza il polling lungo di Amazon SQS per ricevere messaggi da una coda Amazon SQS.
Il servizio Fargate elabora quindi i messaggi Amazon SQS e li archivia in una tabella DynamoDB.
Automazione e scalabilità
Per automatizzare il ridimensionamento del numero di attività Fargate, puoi configurare Amazon Elastic Container Service (Amazon ECS) Service Auto Scaling. È consigliabile configurare la politica di scalabilità in base al numero di messaggi visibili nella coda Amazon SQS dell'applicazione.
Per ulteriori informazioni, consulta Dimensionamento basato su AMAZON SQS nella Guida per l'utente di Dimensionamento automatico Amazon EC2.
Strumenti
Servizi AWS
AWS Fargate ti aiuta a eseguire container senza dover gestire server o istanze Amazon Elastic Compute Cloud (Amazon EC2). Viene utilizzato insieme ad Amazon Elastic Container Service (Amazon ECS).
Amazon Simple Queue Service (Amazon SQS) fornisce una coda ospitata sicura, durevole e disponibile che ti aiuta a integrare e disaccoppiare sistemi e componenti software distribuiti.
Amazon DynamoDB è un servizio di database NoSQL interamente gestito che offre prestazioni elevate, prevedibili e scalabili.
Amazon ti CloudWatch aiuta a monitorare i parametri delle tue risorse AWS e delle applicazioni che esegui su AWS in tempo reale.
Codice
Il codice per questo pattern è disponibile nel repository GitHub sqs-fargate-ddb-cdk-go
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Clona il GitHub repository. | Clona il repository GitHub sqs-fargate-ddb-cdk-go sul
| Sviluppatore di app |
Verifica che l'AWS CLI sia configurata sull'account AWS corretto e che il CDK AWS disponga delle autorizzazioni richieste. |
Questa procedura richiede inoltre che l'AWS CDK disponga delle autorizzazioni per il provisioning dell'infrastruttura all'interno del tuo account AWS. Per concedere le autorizzazioni richieste, devi creare un profilo AWS denominato nella CLI di AWS ed esportarlo come variabile di ambiente AWS_PROFILE. Nota: se non hai mai usato la CDK AWS nel tuo account AWS in precedenza, devi prima effettuare il provisioning delle risorse AWS CDK richieste. Per ulteriori informazioni, consulta Bootstrapping nella AWS CDK v2 Developer Guide. | Sviluppatore di app |
Distribuisci lo stack CDK AWS sul tuo account AWS. |
| Sviluppatore di app |
Attività | Descrizione | Competenze richieste |
---|---|---|
Invia un messaggio di prova alla coda Amazon SQS. | Per istruzioni, consulta Invio di messaggi a una coda (console) nella Amazon SQS Developer Guide. Prova l'esempio di messaggio Amazon SQS
| Sviluppatore di app |
Verificate che il messaggio di prova compaia nei registri del CloudWatch servizio Fargate. | Segui le istruzioni in Visualizzazione dei CloudWatch log nella Amazon ECS Developer Guide. Assicurati di esaminare i log per il gruppo di go-fargate-servicelog nel cluster ECS. go-service-cluster | Sviluppatore di app |
Verificare che il messaggio di test appaia nella tabella DynamoDB. |
| Sviluppatore di app |
Verifica che il servizio Fargate stia inviando messaggi a CloudWatch Logs. |
Nota: il CDK AWS crea automaticamente la CloudWatch dashboard nel tuo account AWS. | Sviluppatore di app |
Attività | Descrizione | Competenze richieste |
---|---|---|
Elimina lo stack CDK AWS. |
| Sviluppatore di app |
Verifica che lo stack CDK AWS sia eliminato. | Per assicurarti che lo stack sia stato eliminato, esegui il seguente comando:
Il Per ulteriori informazioni, consulta Descrivere ed elencare i tuoi stack nella AWS CloudFormation User Guide. | Sviluppatore di app |
Risorse correlate
Configurazione dell'interfaccia a riga di comando di AWS (Guida per l'utente dell'interfaccia a riga di comando di AWS per la versione 2)
Riferimento API (riferimento API AWS CDK)
SDK AWS per Go
v2 (documentazione Go)