CloudFront除錯相關
確認問題資訊
我們了解您遇到了網站異常的問題,麻煩您協助我們提供以下資訊,以便我們快速排解您的問題,感謝:
- 請問您發生異常的 CloudFront Distribution 是哪一個
- 請問現在還會有此異常狀況嗎
- 您最初發生異常的時間點大約是何時
- 請問您這種現象是持續發生嗎,還是是斷斷續續發生的
- 請問您是否方便提供 URL 供我們測試
- 請問您是否願意提供一個擁有 readonly 權限的 IAM role 供我們連入查看環境,或是用螢幕分享的方式協助我們了解您的資源狀況(若沒有 readonly role)
- 是否願意開啟 CloudFront 的 log,協助我們更加了解問題發生的詳細狀況。若沒啟用 CloudFront 的 log 的話,我們將會難以排查問題實際上的發生點及原因
分類問題
- 連上客戶 CloudFront DNS,確認客戶錯誤碼是否有誤
- 查看 CloudFront Metrics 有無其他錯誤碼
參考至:
https://docs.aws.amazon.com/cloudfront/latest/APIReference/CommonErrors.html
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/troubleshooting-response-errors.html
初步排查
4XX
- 查看 CloudFront Log
- 查看 CloudFront Access Log
- 檢查 CloudFront 是否有設置錯誤 (Behaviors 、Origin 等設定)
- 檢查權限是否正確
- 檢查是否有設置到 WAF rule 誤阻擋流量 (新版提供CloudWatch Logs log group or S3;使用 kinesis firehose 將 WAF log 傳至 S3 中,並可用 Athena 進行分析,就此查看 WAF log 是否有哪條 rule 阻擋流量)
- 確保 Origin 運作是否正常 (ELB/S3/EC2 內容是否能正常顯示),直接連 Origin 看會不會有相同的 4XX 錯誤。
- 如果 Origin 為 EC2 或 ELB,確保 Origin 的 Security Group 有開放存取的 port (80、443)
- 如果 Origin 為 S3,確保 S3 Bucket Policy 有讓 CloudFront 存取的權限
5XX
- 查看 CloudFront Log
- 查看 CloudFront Access Log
- 檢查 CloudFront 是否有設置錯誤 (Behaviors 、Origin 等設定)
- 使用 DNS lookup 等工具,檢查 CNAME 是否導到 CloudFront 的路徑 (若有用 CNAME)
- 確保 Origin 運作是否正常 (ELB/S3/EC2),直接連 Origin 看會不會有相同的 5XX 錯誤。
- 如果 Origin 為 EC2 或 ELB,確保 Origin 的 Security Group 有開放存取的 port (80、443)
進階排查
502
- 若用 HTTPS,查看憑證是否包含網域名稱
- 注意是否有將 host 傳至 Origin
- 檢查憑證是否有效且未過期
(上面 3 者的 X-Cache header 會被設為 "Error from cloudfront") - 檢查 Origin 的 HTTP、HTTPS port 是否有被防火牆阻擋
- 檢查是否為 Lambda@edge 發生 502 錯誤
- 檢查憑證是否到期(更新完憑證後還要更新您的 CloudFront 分佈)
503
- 檢查流量是否有異常 (過高)
- 檢查 Origin 資源是否足夠 (CPU、Memory、Volume)
- 檢查是否為 Lambda@edge 超過各區服務限制
504
- 檢查流量是否有異常 (過高)
- 檢查流量是否有被 Origin 防火牆阻擋 (linux: IPTable;Windows: Windows Firewall)
- 檢查流量是否有被 Origin Security Group 阻擋
- 檢查網站是否為 public-facing (用 telnet 檢查)
- 確保不是因 Origin 資源不足導致逾時
解決問題
=======解釋問題=========
根據您提供的錯誤碼與資訊,說明錯誤應是......造成。經過我們實際測試連至該網站,我們也發現了......。經過查看了您的環境後,發現......
=======解決問題=========
為了解決您的問題,我們建議您......您可以參考......
=======(額外建議)=========
另外,我們也注意到您......,建議您可以......
謝謝。
參考文件:
[1]
[2]
未成功"遇到"問題 (電話 > 回 Ticket)
經過我們實際測試連至該網站,我們並未遇到您說的問題,想請問您該如何重現您的問題呢? 又或者是方便提供錯誤訊息及截圖給我們嗎?
如果您要嘗試排查問題,建議您可以從 CloudFront 的 Behaviors 設定查看 Origin 的 Behaviors 是否正確。又或是查看網站伺服器的位址設定是否正確。謝謝。
======說明未發現問題=======
根據您提供的 Log,並沒有 ▢▢▢ 的紀錄;此外在查詢 CloudFront 的統計數據時,該時段的 ▢xx error rate 亦是 0% [1]。
====說明該錯誤碼大多起因====
但由於 ▢▢▢ 錯誤多是由......原因造成,建議您可以先嘗試......
========(額外建議)=========
您也可以......
無法解決 (發 AWS Support)
很抱歉,在查看了您的環境後,根據我們內部技術人員的討論,我們並沒有發現可能的原因會導致您的問題發生。
=========若客戶 AWS Support level 能發技術問題=======
為了釐清您的問題,我們將會透過您的帳號向 AWS Support 發問。如果 AWS Support 方有任何的回覆,我們會在即刻通知您,謝謝。
=========客戶 AWS Support level 不能發技術問題=======
如果您還是想要釐清問題,可能要麻煩您考慮是否要升級 AWS Support level,並由我們代為向 AWS Support 提問,有關 AWS Support level 的方案,煩請您與我們的業務進行聯繫,造成您的不便相當抱歉。(需知會主管、業務)