Salta al contenuto

Come posso identificare i principali generatori del traffico verso il gateway NAT nel mio Amazon VPC?

6 minuti di lettura
0

Desidero identificare i principali generatori del traffico che passa attraverso il gateway NAT nel mio Amazon Virtual Private Cloud (Amazon VPC).

Breve descrizione

Per identificare i principali generatori del traffico del gateway NAT in Amazon VPC, utilizza le metriche di Amazon CloudWatch per individuare l'ora dei picchi di traffico.

Quindi utilizza uno dei seguenti metodi per identificare le istanze Amazon VPC che causano picchi di traffico:

  • Se i log di flusso di Amazon VPC pubblicano dati su CloudWatch, utilizza CloudWatch Logs.
  • Se i log di flusso di Amazon VPC pubblicano dati su Amazon Simple Storage Service (Amazon S3), utilizza Amazon Athena.

Risoluzione

Prerequisito: verifica di aver attivato i log di flusso di Amazon VPC per l'interfaccia di rete elastica del gateway NAT o di Amazon VPC. Se non hai attivato i log di flusso di Amazon VPC, crea log di flusso da pubblicare in Amazon CloudWatch Logs o Amazon S3.

Utilizza Amazon CloudWatch per visualizzare le metriche del gateway NAT

Identifica gli intervalli di tempo che corrispondono ai picchi di traffico utilizzando le seguenti metriche di Amazon CloudWatch per il gateway NAT:

  • Utilizza BytesInFromSource per il traffico che viene caricato nelle istanze del gateway NAT.
  • Utilizza BytesInFromDestination per il traffico che viene scaricato dalle istanze del gateway NAT.

Quindi esegui query sui log di flusso di Amazon VPC per individuare le istanze con traffico elevato durante gli intervalli di tempo che hai individuato. Per eseguire query sui log di flusso di Amazon VPC, puoi utilizzare Amazon CloudWatch Logs Insights o Amazon Athena. Per ulteriori informazioni, consulta Eseguire query sui log di flusso Amazon VPC.

Utilizza CloudWatch Logs Insights per identificare le istanze che causano picchi di traffico

Se i log di flusso di Amazon VPC pubblicano dati su CloudWatch, utilizza Cloud Watch Logs Insights per eseguire query sui log di flusso di Amazon VPC. Nel menu a discesa Seleziona uno o più i gruppi di log, scegli il gruppo di log del gateway NAT. Quindi scegli Personalizzato per impostare l'intervallo di tempo che corrisponde ai picchi di traffico che hai identificato.

Utilizza una delle seguenti query per visualizzare le istanze che causano picchi di traffico in base al caso d'uso. Puoi anche utilizzare un modello CloudFormation per creare una dashboard di CloudWatch che includa le seguenti query. Per un esempio di modello CloudFormation, consulta aws-cloudformation-templates sul sito web Github.

Nota: nelle seguenti query, sostituisci example-NAT-private-IP con l'indirizzo IP o gli indirizzi IP privati del gateway NAT. Per le query con un solo IP, utilizza l'indirizzo IP privato primario del gateway NAT. Sostituisci example-VPC-CIDR con l'intervallo CIDR di Amazon VPC.

Per identificare le istanze che inviano la maggior parte del traffico attraverso il gateway NAT, esegui questa query:

filter (dstAddr in ["example-NAT-private-IP", "example-NAT-private-IP", "example-NAT-private-IP"] AND isIpv4InSubnet(srcAddr, "example-VPC-CIDR"))  
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr  
| sort bytesTransferred desc

Per identificare il traffico da e verso le istanze, esegui questa query:

filter (dstAddr in ["example-NAT-private-IP", "example-NAT-private-IP", "example-NAT-private-IP"] AND isIpv4InSubnet(srcAddr, "example-VPC-CIDR"))  
OR (srcAddr in ["example-NAT-private-IP", "example-NAT-private-IP", "example-NAT-private-IP"] AND isIpv4InSubnet(dstAddr, "example-VPC-CIDR"))  
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr  
| sort bytesTransferred desc

Per identificare le destinazioni Internet a cui le istanze accedono più frequentemente, esegui queste query:

  • Per i caricamenti tramite un gateway NAT:

    filter (srcAddr in ["example-NAT-private-IP", "example-NAT-private-IP", "example-NAT-private-IP"] AND not isIpv4InSubnet(dstAddr, "example-VPC-CIDR"))  
    | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr  
    | sort bytesTransferred desc  
    | limit 10
  • Per gli scaricamenti tramite un gateway NAT:

    filter (dstAddr in ["example-NAT-private-IP", "example-NAT-private-IP", "example-NAT-private-IP"] AND not isIpv4InSubnet(srcAddr, "example-VPC-CIDR"))  
    | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr  
    | sort bytesTransferred desc  
    | limit 10

