如何在我的 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 Flow Logs。如果您尚未開啟 Amazon VPC Flow Logs,請建立流程日誌以將其開啟。當您開啟 Amazon VPC Flow Logs 時,流程日誌資料會發佈至 CloudWatch Logs 或 Amazon S3。

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

**注意:**對於步驟 5、6 和 7 中的命令,請以 NAT 閘道私有 IP 地址取代 example-NAT-private-IP,並以 Amazon VPC CID 取代 example-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

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

**注意:**針對步驟 3、4 和 5 中的命令,請將您的資料庫和表格名稱取代 example-database-name.example-table-name。以您的 Amazon VPC CIDR 前兩個八位元組取代 example-y.y,並以您的 NAT 閘道私有 IP 地址取代 example-NAT-private-IP

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 desc
limit 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 desc
limit 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 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 Flow Logs

如何使用 Amazon Athena 分析 Amazon VPC Flow Logs?

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

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