跟踪導致 AWS RDS 使用異常高頻寬的原因
我們在 AWS 上託管了一個高流量(每天 10 萬次點擊)Drupal 新聞網站。它在 cloudflare 和 2 個負載平衡 Varnish 伺服器後面。出於某種原因,RDS 的頻寬使用率非常高。這是在 Elastic Cache 中的 memcache 中託管所有記憶體表之後。100% 的流量是匿名的。除了新的或更新的內容外,流量都是由清漆提供的。
但是 RDS 頻寬仍然很高。例如,到本月 18 日,使用量已經超過 15TB。這筆費用正在扼殺整個網站。
我們如何才能檢測到是什麼佔用了所有頻寬?我們如何去找出根本原因?
請參閱複製我們的結算頁面的詳細資訊:
Bandwidth $0.000 per GB - data transfer in per month - 4.808 GB - $0.00 $0.000 per GB - first 1 GB of data transferred out per month - 1 GB - $0.00 $0.010 per GB - regional data transfer - in/out/between EC2 AZs or using IPs or ELB - 15,147.744 GB - $151.48 $0.120 per GB - up to 10 TB / month data transfer out - 20.759 GB - $2.49 Total: $153.97 Region Total: $154.04
您應該始終使用私有IP 地址在各種基礎架構組件(RDS、ElastiCache 等)之間進行通信。如果您使用公共IP 地址,那麼您需要為區域數據傳輸付費,因為流量會離開並重新進入 AWS。
仔細檢查您的應用程序是否存在不恰當地使用公共 IP 地址訪問後端組件的內容。
“區域數據傳輸 - 輸入/輸出/在 EC2 AZ 之間或使用 IP 或 ELB”項說明數據傳輸:
- 在不使用私有 IP 的EC2 實例之間
- 在不同可用區的EC2 實例之間
- EC2 實例和 ELB之間
如果您的“區域數據傳輸 - 輸入/輸出/在 EC2 AZ 之間或使用 IP 或 ELB ”的成本為 151.48 美元,那麼這意味著在這 3 個項目中傳輸的數據總和為 15.148 TB。
因此,在同一可用區的 EC2 上傳輸數據時,**請始終使用私有 IP地址。**那可能是你的問題。
如果你想擺脫這個成本,你應該使用同一個可用區上的所有 EC2 實例,但我不建議這樣做。如果選定的可用區出現問題,您的服務可能會處於離線狀態。
您可以使用 AWS Billing and Cost Management 報告來了解哪些是該費用的最大貢獻者,只需將標籤添加到您的實例,然後在 AWS Billing and Cost Management 控制台中,創建關於 S3 儲存桶的報告。