Comment trouver les principaux contributeurs au trafic via la passerelle NAT dans mon VPC ?

Date de la dernière mise à jour : 01/04/2022

Dans ma facture AWS, j'ai constaté des coûts plus élevés que d'habitude pour une passerelle NAT dans mon Amazon Virtual Private Cloud (Amazon VPC). Comment puis-je trouver les principaux contributeurs au trafic via la passerelle NAT dans mon VPC ?

Résolution

Remarque : dans chacune des commandes suivantes, remplacez x.x.x.x par l'adresse IP privée de votre passerelle NAT. Remplacez y.y. par les deux premiers octets de la plage CIDR du VPC.

Vérifiez que l'option VPC Flow Logs (Journaux de flux VPC) est activée sur votre VPC ou sur une interface réseau Elastic de la passerelle NAT. Créez un journal de flux pour activer les journaux de flux VPC, si nécessaire. Vous pouvez publier les données des journaux de flux sur Amazon CloudWatch Logs ou Amazon Simple Storage Solution (Amazon S3).

Pour effectuer des requêtes dans les journaux CloudWatch

1.    Ouvrez la console CloudWatch.

2.    Dans le volet de navigation, sélectionnez Insights (Analyse).

3.    Dans la liste déroulante, sélectionnez le groupe de journaux de votre passerelle NAT.

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

filter (dstAddr like 'x.x.x.x' and srcAddr like 'y.y.') 
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10

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

filter (dstAddr like 'x.x.x.x' and srcAddr like 'y.y.') or (srcAddr like 'x.x.x.x' and dstAddr like 'y.y.')
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10

6.    Pour identifier les destinations Internet avec lesquelles les instances de votre VPC communiquent le plus souvent, exécutez les requêtes suivantes.

Pour les chargements :

filter (srcAddr like 'x.x.x.x' and dstAddr not like 'y.y.') 
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10

Pour les téléchargements :

filter (dstAddr like 'x.x.x.x' and srcAddr not like 'y.y.') 
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10

Pour interroger les journaux d'un compartiment S3 à l'aide d'Athena

Utilisez soit la console Amazon VPC, soit la console Amazon Athena pour créer une table. Dans cet exemple, la default (valeur par défaut) est la base de données et vpc_flow_logs est la table.

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

SELECT srcaddr,dstaddr,sum(bytes) FROM "default"."vpc_flow_logs"
WHERE srcaddr like 'y.y.%' AND dstaddr like 'x.x.x.x' group by 1,2 order by 3 desc
limit 10;

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

SELECT srcaddr,dstaddr,sum(bytes) FROM "default"."vpc_flow_logs"
WHERE (srcaddr like 'y.y.%' AND dstaddr like 'x.x.x.x') or (srcaddr like 'x.x.x.x' AND dstaddr like 'y.y.%') group by 1,2 order by 3 desc
limit 10;

3.    Pour identifier les destinations Internet avec lesquelles les instances de votre VPC communiquent le plus souvent, exécutez les requêtes suivantes.

Pour les chargements :

SELECT srcaddr,dstaddr,sum(bytes) FROM "default"."vpc_flow_logs"
WHERE (srcaddr like 'x.x.x.x' AND dstaddr not like 'y.y.%') group by 1,2 order by 3 desc
limit 10;

Pour les téléchargements :

SELECT srcaddr,dstaddr,sum(bytes) FROM "default"."vpc_flow_logs"
WHERE (srcaddr not like 'y.y.%' AND dstaddr like 'x.x.x.x') group by 1,2 order by 3 desc
limit 10;