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
Avviso di fine del supporto: il 30 settembre 2026, AWS verrà interrotto il supporto per. AWS App Mesh Dopo il 30 settembre 2026, non potrai più accedere alla AWS App Mesh console o alle risorse. AWS App Mesh Per ulteriori informazioni, consulta questo post di blog Migrazione AWS App Mesh da Amazon ECS Service Connect.
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 su un'istanza Amazon. EC2 A differenza di un nodo virtuale, che rappresenta Envoy in esecuzione con un'applicazione, un gateway virtuale rappresenta Envoy distribuito da solo.
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 dell'App Mesh per le risorse che si trovano all'interno della mesh. La configurazione per la gestione delle richieste in arrivo sul Virtual Gateway viene specificata utilizzando Gateway Routes.
Un gateway virtuale con un HTTP o un HTTP2 listener riscrive il nome host della richiesta in entrata nel nome del servizio virtuale di destinazione Gateway Route e il prefisso corrispondente dal Gateway Route viene riscritto in, per impostazione predefinita. /
Ad esempio, se hai configurato il prefisso Gateway route match con e/chapter
, se la richiesta in arrivo è, la richiesta verrebbe riscritta su. /chapter/1
/1
Per configurare le riscritture, consulta la sezione Creazione di una route gateway da Gateway Routes.
Quando si crea un gateway virtuale, proxyConfiguration
e non user
deve essere configurato.
Per completare una end-to-end procedura dettagliata, consulta Configurazione del gateway in ingresso.
Creazione di un gateway virtuale
Quando si crea un gateway virtuale, è necessario aggiungere un selettore di namespace con un'etichetta per identificare l'elenco di namespace a cui associare Gateway Routes al gateway virtuale creato.
- AWS Management Console
-
Per creare un gateway virtuale utilizzando il AWS Management Console
-
Apri la console App Mesh all'indirizzo https://console.aws.amazon.com/appmesh/.
-
Scegli la mesh in cui vuoi creare il gateway virtuale. Sono elencate tutte le mesh che possiedi e che sono state condivise con te.
-
Scegli Gateway virtuali nella barra di navigazione a sinistra.
-
Scegli Crea gateway virtuale.
-
Per Nome gateway virtuale, inserisci un nome per il tuo gateway virtuale.
-
(Facoltativo, ma consigliato) Configura le impostazioni predefinite delle politiche del client.
-
(Facoltativo) Seleziona Enforce TLS se desideri che il gateway comunichi solo con i servizi virtuali utilizzando Transport Layer Security (TLS).
-
(Facoltativo) Per Porte, specifica una o più porte su cui desideri imporre la comunicazione TLS con i servizi virtuali.
-
Per Metodo di convalida, selezionate una delle seguenti opzioni. Il certificato specificato deve già esistere e soddisfare requisiti specifici. 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 Secret Discovery Service.
-
Hosting di file locale: specifica il percorso del file della catena di certificati sul file system in cui è distribuito Envoy.
-
(Facoltativo) Inserite un nome alternativo per il soggetto. Per aggiungerne altri SANs, seleziona Aggiungi SAN. SANs deve essere in formato FQDN o URI.
-
(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 su Mutual TLS, consulta i documenti di autenticazione TLS Mutual App Mesh.
-
Hosting Envoy Secret Discovery Service (SDS): inserisci il nome del segreto che Envoy recupera utilizzando Secret Discovery Service.
-
Hosting di file locale: specifica il percorso del file della catena di certificati, nonché la chiave privata, sul file system in cui è distribuito Envoy. Per una descrizione completa e dettagliata end-to-end dell'implementazione di una mesh con un'applicazione di esempio che utilizza la crittografia con file locali, vedi Configurazione di TLS con certificati TLS forniti da file su. GitHub
(Facoltativo) Per configurare la registrazione, seleziona Registrazione. Immettete il percorso dei log di accesso HTTP che desiderate che Envoy utilizzi. Ti consigliamo il /dev/stdout
percorso in modo da poter utilizzare i driver di registro Docker per esportare i log di Envoy su un servizio come Amazon Logs. CloudWatch
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.
-
Configura il listener.
-
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.
(Facoltativo) Abilita il pool di connessioni
Il pool di connessioni limita il numero di connessioni che Virtual Gateway Envoy può stabilire contemporaneamente. Ha lo scopo di proteggere l'istanza di Envoy dal sovraccarico di connessioni e consente di adattare la modellazione del traffico alle esigenze delle 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 della mesh.
I protocolli connectionPool
e connectionPool
PortMapping devono essere gli stessi. Se il protocollo del listener è grpc
ohttp2
, specifica solo. maxRequests
Se il protocollo del listener èhttp
, puoi specificare entrambi maxConnections
e. maxPendingRequests
-
Per Numero massimo di connessioni, specificare il numero massimo di connessioni in uscita.
-
Per Maximum requests, specifica il numero massimo di richieste parallele che possono essere stabilite con Virtual Gateway Envoy.
-
(Facoltativo) Per il numero massimo di richieste in sospeso, specifica il numero di richieste in eccesso dopo il numero massimo di connessioni messe in coda da un Envoy. Il valore predefinito è 2147483647
.
(Facoltativo) Se desideri configurare un controllo sanitario per il tuo listener, seleziona Abilita il controllo dello stato.
Una politica di controllo dello stato di salute è facoltativa, ma se si specificano valori per una politica sanitaria, è necessario specificare i valori per Healthy threshold, Health check interval, Health check protocol, Timeout period e Unhealthy threshold.
-
Per il protocollo Health check, scegli un protocollo. Se si seleziona grpc, il servizio deve essere conforme al GRPC Health Checking Protocol.
-
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.
-
Per Periodo di timeout, specifica il tempo di attesa per ricevere una risposta dal controllo sanitario 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.
(Facoltativo) Se desideri specificare se i client comunicano con questo gateway virtuale tramite TLS, seleziona Abilita la terminazione TLS.
-
Per Modalità, selezionate la modalità per la quale desiderate che TLS sia configurato sul listener.
-
Per Metodo Certificate, selezionate una delle seguenti opzioni. Il certificato deve soddisfare requisiti specifici. Per ulteriori informazioni, consulta Requisiti del certificato.
-
AWS Certificate Manager hosting: seleziona un certificato esistente.
-
Hosting Envoy Secret Discovery Service (SDS): inserisci il nome del segreto che Envoy recupera utilizzando Secret Discovery Service.
-
Hosting di file locale: specifica il percorso della catena di certificati e dei file con 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 su Mutual TLS, consulta i documenti di autenticazione TLS Mutual App Mesh.
-
Hosting Envoy Secret Discovery Service (SDS): inserisci il nome del segreto che Envoy recupera utilizzando Secret Discovery Service.
-
Hosting di file locale: specifica il percorso del file della catena di certificati sul file system in cui è distribuito Envoy.
-
(Facoltativo) Inserite un nome alternativo per il soggetto. Per aggiungerne altri SANs, seleziona Aggiungi SAN. SANs deve essere in formato FQDN o URI.
-
Scegli Crea gateway virtuale per terminare.
- AWS CLI
-
Per creare un gateway virtuale utilizzando AWS CLI.
Crea un gateway virtuale utilizzando il seguente comando e inserisci JSON (sostituisci i red
valori con i tuoi):
-
aws appmesh create-virtual-gateway \
--mesh-name meshName
\
--virtual-gateway-name virtualGatewayName
\
--cli-input-json file://create-virtual-gateway.json
-
Contenuto dell'esempio create-virtual-gateway .json:
{
"spec": {
"listeners": [
{
"portMapping": {
"port": 9080,
"protocol": "http"
}
}
]
}
}
-
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 con AWS CLI for App Mesh, vedere il create-virtual-gatewaycomando nel AWS CLI riferimento.
Implementa un gateway virtuale
Implementa un servizio Amazon ECS o Kubernetes che contenga solo il contenitore Envoy. Puoi anche distribuire il contenitore Envoy su un'istanza Amazon. EC2 Per ulteriori informazioni, consulta Guida introduttiva a App Mesh e Amazon EC2. Per ulteriori informazioni su come eseguire la distribuzione su Amazon ECS, consulta Getting started with App Mesh and Amazon ECS o Getting started with AWS App Mesh and Kubernetes to deploy to Kubernetes. È necessario impostare la variabile di APPMESH_RESOURCE_ARN
ambiente su mesh/mesh-name
/virtualGateway/virtual-gateway-name
e non specificare la configurazione del proxy in modo che il traffico del proxy non venga reindirizzato verso 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 di rilevamento del servizio 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 Creazione di un Network Load Balancer (Amazon ECS), Creazione di un Load Balancer esterno (Kubernetes) o Tutorial: Aumenta la disponibilità della tua applicazione su Amazon. EC2 Puoi anche trovare altri esempi e procedure dettagliate nei nostri esempi di App Mesh.
Abilita l'autorizzazione proxy per Envoy. Per ulteriori informazioni, consulta Autorizzazione Envoy Proxy.
Eliminazione di un gateway virtuale
- AWS Management Console
-
Per eliminare un gateway virtuale utilizzando il AWS Management Console
-
Apri la console App Mesh all'indirizzo https://console.aws.amazon.com/appmesh/.
-
Scegli la mesh da cui desideri eliminare un gateway virtuale. Vengono elencate tutte le mesh che possiedi e che sono state condivise con te.
-
Scegli Gateway virtuali nella barra di navigazione a sinistra.
-
Scegli il gateway virtuale che desideri eliminare e seleziona Elimina. Non è possibile eliminare un gateway virtuale se ha delle route gateway associate. È necessario prima eliminare tutte le route gateway associate. Puoi eliminare solo un gateway virtuale in cui il tuo account è elencato come proprietario della risorsa.
-
Nella casella di conferma, digita delete
e seleziona Elimina.
- AWS CLI
-
Per eliminare un gateway virtuale utilizzando il AWS CLI
-
Utilizza il seguente comando per eliminare il gateway virtuale (sostituisci i red
valori con i tuoi):
aws appmesh delete-virtual-gateway \
--mesh-name meshName
\
--virtual-gateway-name virtualGatewayName
-
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 con AWS CLI for App Mesh, vedere il delete-virtual-gatewaycomando nel AWS CLI riferimento.