Gateway virtuali virtuale virtuale virtuale virtuale virtuale virtuale - 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à.

Gateway virtuali virtuale virtuale virtuale virtuale virtuale virtuale

Un gateway virtuale consente alle risorse esterne alla mesh di comunicare con le risorse che si trovano all'interno della mesh. Il gateway virtuale rappresenta un proxy Envoy in esecuzione in un servizio Amazon ECS, in un servizio Kubernetes o in un'istanza Amazon EC2. A differenza di un nodo virtuale, che rappresenta Envoy in esecuzione con un'applicazione, un gateway virtuale rappresenta Envoy distribuito autonomamente.

Le risorse esterne devono essere in grado di risolvere un nome DNS in un indirizzo IP assegnato al servizio o all'istanza che esegue Envoy. Envoy può quindi accedere a tutta la configurazione App Mesh per le risorse che si trovano all'interno della mesh. La configurazione per la gestione delle richieste in arrivo sul gateway virtuale viene specificata utilizzando Gateway Routes.

Importante

Un gateway virtuale con un listener HTTP o HTTP2 riscrive il nome host della richiesta in entrata nel nome del servizio virtuale di destinazione del percorso del gateway e il prefisso corrispondente della Route del gateway viene riscritto/, per impostazione predefinita. Ad esempio, se hai configurato il prefisso di corrispondenza del percorso del gateway su e/chapter, se la richiesta in arrivo è/chapter/1, la richiesta verrà riscritta in/1. Per configurare le riscritture, consulta la sezione Creazione di un percorso gateway di Gateway Routes.

Quando si crea un gateway virtualeproxyConfiguration e nonuser deve essere configurato.

Per completare una end-to-end procedura dettagliata, consulta Configurazione del gateway in entrata.

Creazione di un gateway virtuale virtuale virtuale virtuale

Nota

Quando si crea un gateway virtuale, è necessario aggiungere un selettore di namespace con un'etichetta per identificare l'elenco dei namespace a cui associare i Gateway Routes al gateway virtuale creato.