Per identificare le istanze che inviano la maggior parte del traffico attraverso il gateway NAT alle destinazioni Internet, esegui queste query:

  • Per i caricamenti tramite un gateway NAT:

    parse @message "* * * * * * * * * * * * * * * " as version, account_id, interface_id, srcaddr, dstaddr, srcport, dstport, protocol, packets, bytes, start, end, action, log_status, pkt_srcaddr, pkt_dstaddr| filter (dstaddr like 'example-NAT-private-IP' and isIpv4InSubnet(pkt_srcaddr, 'example-VPC-CIDR'))   
    | stats sum(bytes) as bytesTransferred by pkt_srcaddr, pkt_dstaddr  
    | sort bytesTransferred desc  
    | limit 10
  • Per gli scaricamenti tramite un gateway NAT:

    parse @message " * * * * * * * * * * * * * * *" as version, account_id, interface_id, srcaddr, dstaddr, srcport, dstport, protocol, packets, bytes, start, end, action, log_status, pkt_srcaddr, pkt_dstaddr| filter (srcaddr like 'example-NAT-private-IP' and !isIpv4InSubnet(pkt_srcaddr, 'example-VPC-CIDR'))   
    | stats sum(bytes) as bytesTransferred by pkt_srcaddr, pkt_dstaddr  
    | sort bytesTransferred desc  
    | limit 10

Per identificare le istanze che comunicano con le destinazioni Internet, utilizza log di flusso del VPC personalizzati. Assicurati che i log di flusso del VPC includano i campi pkt-srcaddr e pkt-dstaddr. Per ulteriori informazioni, consulta Traffico attraverso un gateway NAT zonale.

Usa Amazon Athena per identificare le istanze che causano picchi di traffico

Se i log di flusso di Amazon VPC pubblicano dati in Amazon S3, utilizza Amazon Athena per creare una tabella dei log di flusso. Assicurati di aggiungere i seguenti filtri alla tabella per impostare l'intervallo di tempo che corrisponde ai picchi di traffico che hai identificato:

start>= (example-timestamp-start)  
end>= (example-timestamp-end)

Nota: sostituisci example-timestamp-start con l'inizio dell'intervallo di tempo corrispondente al picco di traffico. Sostituisci example-timestamp-end con la fine dell'intervallo di tempo corrispondente al picco di traffico.

Quindi esegui query sulla tabella per individuare le istanze che causano picchi di traffico.

Nota: nelle seguenti query, sostituisci example-NAT-private-IP con l'indirizzo IP privato del gateway NAT. Sostituisci example-VPC-CIDR con l'intervallo CIDR di Amazon VPC. Sostituisci example-database-name.example-table-name con i nomi del tuo database e della tua tabella. Sostituisci example-octets con i primi due ottetti dell'intervallo CIDR di Amazon VPC. Ad esempio, se l'intervallo CIDR è 10.24.34.0/23, sostituisci example-octets con 10.24.

Per identificare le istanze che inviano la maggior parte del traffico attraverso il gateway NAT, esegui questa query:

SELECT srcaddr,dstaddr,sum(bytes) FROM example-database-name.example-table-name WHERE srcaddr like example-octets AND dstaddr like example-NAT-private-IP group by 1,2 order by 3 desclimit 10;

Per identificare il traffico da e verso le istanze, esegui questa query:

SELECT srcaddr,dstaddr,sum(bytes) FROM example-database-name.example-table-name WHERE (srcaddr like example-octets AND dstaddr like example-NAT-private-IP) or (srcaddr like example-NAT-private-IP AND dstaddr like example-octets) group by 1,2 order by 3 desclimit 10;

Per identificare le destinazioni Internet a cui le istanze accedono più frequentemente, esegui queste query:

  • Per i caricamenti tramite un gateway NAT:

    SELECT srcaddr,dstaddr,sum(bytes) FROM example-database-name.example-table-name WHERE (srcaddr like example-NAT-private-IP AND dstaddr not like example-octets) group by 1,2 order by 3 desclimit 10;0
  • Per gli scaricamenti tramite un gateway NAT:

    SELECT srcaddr,dstaddr,sum(bytes) FROM example-database-name.example-table-name WHERE (srcaddr not like example-octets AND dstaddr like example-NAT-private-IP) group by 1,2 order by 3 desclimit 10;

Informazioni correlate

Query di esempio

Funzioni booleane, di confronto, numeriche, datetime e altre

Come posso utilizzare Athena per analizzare i log di flusso Amazon VPC?

Using AWS Cost Explorer to analyze data transfer costs (Utilizzo di AWS Cost Explorer per analizzare i costi di trasferimento dei dati)