如何在我的 Amazon VPC 中尋找 NAT 閘道流量的主要貢獻因子?

3 分的閱讀內容
0

我想透過 Amazon Virtual Private Cloud (Amazon VPC) 中的 NAT 閘道找到流量的主要貢獻因子。

簡短說明

若要尋找 Amazon VPC 中 NAT 閘道流量的主要貢獻因子,請完成下列任務:

  • 使用 Amazon CloudWatch 指標識別流量尖峰的時間。
  • 使用 CloudWatch 日誌識別造成流量尖峰的執行個體。
  • 使用 Amazon Simple Storage Service (Amazon S3) 或 Amazon Athena 識別造成流量尖峰的執行個體。

解決方法

**注意:**在下列步驟中,使用您的資訊取代下列值:

  • 具有 NAT 閘道私人 IP 位址的 example-NAT-private-IP
  • 具有 Amazon VPC CIDR 的 example-VPC-CIDR
  • 具有資料庫和資料表名稱的 example-database-name.example-table-name
  • 具有 Amazon VPC CIDR 前兩個八位元組的 example-y.y

使用 CloudWatch 指標識別流量尖峰的時間

若要識別和監控 NAT 閘道以及尖峰的特定時間,請使用下列 CloudWatch 指標:

  • BytesInFromSource – 上傳
  • BytesInFromDestination – 下載

檢查您已開啟 Amazon VPC 或 NAT 閘道彈性網路介面的 Amazon VPC 流程日誌。如果您尚未開啟 Amazon VPC 流程日誌,請建立流程日誌以開啟此選項。當您開啟 Amazon VPC 流程日誌時,流程日誌資料會發佈至 CloudWatch 日誌或 Amazon S3。

使用 CloudWatch Logs Insights 識別造成流量尖峰的執行個體

**注意:**或者,使用 CloudFormation 範本建立包含下列查詢的 CloudWatch 儀表板。

請完成下列步驟:

  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
  6. 若要識別往返執行個體的流量,請執行下列命令:

    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
  7. 若要識別在 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 識別造成流量尖峰的執行個體

請完成下列步驟:

  1. 開啟 Amazon S3 主控台Athena 主控台

  2. 建立資料表。標註資料庫和資料表名稱,然後新增下列篩選條件以檢查特定時間範圍內的主要貢獻因子:
    start>= (example-timestamp-start)
    end>= (example-timestamp-end)

  3. 若要識別透過 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 desclimit 10;
  4. 若要識別往返執行個體的流量,請執行下列命令:

    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 desclimit 10;
  5. 若要識別在 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 desclimit 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 desclimit 10;

使用 CloudWatch Logs Insights 識別與網際網路目的地通訊的執行個體

若要尋找執行個體通訊的網際網路目的地,必須使用自訂 VPC 流程日誌。這些 VPC 流程日誌必須包含其他欄位 pkt-srcaddrpkt-dstaddr。如需詳細資訊,請參閱 NAT 閘道的流量

範例 VPC 流程日誌:

${version} ${account-id} ${interface-id} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${packets} ${bytes} ${start} ${end} ${action} ${log-status} ${pkt-srcaddr} ${pkt-dstaddr}

請完成下列步驟:

  1. 開啟 CloudWatch 主控台
  2. 在導覽窗格中,選擇 Logs Insights
  3. 從下拉式清單中,選取 VPC 流程日誌的日誌群組。
  4. 選取預先定義的時間範圍,或選擇自訂以設定您自己的時間範圍。
  5. 若要識別透過 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
    對於下載流量:
    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

相關資訊

範例查詢

查詢 Amazon VPC 流程日誌

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

正在使用 AWS Cost Explorer 分析資料傳輸成本

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