AWS Management Console
Come creare un gateway virtuale tramiteAWS Management Console
  1. Apri la console App Mesh all'indirizzo https://console.aws.amazon.com/appmesh/.

  2. Scegli la mesh in cui creare il gateway virtuale virtuale virtuale virtuale virtuale virtuale virtuale. Vengono elencate tutte le mesh che possiedi e che sono state condivise con te.

  3. Scegli Gateway virtuali nella barra di navigazione a sinistra.

  4. Scegli Crea gateway virtuale.

  5. In Virvirtuale virtuale virtuale, immettere un nome per il gateway virtuale virtuale virtuale virtuale virtuale virtuale virtuale virtuale virtuale virtuale virtuale virtuale virtuale virtuale

  6. (Facoltativo, ma consigliato) Configurare le impostazioni predefinite della politica del client.

    1. (Facoltativo) Seleziona Applica TLS se desideri che il gateway comunichi solo con i servizi virtuali utilizzando Transport Layer Security (TLS).

    2. (Facoltativo) Per Porte, specifica una o più porte su cui desideri imporre la comunicazione TLS con i servizi virtuali.

    3. Come Metodo di convalida, seleziona una delle opzioni seguenti. Il certificato specificato deve esistere già e soddisfare specifici requisiti. Per ulteriori informazioni, consulta Requisiti del certificato.

      • AWS Private Certificate Authorityhosting: seleziona uno o più certificati esistenti.

      • Hosting Envoy Secret Discovery Service (SDS): inserisci il nome del segreto che Envoy recupera utilizzando il Secret Discovery Service.

      • Hosting di file locale: specifica il percorso del file della catena di certificati sul file system in cui è distribuito Envoy.

    4. (Facoltativo) Immettere un nome alternativo per un messaggio Oggetto. Per aggiungere altre SAN, selezionare Aggiungi SAN. Le SAN devono essere formattate con FQDN o URI.

    5. (Facoltativo) Seleziona Fornisci certificato client e una delle opzioni seguenti per fornire un certificato client quando un server lo richiede e abilitare l'autenticazione TLS reciproca. Per ulteriori informazioni sul protocollo TLS reciproco, consulta i documenti App Mesh Mutual TLS Authentication.

      • Hosting Envoy Secret Discovery Service (SDS): inserisci il nome del segreto che Envoy recupera utilizzando il Secret Discovery Service.

      • Hosting locale dei file: specifica il percorso del file della catena di certificati, nonché la chiave privata, nel file system in cui è distribuito Envoy. Per una descrizione completa della distribuzione di una mesh con un'applicazione di esempio che utilizza la crittografia con file locali, consulta Configurazione di TLS con certificati TLS forniti da file su GitHub. end-to-end

  7. (Facoltativo) Per configurare la registrazione, seleziona Registrazione. Inserisci il percorso dei log di accesso HTTP che desideri utilizzare in Envoy. Consigliamo il/dev/stdout percorso in modo da poter utilizzare i driver di registro Docker per esportare i log di Envoy in un servizio come Amazon CloudWatch Logs.

    Nota

    I log devono ancora essere integrati da un agente nell'applicazione e inviati a una destinazione. Questo percorso file indica a Envoy dove inviare i log.

  8. Configura il listener.

    1. Seleziona un protocollo e specifica la porta su cui Envoy ascolta il traffico. Il listener http consente la transizione della connessione ai websocket. È possibile fare clic su Aggiungi ascoltatore per aggiungere più ascoltatori. Il pulsante Rimuovi rimuoverà quel listener.

    2. (Facoltativo) Abilita pool di connessioni

      Il pool di connessioni limita il numero di connessioni che Virtual Gateway Envoy può stabilire contemporaneamente. Ha lo scopo di proteggere la tua istanza Envoy dal sovraccarico di connessioni e ti consente di adattare la modellazione del traffico alle esigenze delle tue applicazioni.

      È possibile configurare le impostazioni del pool di connessioni sul lato di destinazione per un listener gateway virtuale. App Mesh imposta le impostazioni del pool di connessioni lato client su infinite per impostazione predefinita, semplificando la configurazione mesh.

      Nota

      I protocolliconnectionPool econnectionPool PortMapping devono essere uguali. Se il protocollo del listener ègrpc ohttp2, specificamaxRequests solo. Se il protocollo del tuo listener èhttp, puoi specificare entrambimaxConnections emaxPendingRequests.

      • In Numero massimo di connessioni, specificare il numero massimo di connessioni in uscita.

      • In Numero massimo di richieste parallel che possono essere stabilite con Virtual Gateway Envoy.

      • (Facoltativo) Per Numero massimo di richieste in sospeso, specifica il numero di richieste in eccesso dopo Numero massimo di connessioni che un Envoy mette in coda. Il valore di default è 2147483647.

    3. (Facoltativo) Se desideri configurare un controllo dello stato di salute per il tuo ascoltatore, seleziona Abilita controllo dello stato.

      Una politica di controllo dello stato di Health è facoltativa, ma se si specifica un valore per una politica Health, è necessario specificare i valori per la soglia di integrità, l'intervallo di controllo dello stato, il protocollo di controllo dello stato, il periodo di timeout e la soglia non salutare.

      • Per il protocollo Health Check, scegli un protocollo. Se si seleziona grpc, il servizio deve essere conforme a GRPC Health Checking Health Checking.

      • Per Health check port (Porta del controllo dello stato), specificare la porta su cui deve essere eseguito il controllo dello stato.

      • Per Healthy threshold (Soglia di integrità), specificare il numero di controlli dello stato andati a buon fine consecutivi che devono verificarsi prima di dichiarare il listener integro.

      • Per Health check interval (Intervallo del controllo dello stato), specificare il periodo di tempo in millisecondi tra ogni esecuzione del controllo dello stato.

      • Per Path (Percorso), specificare il percorso di destinazione per la richiesta di controllo dello stato. Questo valore viene utilizzato solo se il protocollo Health check èhttp ohttp2. Il valore viene ignorato per gli altri protocolli.

      • Come Periodo di timeout, specificare il periodo di tempo di attesa in millisecondi quando si riceve una risposta dal controllo dello stato in millisecondi.

      • Per Unhealthy threshold (Soglia di mancata integrità), specificare il numero di controlli dello stato non andati consecutivamente a buon fine che sono necessari per dichiarare il listener non integro.

    4. (Facoltativo) Se desideri specificare se i client comunicano con questo gateway virtuale tramite TLS, seleziona Abilita terminazione TLS.

      • In Modalità, seleziona la modalità per cui desideri configurare TLS sul listener.

      • Per Metodo certificato, seleziona una delle opzioni seguenti. Il certificato deve soddisfare specifici requisiti. Per ulteriori informazioni, consulta Requisiti del certificato.

        • AWS Certificate Managerhosting: seleziona un certificato esistente.

        • Hosting Envoy Secret Discovery Service (SDS): inserisci il nome del segreto che Envoy recupera utilizzando il Secret Discovery Service.

        • Hosting di file locale: specifica il percorso della catena di certificati e dei file di chiave privata sul file system in cui è distribuito Envoy.

      • (Facoltativo) Seleziona Richiedi certificato client e una delle opzioni seguenti per abilitare l'autenticazione TLS reciproca se il client fornisce un certificato. Per ulteriori informazioni sul protocollo TLS reciproco, consulta i documenti App Mesh Mutual TLS Authentication.

        • Hosting Envoy Secret Discovery Service (SDS): inserisci il nome del segreto che Envoy recupera utilizzando il Secret Discovery Service.

        • Hosting di file locale: specifica il percorso del file della catena di certificati sul file system in cui è distribuito Envoy.

      • (Facoltativo) Immettere un nome alternativo per un messaggio Oggetto. Per aggiungere altre SAN, selezionare Aggiungi SAN. Le SAN devono essere formattate con FQDN o URI.

  9. Scegli Crea gateway virtuale per terminare.

AWS CLI

Per creare un gateway virtuale utilizzando ilAWS CLI.

