Cosa è AWS App Mesh? - AWS App Mesh

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à.

Cosa è AWS App Mesh?

AWS App Meshè una mesh di servizio che facilita il monitoraggio e il controllo dei servizi. Una service mesh è un livello di infrastruttura dedicato alla gestione delle comunicazioni service-to-service, solitamente attraverso una serie di proxy di rete leggeri distribuiti insieme al codice dell'applicazione. App Mesh standardizza la modalità di comunicazione dei servizi, offrendo visibilità end-to-end e garantendo elevata disponibilità per le applicazioni. App Mesh offre visibilità coerente e controlli del traffico di rete per ogni servizio in un'applicazione.

Aggiunta di App Mesh a un'applicazione di esempio

Considera la seguente semplice applicazione di esempio che non utilizza App Mesh. I due servizi possono essere eseguitiAWS Fargate, Amazon Elastic Container Service (Amazon ECS), Amazon Elastic Kubernetes Service (Amazon EKS), Kubernetes su Amazon Elastic Compute Cloud (Amazon EC2) o su istanze Amazon EC2 con Docker.

In questa illustrazione, entrambiserviceAeserviceBsono individuabili attraversoapps.localspazio dei nomi. Supponiamo, ad esempio, di decidere di distribuire una nuova versione diserviceb.apps.localdenominatoservicebv2.apps.local. Successivamente, vuoi dirigere una percentuale del traffico daservicea.apps.localaserviceb.apps.locale una percentuale aservicebv2.apps.local. Quando ne sei sicuroservicebv2sta funzionando bene, vuoi inviare il 100 percento del traffico ad esso.

App Mesh può aiutarti a farlo senza modificare il codice dell'applicazione o i nomi dei servizi registrati. Se utilizzi App Mesh con questa applicazione di esempio, la mesh potrebbe essere simile alla seguente illustrazione.

In questa configurazione, i servizi non comunicano più direttamente tra loro. Invece, comunicano tra loro tramite un proxy. Il proxy distribuito con ilservicea.apps.localil servizio legge la configurazione di App Mesh e invia il traffico aserviceb.apps.localoservicebv2.apps.localin base alla configurazione.

Componenti di App Mesh

App Mesh è costituito dai seguenti componenti, illustrati nell'esempio precedente:

  • Rete di servizio— Una mesh dei servizi è un limite logico per il traffico di rete tra i servizi che si trovano al suo interno. Nell'esempio, la mesh è denominataappse contiene tutte le altre risorse per la mesh. Per ulteriori informazioni, consultare Mesh di servizio.

  • Servizi virtuali— Un servizio virtuale è un'astrazione di un servizio reale fornita direttamente o indirettamente da un nodo virtuale. Nell'illustrazione, due servizi virtuali rappresentano i due servizi reali. I nomi dei servizi virtuali sono i nomi rilevabili dei servizi effettivi. Quando un servizio virtuale e un servizio effettivo hanno lo stesso nome, più servizi possono comunicare tra loro utilizzando gli stessi nomi utilizzati prima dell'implementazione di App Mesh. Per ulteriori informazioni, consultare Servizi virtuali.

  • Nodi virtuali— Un nodo virtuale agisce come un puntatore logico a un servizio individuabile, ad esempio un servizio Amazon ECS o Kubernetes. Per ogni servizio virtuale, avrai almeno un nodo virtuale. Nell'illustrazione, ilservicea.apps.localIl servizio virtuale ottiene le informazioni di configurazione per il nodo virtualeserviceA. LaserviceAil nodo virtuale è configurato conservicea.apps.localNome per l'individuazione dei servizi. Laserviceb.apps.localIl servizio virtuale è configurato per instradare il traffico versoserviceBeserviceBv2nodi virtuali tramite un router virtuale denominatoserviceB. Per ulteriori informazioni, consultare Nodi virtuali.

  • Router virtuali e percorsi— I router virtuali gestiscono il traffico per uno o più servizi virtuali all'interno della mesh. Un percorso è associato a un router virtuale. Il percorso viene utilizzato per abbinare le richieste per il router virtuale e per distribuire il traffico ai nodi virtuali associati. Nell'illustrazione precedente, ilserviceBrouter virtuale ha un percorso che indirizza una percentuale di traffico versoserviceBnodo virtuale e una percentuale di traffico versoserviceBv2nodo virtuale. È possibile impostare la percentuale di traffico instradato a un particolare nodo virtuale e modificarla nel tempo. È possibile instradare il traffico in base a criteri quali intestazioni HTTP, percorsi URL o nomi dei servizi e dei metodi gRPC. È possibile configurare i criteri di riprova per tentare di nuovo una connessione in caso di errore nella risposta. Ad esempio, nell'illustrazione, il criterio di riprova per il percorso può specificare che una connessione aserviceb.apps.localviene riprovato cinque volte, con dieci secondi tra i tentativi di riprova, seserviceb.apps.localrestituisce tipi specifici di errori. Per ulteriori informazioni, consultare Router virtuali e Route.

  • Proxy— È possibile configurare i servizi per utilizzare il proxy dopo aver creato la mesh e le relative risorse. Il proxy legge la configurazione di App Mesh e dirige il traffico in modo appropriato. Nell'illustrazione, tutte le comunicazioni daservicea.apps.localaserviceb.apps.localpassa attraverso il proxy distribuito con ciascun servizio. I servizi comunicano tra loro utilizzando gli stessi nomi di rilevamento dei servizi utilizzati prima di introdurre App Mesh. Poiché il proxy legge la configurazione App Mesh, puoi controllare il modo in cui i due servizi comunicano tra loro. Quando si desidera modificare la configurazione di App Mesh, non è necessario modificare o ridistribuire i servizi stessi o i proxy. Per ulteriori informazioni, consulta Immagine dell'inviato.

