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à.
Componenti Amazon ECS Service Connect
Quando usi Amazon ECS Service Connect, configuri ogni servizio Amazon ECS per eseguire un'applicazione server che riceve richieste di rete (servizio client-server) o per eseguire un'applicazione client che effettua le richieste (servizio client).
Quando ti prepari a iniziare a usare Service Connect, inizia con un servizio client-server. È possibile aggiungere una configurazione Service Connect a un nuovo servizio o a un servizio esistente. Amazon ECS crea un endpoint Service Connect nello spazio dei nomi. Inoltre, Amazon ECS crea una nuova implementazione nel servizio per sostituire le attività attualmente in esecuzione.
Le attività esistenti e altre applicazioni potranno continuare a connettersi agli endpoint esistenti e alle applicazioni esterne. Se un servizio client-server aggiunge attività scalando orizzontalmente, le nuove connessioni dei client verranno bilanciate tra tutte le attività. Se un servizio client-server viene aggiornato, le nuove connessioni dei client verranno bilanciate tra le attività della nuova versione.
Le attività esistenti non possono essere risolte e connettersi al nuovo endpoint. Solo le nuove attività con una configurazione Service Connect nello stesso namespace e che iniziano a essere eseguite dopo questa distribuzione possono risolversi e connettersi a questo endpoint.
Ciò significa che l'operatore dell'applicazione client determina quando la configurazione della propria app cambia, anche se l'operatore dell'applicazione server può modificare la configurazione in qualsiasi momento. L'elenco degli endpoint nel namespace può cambiare ogni volta che viene distribuito un servizio nel namespace. Le attività esistenti e le attività sostitutive continuano a comportarsi come dopo la distribuzione più recente.
Considera i seguenti esempi:
Innanzitutto, si supponga di creare un'applicazione disponibile sulla rete Internet pubblica in un unico AWS CloudFormation modello e in un unico AWS CloudFormation stack. La scoperta pubblica e la raggiungibilità dovrebbero essere create per ultimo AWS CloudFormation, incluso il servizio client frontend. I servizi devono essere creati in questo ordine per evitare un periodo di tempo in cui il servizio client di front-end è attivo e disponibile al pubblico, ma un back-end non lo è. Ciò elimina l'invio di messaggi di errore al pubblico durante quel periodo di tempo. Nel AWS CloudFormation, devi utilizzare il dependsOn
per indicare AWS CloudFormation che non è possibile creare più servizi Amazon ECS in parallelo o contemporaneamente. È necessario aggiungere dependsOn
al servizio client di front-end per ogni servizio client-server di back-end a cui si connettono le attività del client.
In secondo luogo, supponiamo che esista un servizio di front-end senza la configurazione di Service Connect. Le attività si connettono a un servizio di back-end esistente. Aggiungi prima una configurazione di Service Connect client-server al servizio di back-end utilizzando lo stesso nome nel DNS o clientAlias
utilizzato dal front-end. Questo crea una nuova distribuzione, quindi tutti i metodi di rilevamento del rollback della distribuzione AWS SDKs e altri metodi per ripristinare e ripristinare il servizio di backend alla distribuzione e alla configurazione precedenti. AWS Management Console AWS CLI Se sei soddisfatto delle prestazioni e del comportamento del servizio di back-end, aggiungi una configurazione di Service Connect client o client-server al servizio di front-end. Solo le attività della nuova implementazione utilizzano il proxy Service Connect aggiunto a quelle nuove attività. In caso di problemi con questa configurazione, è possibile eseguire il rollback e ripristinare la configurazione precedente utilizzando il rilevamento del rollback di distribuzione o AWS Management Console altri metodi per ripristinare AWS SDKs e ripristinare il servizio di backend alla distribuzione e alla configurazione precedenti. AWS CLI Se si utilizza un altro sistema di individuazione dei servizi basato sul DNS anziché su Service Connect, qualsiasi applicazione frontend o client inizia a utilizzare nuovi endpoint e modifica la configurazione degli endpoint dopo la scadenza della cache DNS locale, in genere impiegando diverse ore.
Rete
Per impostazione predefinita, il proxy Service Connect ascolta la mappatura delle porte containerPort
dalla definizione dell'attività. Le regole del gruppo di sicurezza devono consentire il traffico in entrata (in ingresso) verso questa porta dalle sottoreti in cui verranno eseguiti i client.
Anche se si imposta un numero di porta nella configurazione del servizio Service Connect, ciò non cambia la porta per il servizio client-server su cui è in ascolto il proxy Service Connect. Quando imposti questo numero di porta, Amazon ECS modifica la porta dell'endpoint a cui si connettono i servizi client, sul proxy Service Connect all'interno di tali attività. Il proxy nel servizio client si connette al proxy nel servizio client-server utilizzando la containerPort
.
Se desideri modificare la porta su cui il proxy Service Connect è in ascolto, modifica ingressPortOverride
nella configurazione di Service Connect del servizio client-server. Se si modifica questo numero di porta, è necessario consentire il traffico in entrata su questa porta utilizzata dal traffico diretto a questo servizio.
Il traffico inviato dalle applicazioni ai servizi Amazon ECS configurati per Service Connect richiede che Amazon VPC e le sottoreti dispongano di regole della tabella di instradamento e di regole dell'ACL di rete che consentano i numeri di porta containerPort
e ingressPortOverride
che si stanno utilizzando.
È possibile utilizzare Service Connect per inviare traffico tra VPCs. Gli stessi requisiti per le regole della tabella di routing, la rete ACLs e i gruppi di sicurezza si applicano a entrambi VPCs.
Ad esempio, due cluster creano attività diverse VPCs. Un servizio in ogni cluster è configurato per utilizzare lo stesso spazio dei nomi. Le applicazioni di questi due servizi possono risolvere ogni endpoint nello spazio dei nomi senza alcuna configurazione DNS del VPC. Tuttavia, i proxy non possono connettersi a meno che il peering VPC, le tabelle di routing VPC o subnet e la rete VPC non consentano il traffico sui numeri di porta e. ACLs containerPort
ingressPortOverride
Per le attività che utilizzano la modalità bridge
di rete, è necessario creare un gruppo di sicurezza con una regola in entrata che consenta il traffico sull'intervallo di porte dinamiche superiore. Quindi, assegna il gruppo di sicurezza a tutte le EC2 istanze del cluster Service Connect.
Proxy Service Connect
Se crei o aggiorni un servizio con la configurazione Service Connect, Amazon ECS aggiunge un nuovo contenitore a ogni nuova attività non appena viene avviata. Questo modello di utilizzo di un container separato è denominato sidecar
. Questo container non è presente nella definizione dell'attività e non è possibile configurarlo. Amazon ECS gestisce la configurazione del contenitore nel servizio. Ciò consente di riutilizzare le stesse definizioni di attività tra più servizi, namespace e attività senza Service Connect.
Risorse proxy
-
Per le definizioni delle attività, è necessario impostare i parametri di CPU e memoria.
Si consiglia di aggiungere altre 256 unità CPU e almeno 64 MiB di memoria alla CPU dell'attività e alla memoria per il contenitore proxy Service Connect. Su AWS Fargate, la quantità minima di memoria che è possibile impostare è 512 MiB. Su Amazon EC2, è richiesta la memoria per la definizione delle attività.
-
Per il servizio, si imposta la configurazione del registro nella configurazione Service Connect.
-
Se prevedi che le attività di questo servizio ricevano più di 500 richieste al secondo al massimo del carico, ti consigliamo di aggiungere 512 unità CPU alla CPU dell'attività in questa definizione di attività per il container del proxy Service Connect.
-
Se prevedi di creare più di 100 servizi Service Connect nello spazio dei nomi o 2.000 attività in totale su tutti i servizi Amazon ECS all'interno dello spazio dei nomi, ti consigliamo di aggiungere 128 MiB di memoria alla memoria dell'attività per il container del proxy Service Connect. È necessario eseguire questa operazione in ogni definizione di attività utilizzata da tutti i servizi Amazon ECS nello spazio dei nomi.
Configurazione del proxy
Le applicazioni si connettono al proxy nel container sidecar nella stessa attività in cui si trova l'applicazione. Amazon ECS configura l'attività e i contenitori in modo che le applicazioni si connettano al proxy solo quando l'applicazione è connessa ai nomi degli endpoint nello stesso spazio dei nomi. Tutto il resto del traffico non utilizza il proxy. L'altro traffico include indirizzi IP nello stesso VPC, endpoint di AWS servizio e traffico esterno.
- Bilanciamento del carico
-
Service Connect configura il proxy per utilizzare la strategia round-robin per il bilanciamento del carico tra le attività in un endpoint Service Connect. Il proxy locale, che si trova nell'attività da cui proviene la connessione, seleziona una delle attività del servizio client-server che fornisce l'endpoint.
Ad esempio, si consideri un'attività eseguita WordPress in un servizio configurato come servizio client in uno spazio dei nomi chiamato locale. È presente un altro servizio con 2 attività che eseguono il database MySQL. Questo servizio è configurato per fornire un endpoint denominato
mysql
tramite Service Connect nello stesso spazio dei nomi. Nell' WordPress operazione, l' WordPress applicazione si connette al database utilizzando il nome dell'endpoint. Le connessioni a questo nome vanno al proxy che viene eseguito in un contenitore laterale durante la stessa attività. Quindi, il proxy può connettersi a una delle attività MySQL utilizzando la strategia round-robin.Strategie di bilanciamento del carico: round-robin
- Rilevamento di anomalie
-
Questa funzionalità utilizza i dati acquisiti dal proxy sulle connessioni non riuscite precedenti per evitare l'invio di nuove connessioni agli host che le contenevano. Service Connect configura la funzionalità di rilevamento delle anomalie del proxy per fornire controlli dell'integrità passivi.
Utilizzando l'esempio precedente, il proxy può connettersi a entrambe le attività MySQL. Se il proxy ha effettuato più connessioni a un'attività MySQL specifica e negli ultimi 30 secondi 5 di queste, o un numero maggiore, non sono andate a buon fine, il proxy evita di eseguire tale attività MySQL per un periodo compreso tra 30 e 300 secondi.
- Tentativi
-
Service Connect configura il proxy in modo da tentare nuovamente le connessioni che passano attraverso il proxy e falliscono. Il secondo tentativo evita di utilizzare l'host delle connessioni precedenti. In questo modo si garantisce che ogni connessione attraverso Service Connect non si interrompa per motivi isolati.
Numero di tentativi: 2
- Timeout
-
Service Connect configura il proxy in modo che attenda un tempo massimo per la risposta delle applicazioni client-server. Il valore di timeout predefinito è di 15 secondi, ma può essere aggiornato.
Parametri opzionali:
idleTimeout ‐ La quantità di tempo in secondi in cui una connessione rimane attiva mentre è inattiva. Un valore di disabilita.
0
idleTimeout
L'
idleTimeout
impostazione predefinita perHTTP
/HTTP2
/GRPC
è 5 minuti.L'
idleTimeout
impostazione predefinita perTCP
è 1 ora.perRequestTimeout‐ Il periodo di attesa che l'upstream risponda con una risposta completa per richiesta. Il valore di
0
si spegne.perRequestTimeout
Questo può essere impostato solo quando il contenitore dell'applicazioneappProtocol
for èHTTP
/HTTP2
/GRPC
. L'impostazione predefinita è 15 secondi.Nota
Se
idleTimeout
è impostato su un tempo inferiore aperRequestTimeout
, la connessione si chiuderà quandoidleTimeout
viene raggiunto ilperRequestTimeout
.
Considerazioni
Quando si utilizza Service Connect, tenere presente quanto segue:
-
Le attività eseguite in Fargate devono utilizzare la versione della piattaforma Fargate Linux
1.4.0
o superiore per utilizzare Service Connect. -
La versione dell'agente Amazon ECS sull'istanza del contenitore deve essere uguale
1.67.2
o superiore. -
Per utilizzare Service Connect, le istanze di container devono eseguire la versione
20230428
dell'AMI di Amazon Linux 2023 ottimizzata per Amazon ECS, o versioni successive, o la versione2.0.20221115
dell'AMI di Amazon Linux 2 ottimizzata per Amazon ECS. Oltre all'agente del container Amazon ECS, queste versioni contengono l'agente Service Connect. Per ulteriori informazioni sull'agente Service Connect, consulta Amazon ECS Service Connect Agenton GitHub. -
Le istanze di container devono disporre dell'autorizzazione
ecs:Poll
per la risorsaarn:aws:ecs:
. Se utilizzi ilregion
:0123456789012
:task-set/cluster
/*ecsInstanceRole
, non è necessario aggiungere altre autorizzazioni. La policy gestita daAmazonEC2ContainerServiceforEC2Role
dispone delle autorizzazioni necessarie. Per ulteriori informazioni, consulta Ruolo IAM delle istanze di container Amazon ECS. -
Solo i servizi che utilizzano implementazioni in sequenza sono supportati con Service Connect.
-
Le attività che utilizzano la modalità di
bridge
rete e utilizzano Service Connect non supportano il parametro di definizione delhostname
contenitore. -
Per utilizzare Service Connect, le definizioni di attività devono impostare il limite di memoria dell'attività. Per ulteriori informazioni, consulta Proxy Service Connect.
-
Le definizioni delle attività che impostano i limiti di memoria del contenitore non sono supportate.
È possibile impostare i limiti di memoria del container sui container, ma è necessario impostare il limite di memoria delle attività su un numero maggiore della somma dei limiti di memoria del container. La CPU e la memoria aggiuntive nei limiti delle attività che non vengono allocate nei limiti del container negli altri contenitori vengono utilizzate dal container del proxy Service Connect e da altri container che non impostano limiti di container. Per ulteriori informazioni, consulta Proxy Service Connect.
-
È possibile configurare Service Connect per utilizzare qualsiasi spazio dei AWS Cloud Map nomi nella stessa regione nella stessa. Account AWS
-
Ogni servizio può appartenere a un solo namespace.
-
Sono supportate solo le attività create dai servizi.
-
Tutti gli endpoint devono essere univoci all'interno di uno spazio dei nomi.
-
Tutti i nomi di rilevamento devono essere univoci all'interno di uno spazio dei nomi.
-
È necessario ridistribuire i servizi esistenti prima che le applicazioni possano risolvere nuovi endpoint. I nuovi endpoint aggiunti allo spazio dei nomi dopo l'implementazione più recente non verranno aggiunti alla configurazione dell'attività. Per ulteriori informazioni, consulta Componenti Amazon ECS Service Connect.
-
Service Connect non elimina i namespace quando vengono eliminati i cluster. È necessario eliminare i namespace in. AWS Cloud Map
-
Per impostazione predefinita, il traffico di Application Load Balancer viene instradato tramite l'agente Service Connect in modalità rete.
awsvpc
Se desideri che il traffico non di servizio aggiri l'agente Service Connect, utilizza ilingressPortOverride
parametro nella configurazione del servizio Service Connect. -
Service Connect with TLS non supporta la modalità di rete Bridge. È supportata solo la modalità di
awsvpc
rete.
Service Connect non supporta quanto segue:
-
Container Windows
-
HTTP 1.0
-
Attività autonome
-
Servizi che utilizzano tipi blue/green di distribuzione esterni
-
Le istanze di container
External
per Amazon ECS Anywhere non sono supportate con Service Connect. -
PPv2