Quando gli indirizzi IP non sono sufficienti per avviare istanze o scalare - AWS App Runner

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

Quando gli indirizzi IP non sono sufficienti per avviare istanze o scalare

Nota

Per i servizi pubblici, App Runner non crea un'interfaccia di rete elastica (ENI) nell'utenteVPCs, quindi i servizi pubblici non sono interessati da questa modifica.

Questa guida ti aiuta a risolvere gli errori di esaurimento dell'IP che potresti riscontrare sui servizi App Runner con VPC accesso al traffico in uscita abilitato.

App Runner avvierà le istanze nelle sottoreti associate al connettore. VPC App Runner ne crea 1 ENI per istanza nella sottorete in cui viene lanciata l'istanza. Ciascuno ENI utilizza un IP privato in quella sottorete. Le sottoreti hanno un numero fisso di sottoreti IPs disponibili, a seconda del CIDR blocco associato a quella sottorete. Se App Runner non riesce a trovare sottoreti con una quantità sufficiente IPs per crearne unaENI, non riuscirà ad avviare nuove istanze per il servizio App Runner. Ciò potrebbe causare problemi con il potenziamento dei servizi. In questi casi, verranno visualizzati i registri degli eventi di App Runner che indicano che App Runner non è in grado di trovare le sottoreti disponibili. IPs Puoi aggiornare i tuoi servizi seguendo le istruzioni riportate di seguito per risolvere tali errori.

Come aggiornare i tuoi servizi per averne altri disponibili IPs

Il numero di indirizzi IP disponibili in una sottorete si basa sul CIDR blocco associato a quella sottorete. CIDRi blocchi associati a una sottorete non possono essere aggiornati dopo la creazione. Inoltre, i VPC connettori App Runner non possono essere aggiornati una volta creati. Per fornire di più IPs ai tuoi servizi App Runner con l'VPCaccesso per il traffico in uscita abilitato:

  1. Crea nuove sottoreti con un blocco più grande. CIDR

  2. Crea un nuovo VPC connettore con le nuove sottoreti.

  3. Aggiorna il servizio App Runner per utilizzare il nuovo VPC connettore.

Calcolo IPs necessario per i tuoi servizi

Prima di provare a creare nuove sottoreti con CIDR blocchi più grandi, stabilisci il numero di sottoreti IPs che ti serviranno tra i tuoi servizi App Runner. Ti consigliamo di calcolare il numero di elementi IPs necessari nel connettore come segue:

  1. Per ogni servizio con VPC accesso per il traffico in uscita abilitato, annota la dimensione massima (numero massimo di istanze) nella configurazione di auto scaling.

  2. Somma i valori di tutti i servizi.

  3. Raddoppia questa somma per tenere conto delle nuove istanze lanciate durante le implementazioni blu-green.

Esempio

Consideriamo due servizi A e B che utilizzano lo stesso connettore. VPC

  1. Il servizio A ha la dimensione massima configurata come 25.

  2. La dimensione massima del servizio B è configurata come 15.

Richiesto IPs = 2 × (25 + 15) = 80

Assicurati che le tue sottoreti abbiano almeno 80 disponibili IPs combinate.

Crea nuove sottoreti

  1. Determina la dimensione del CIDR blocco necessaria per IPv4 utilizzare questa formula (nota che 5 IPs sono riservate daAWS: Subnet Sizing)

    Number of available IP addresses = 2^(32 - prefix length) - 5
    Example : For 192.168.1.0/24: Prefix length is 24 Number of available IP addresses = 2^(32 - 24) - 5 = 2^8-5 = 251 IP addresses For 10.0.0.0/16: Prefix length is 16 Number of available IP addresses = 2^(32 - 16) - 5 = 2^16-5 = 65,531 IP addresses Quick reference: /24 = 251 IP addresses /16 = 65,531 IP addresses
  2. Crea una nuova sottorete utilizzando. AWS EC2 CLI

    aws ec2 create-subnet --vpc-id <my-vpc-id> --cidr-block <cidr-block>

    Esempio (crea una sottorete con IPs 4.096):

    aws ec2 create-subnet --vpc-id my-vpc-id --cidr-block 10.0.0.0/20
  3. Crea un nuovo connettore. VPC Vedi: Gestire VPC l'accesso

  4. Aggiorna i tuoi servizi con il traffico in uscita per VPC abilitare l'uso di questo nuovo VPC connettore. App Runner inizierà a utilizzare le nuove sottoreti una volta aggiornato il servizio.

