如何找出我的 Amazon VPC 中通过 NAT 网关的最大流量源?

3 分钟阅读
0

我想找出我的 Amazon Virtual Private Cloud (Amazon VPC) 中通过 NAT 网关的最大流量源。

简短描述

要找出 Amazon VPC 中通过 NAT 网关的最大流量源,请完成以下步骤:

  1. 使用 Amazon CloudWatch 指标找出出现流量峰值的时间。
  2. 使用 CloudWatch 日志找出导致流量峰值的实例。
  3. 使用 Amazon Simple Storage Service (Amazon S3) 或 Amazon Athena 找出导致流量峰值的实例。

解决方法

使用 CloudWatch 指标找出出现流量峰值的时间

使用以下 CloudWatch 指标来确定和监控 NAT 网关和具体的峰值时间

  • BytesInFromSource - 上传
  • BytesInFromDestination - 下载

检查您是否为 Amazon VPC 或 NAT 网关弹性网络接口启用 Amazon VPC 流日志。如果您没有启用 Amazon VPC 流日志,请创建一个流日志,以便启用流日志。启用 Amazon VPC 流日志后,流日志数据将发布到 CloudWatch 日志或 Amazon S3。

使用 CloudWatch Logs Insights 来识别导致流量峰值的实例

**注意:**对于步骤 5、6 和 7 中的命令,将 example-NAT-private-IP 替换为您的 NAT 网关私有 IP 地址,将 example-VPC-CIDR 替换为您的 Amazon VPC CIDR。

  1. 打开 CloudWatch 控制台

  2. 在导航窗格中,选择 Logs Insights

  3. 从下拉列表中,选择您的 NAT 网关的日志组。

  4. 选择预定义的时间范围,或者选择自定义来设置自己的时间范围。

  5. 运行以下命令,找出通过 NAT 网关发送流量最多的实例:

filter (dstAddr like example-NAT-private-IP and isIpv4InSubnet(srcAddr, example-VPC-CIDR)) | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10
  1. 运行以下命令,找出进出实例的流量:
filter (dstAddr like example-NAT-private-IP and isIpv4InSubnet(srcAddr, example-VPC-CIDR)) or (srcAddr like example-NAT-private-IP and isIpv4InSubnet(dstAddr, example-VPC-CIDR))| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10
  1. 运行以下命令,找出您的 Amazon VPC 中的实例与之通信最多的互联网目的地:

对于上传:

filter (srcAddr like example-NAT-private-IP and not isIpv4InSubnet(dstAddr, example-VPC-CIDR)) | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10

对于下载:

filter (dstAddr like example-NAT-private-IP and not isIpv4InSubnet(srcAddr, example-VPC-CIDR)) | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10

使用 Amazon S3 或 Athena 找出导致流量峰值的实例。

**注意:**对于步骤 3、4 和 5 中的命令,请将 example-database-name.example-table-name 替换为您的数据库和表名。将 example-y.y 替换为您的 Amazon VPC CIDR 的前两个八位字节,将 example-NAT-private-IP 替换为您的 NAT 网关私有 IP 地址。

  1. 打开 Amazon S3 控制台Athena 控制台

  2. 创建表。为数据库和表名添加注释,然后添加以下筛选条件以检查特定时间范围内的主要流量源:

  • start>= (example-timestamp-start)
  • end>= (example-timestamp-end)
  1. 运行以下命令,找出通过 NAT 网关发送流量最多的实例:
SELECT srcaddr,dstaddr,sum(bytes) FROM example-database-name.example-table-name WHERE srcaddr like example-y.y AND dstaddr like example-NAT-private-IP group by 1,2 order by 3 desc
limit 10;
  1. 运行以下命令,找出进出实例的流量:
SELECT srcaddr,dstaddr,sum(bytes) FROM example-database-name.example-table-name WHERE (srcaddr like example-y.y AND dstaddr like example-NAT-private-IP) or (srcaddr like example-NAT-private-IP AND dstaddr like example-y.y) group by 1,2 order by 3 desc
limit 10;
  1. 运行以下命令,找出您的 Amazon VPC 中的实例与之通信最多的互联网目的地:

对于上传:

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

对于下载:

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

相关信息

示例查询

查询 Amazon VPC 流日志

如何使用 Amazon Athena 分析 Amazon VPC 流日志?

使用 AWS Cost Explorer 成本管理器服务分析数据传输成本

AWS 官方
AWS 官方已更新 6 个月前