Come iniziare

Per utilizzare App Mesh è necessario disporre di un servizio esistente in esecuzioneAWS Fargate, Amazon ECS, Amazon EKS, Kubernetes su Amazon EC2 o Amazon EC2 con Docker.

Per nozioni di base su App Mesh, consulta una delle seguenti guide:

Accesso a App Mesh

Puoi utilizzare App Mesh nei modi seguenti:

AWS Management Console

La console è un'interfaccia basata su browser che è possibile utilizzare per gestire le risorse App Mesh. È possibile aprire la console App Mesh all'indirizzohttps://console.aws.amazon.com/appmesh/.

AWS CLI

Fornisce comandi per un ampio kit di prodotti AWS ed è supportata su Windows, Mac e Linux. Per iniziare, consulta la Guida per l'utente di AWS Command Line Interface. Per ulteriori informazioni sui comandi per App Mesh, consultaappmeshnellaAWS CLIRiferimento ai comandi.

AWS Tools for Windows PowerShell

Fornisce comandi per un ampio kit di prodotti AWS per coloro che eseguono script nell'ambiente PowerShell. Per iniziare, consulta la Guida per l'utente di AWS Tools for Windows PowerShell. Per ulteriori informazioni sui cmdlet per App Mesh, consultaApp MeshnellaAWSRiferimenti dei cdmlet di Tools for PowerShell.

AWS CloudFormation

Consente di creare un modello che descriva tuttoAWSle risorse che si desidera. Utilizzo del modello,AWS CloudFormationpredispone e configura le risorse per te. Per iniziare, consulta la (Guida per l'utente di AWS CloudFormation. Per ulteriori informazioni sui tipi di risorse App Mesh, consultaRiferimento del tipo di risorsa App MeshnellaAWS CloudFormationModello di riferimento.

SDK AWS

Forniamo inoltre SDK che consentono di accedere a App Mesh da un'ampia gamma di linguaggi di programmazione. Gli SDK si occupano automaticamente di attività quali:

  • Firma crittografica delle richieste di servizio

  • Nuovi tentativi di richiesta

  • Gestione delle risposte di errore

Per ulteriori informazioni sugli SDK disponibili, consultare Strumenti per Amazon Web Services.

Per ulteriori informazioni sulle API App Mesh, consulta laAWS App MeshDocumentazione di riferimento API.