Crea un gateway virtuale usando il seguente comando e inserisci JSON (sostituisci i valori rossi con i tuoi):

  1. aws appmesh create-virtual-gateway \ --mesh-name meshName \ --virtual-gateway-name virtualGatewayName \ --cli-input-json file://create-virtual-gateway.json
  2. Contenuto dell'esempio create-virtual-gateway .json:

    { "spec": { "listeners": [ { "portMapping": { "port": 9080, "protocol": "http" } } ] } }
  3. Output di esempio:

    { "virtualGateway": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/meshName/virtualGateway/virtualGatewayName", "createdAt": "2022-04-06T10:42:42.015000-05:00", "lastUpdatedAt": "2022-04-06T10:42:42.015000-05:00", "meshOwner": "123456789012", "resourceOwner": "123456789012", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "spec": { "listeners": [ { "portMapping": { "port": 9080, "protocol": "http" } } ] }, "status": { "status": "ACTIVE" }, "virtualGatewayName": "virtualGatewayName" } }

Per ulteriori informazioni sulla creazione di un gateway virtuale conAWS CLI for App Mesh, consulta il create-virtual-gatewaycomando nelAWS CLI riferimento.

Implementazione di gateway virtuale virtuale virtuale

Implementa un servizio Amazon ECS o Kubernetes che contenga solo il contenitore Envoy. È inoltre possibile distribuire il container Envoy in un'istanza Amazon EC2. Per ulteriori informazioni, consulta Nozioni di base su App Mesh e Amazon EC2. Per ulteriori informazioni su come distribuire su Amazon ECS, consulta Guida introduttiva ad App Mesh e Amazon ECS o Guida introduttiva adAWS App Mesh e Kubernetes per la distribuzione su Kubernetes. È necessario impostare la variabile diAPPMESH_RESOURCE_ARN ambiente sumesh/mesh-name/virtualGateway/virtual-gateway-name e non specificare la configurazione del proxy in modo che il traffico del proxy non venga reindirizzato a se stesso. Per impostazione predefinita, App Mesh utilizza il nome della risorsa specificata in APPMESH_RESOURCE_ARN quando Envoy si riferisce a se stesso nei parametri e nelle tracce. È possibile ignorare questo comportamento impostando la variabile di ambiente APPMESH_RESOURCE_CLUSTER con il proprio nome.

Ti consigliamo di distribuire più istanze del contenitore e configurare un Network Load Balancer per bilanciare il carico del traffico verso le istanze. Il nome del service discovery del load balancer è il nome che si desidera che i servizi esterni utilizzino per accedere alle risorse presenti nella mesh, ad esempio myapp.example.com. Per ulteriori informazioni, consulta Creating a Network Load Balancer (Amazon ECS), Creazione di un Load Balancer esterno (Kubernetes) o Tutorial: Incrementa la disponibilità della tua applicazione su Amazon EC2. È inoltre possibile trovare ulteriori esempi e procedure dettagliate nei nostri esempi di App Mesh.

Abilita l'autorizzazione proxy per Envoy. Per ulteriori informazioni, consulta Autorizzazione proxy Envoy Proxy.

Eliminazione di un gateway virtuale virtuale virtuale virtuale virtuale virtuale

AWS Management Console
Come eliminare un gateway virtuale tramiteAWS Management Console
  1. Apri la console App Mesh all'indirizzo https://console.aws.amazon.com/appmesh/.

  2. Scegliere la mesh da cui si desidera eliminare un gateway virtuale virtuale virtuale virtuale virtuale virtuale virtuale virtuale virtuale virtuale virtuale virtuale virtuale. Vengono elencate tutte le mesh che possiedi e che sono state condivise con te.

  3. Scegli Gateway virtuali nella barra di navigazione a sinistra.

  4. Scegli il gateway virtuale che desideri eliminare e seleziona Elimina. Non è possibile eliminare un gateway virtuale a cui sono associati percorsi gateway. È necessario prima eliminare tutti i percorsi del gateway associati. Puoi eliminare solo un gateway virtuale in cui il tuo account è elencato come proprietario della risorsa.

  5. Nella casella di conferma, digitadelete e seleziona Elimina.

AWS CLI
Come eliminare un gateway virtuale tramiteAWS CLI
  1. Usa il seguente comando per eliminare il tuo gateway virtuale (sostituisci i valori rossi con i tuoi):

    aws appmesh delete-virtual-gateway \ --mesh-name meshName \ --virtual-gateway-name virtualGatewayName
  2. Output di esempio:

    { "virtualGateway": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/meshName/virtualGateway/virtualGatewayName", "createdAt": "2022-04-06T10:42:42.015000-05:00", "lastUpdatedAt": "2022-04-07T10:57:22.638000-05:00", "meshOwner": "123456789012", "resourceOwner": "123456789012", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "spec": { "listeners": [ { "portMapping": { "port": 9080, "protocol": "http" } } ] }, "status": { "status": "DELETED" }, "virtualGatewayName": "virtualGatewayName" } }

Per ulteriori informazioni sull'eliminazione di un gateway virtuale conAWS CLI for App Mesh, consulta il delete-virtual-gatewaycomando nelAWS CLI riferimento.