Passer au contenu

Comment puis-je trouver les principaux contributeurs au trafic de passerelle NAT dans mon Amazon VPC ?

Lecture de 7 minute(s)
0

Je souhaite trouver les principaux contributeurs au trafic via la passerelle NAT dans mon Amazon Virtual Private Cloud (Amazon VPC).

Brève description

Pour identifier les principaux pilotes de trafic de la passerelle NAT de votre Amazon VPC, utilisez les métriques Amazon CloudWatch pour identifier l'heure des pics de trafic.

Utilisez ensuite l'une des méthodes suivantes pour identifier les instances Amazon VPC à l'origine des pics de trafic :

  • Si vos journaux de flux Amazon VPC publient des données sur CloudWatch, utilisez CloudWatch Logs.
  • Si vos journaux de flux Amazon VPC publient des données sur Amazon Simple Storage Service (Amazon S3), utilisez Amazon Athena.

Résolution

Prérequis : Vérifiez que vous avez activé les journaux de flux Amazon VPC pour l'interface réseau Elastic Amazon VPC ou la passerelle NAT. Si vous n'avez pas activé les journaux de flux Amazon VPC, créez des journaux de flux qui seront publiés sur Amazon CloudWatch Logs ou Amazon S3.

Utiliser Amazon CloudWatch pour consulter les métriques de votre passerelle NAT

Utilisez les métriques Amazon CloudWatch suivantes pour vos métriques de passerelle NAT afin d'identifier les périodes correspondant aux pics de trafic :

  • Utilisez BytesInFromSource pour indiquer le trafic chargé vers les instances de votre passerelle NAT.
  • Utilisez BytesInFromDestination pour indiquer le trafic qui est téléchargé depuis les instances de votre passerelle NAT.

Puis, interrogez vos journaux de flux Amazon VPC pour identifier les instances qui ont enregistré un trafic élevé au cours des périodes que vous avez identifiées. Vous pouvez utiliser Amazon CloudWatch Logs Insights ou Amazon Athena pour interroger vos journaux de flux Amazon VPC. Pour plus d'informations, consultez la section Interroger les journaux de flux Amazon VPC.

Utiliser CloudWatch Logs Insights pour identifier les instances à l'origine des pics de trafic

Si vos journaux de flux Amazon VPC publient des données sur CloudWatch, utilisez Cloud Watch Logs Insights pour interroger vos journaux de flux Amazon VPC. Dans la liste déroulante Sélectionner un ou plusieurs groupes de journaux, choisissez le groupe de journaux de votre passerelle NAT. Choisissez ensuite Personnalisé pour définir la plage horaire qui correspond aux pics de trafic que vous avez identifiés.

Utilisez l'une des requêtes suivantes pour afficher les instances qui provoquent des pics de trafic en fonction de votre cas d'utilisation. Vous pouvez éventuellement utiliser un modèle CloudFormation pour créer un tableau de bord CloudWatch qui intègre les requêtes suivantes. Pour un exemple de modèle CloudFormation, consultez la page aws-cloudformation-templates sur le site Web de Github.

Remarque : Dans les requêtes suivantes, remplacez example-NAT-private-IP par l'adresse IP privée ou les adresses IP de votre passerelle NAT. Pour les requêtes IP uniques, utilisez l'adresse IP privée principale de votre passerelle NAT. Remplacez example-VPC-CIDR par la plage CIDR de votre Amazon VPC.

Pour identifier les instances qui envoient le plus de trafic via la passerelle NAT, exécutez la requête suivante :

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

Pour identifier le trafic à destination et en provenance des instances, exécutez la requête suivante :

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

Pour identifier les destinations Internet auxquelles vos instances accèdent le plus fréquemment, exécutez les requêtes suivantes :

  • Pour les téléchargements via une passerelle 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
  • Pour les téléchargements via une passerelle 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

Pour identifier les instances qui envoient le plus de trafic via la passerelle NAT aux destinations Internet, exécutez les requêtes suivantes :

  • Pour les chargements via une passerelle 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
  • Pour les téléchargements via une passerelle 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

Pour identifier les instances qui communiquent avec des destinations Internet, utilisez des journaux de flux VPC personnalisés. Assurez-vous que vos journaux de flux VPC incluent les champs pkt-srcaddr et pkt-dstaddr. Pour plus d'informations, consultez la section Trafic via une passerelle NAT.

Utiliser Amazon Athena pour identifier les instances à l'origine des pics de trafic

Si vos journaux de flux Amazon VPC publient des données sur Amazon S3, utilisez Amazon Athena pour créer une table pour vos journaux de flux. Assurez-vous d'ajouter les filtres suivants à votre table pour définir la plage horaire qui correspond aux pics de trafic que vous avez identifiés :

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

Remarque : Remplacez example-timestamp-start par le début de la période correspondant à votre pic de trafic. Remplacez example-timestamp-end par la fin de la période correspondant à votre pic de trafic.

Puis, recherchez dans votre table les instances qui provoquent des pics de trafic.

Remarque : Dans les requêtes suivantes, remplacez example-NAT-private-IP par l'adresse IP privée de votre passerelle NAT. Remplacez example-VPC-CIDR par la plage CIDR de votre Amazon VPC. Remplacez example-database-name.example-table-name par les noms de votre base de données et de votre table. Remplacez example-octets par les deux premiers octets de la plage CIDR de votre Amazon VPC. Par exemple, si votre plage CIDR est 10.24.34.0/23, remplacez example-octets par 10.24.

Pour identifier les instances qui envoient le plus de trafic via la passerelle NAT, exécutez la requête suivante :

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;

Pour identifier le trafic à destination et en provenance des instances, exécutez la requête suivante :

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;

Pour identifier les destinations Internet auxquelles vos instances accèdent le plus fréquemment, exécutez les requêtes suivantes :

  • Pour les chargements via une passerelle 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
  • Pour les téléchargements via une passerelle 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;

Informations connexes

Exemples de requêtes

Fonctions booléennes, de comparaison, numériques, date/heure et autres

Comment puis-je utiliser Athena pour analyser les journaux de flux VPC ?

Utilisation de l'Explorateur de coûts AWS pour analyser les coûts de transfert de données

AWS OFFICIELA mis à jour il y a 4 mois