Nota

VPCssono inoltre limitati al numero di unità disponibili IPs che possono essere assegnate alle sottoreti per blocchi. CIDR Se non riesci a creare sottoreti con CIDR blocchi più grandi, potresti dover aggiornare le tue VPC con CIDR blocchi secondari prima di creare le nuove sottoreti.

Allegare blocchi secondari ai tuoi CIDR VPC

Associa il CIDR blocco secondario a questoVPC.

aws ec2 associate-vpc-cidr-block --vpc-id <my-vpc-id> --cidr-block <cidr-block>

Esempio:

aws ec2 associate-vpc-cidr-block --vpc-id my-vpc-id --cidr-block 10.1.0.0/16

Verifica

Dopo aver aggiornato il servizio. È possibile utilizzare quanto segue per eseguire la verifica della correzione

  1. Monitora i registri degli eventi: monitora i registri degli eventi del servizio App Runner per verificare che non vengano visualizzati nuovi IP o ENI errori di indisponibilità

  2. Controlla Service Scaling:

    1. Amplia completamente il servizio modificando il numero minimo di istanze nella configurazione di scalabilità automatica

    2. Verifica che tutte le nuove istanze vengano avviate senza errori relativi all'IP

    3. Monitora diversi eventi di scalabilità per garantire prestazioni costanti

  3. Banner per la console: se utilizzi la console di AWS gestione, verifica che App Runner non mostri più un banner di avviso insufficiente. IPs

  4. VPCe utilizzo dell'IP di sottorete:

    1. Utilizza la VPC dashboard o CLI i comandi per controllare l'utilizzo degli indirizzi IP nelle nuove sottoreti.

    2. Verifica che ci sia ancora un buon margine di disponibilità IPs dopo l'ampliamento del servizio

Insidie comuni

Quando risolvi l'esaurimento dell'IP nei servizi App Runner, tieni presente questi potenziali problemi:

  1. Pianificazione inadeguata degli indirizzi IP: sottovalutare le esigenze IP future può portare a problemi ricorrenti di esaurimento. Effettua una pianificazione approfondita della capacità, considerando la potenziale crescita del servizio e gli scenari di picco di utilizzo.

  2. Trascurando l'utilizzo dell'IP a VPC livello globale: ricorda che VPC anche altri AWS servizi all'interno dello stesso utilizzano indirizzi IP. Considerate i requisiti IP di tutti i servizi quando pianificate le vostre configurazioni VPC e quelle della sottorete.

  3. Trascurate di aggiornare i servizi: dopo aver creato nuove sottoreti o VPC connettori, assicuratevi di aggiornare i servizi App Runner per utilizzare le nuove configurazioni. In caso contrario, si continuerà a utilizzare l'intervallo IP esaurito.

  4. Incomprensione delle sovrapposizioni di CIDR blocchi: quando aggiungi CIDR blocchi secondari a unVPC, assicurati che non si sovrappongano ai blocchi esistenti. I CIDR blocchi sovrapposti possono causare conflitti di routing e ambiguità degli indirizzi IP.

  5. Superamento VPC dei limiti: tieni presente che a VPC può avere un massimo di 5 CIDR blocchi (1 primario e 4 secondari). Pianifica l'espansione dello spazio degli indirizzi IP entro questi vincoli.

  6. Ignorare la distribuzione della sottorete AZ: quando create nuove sottoreti, assicuratevi che siano distribuite su più zone di disponibilità per un'elevata disponibilità e tolleranza agli errori.

  7. Trascurando ENI i limiti: ricorda che esistono dei limiti al numero di istanze ENIs che possono essere collegate alle istanze. Verifica che i limiti del tuo AWS account siano in linea con l'utilizzo pianificato dell'interfaccia di rete.

Conoscendo queste insidie, puoi gestire in modo più efficace VPC le tue risorse ed evitare problemi di esaurimento dell'IP nei tuoi servizi App Runner.

Risorse aggiuntive

Glossario

  1. ENI: Elastic Network Interface, un'interfaccia di rete virtuale inAWS.

  2. CIDR: Classless Inter-Domain Routing, un metodo per l'allocazione degli indirizzi IP.

  3. VPCConnettore: Una risorsa che consente ad App Runner di connettersi al tuo. VPC