2023-10-01|閱讀時間 ‧ 約 7 分鐘

Amazon CloudFront Base Troubleshooting(工作日常)

CloudFront除錯相關

確認問題資訊

我們了解您遇到了網站異常的問題,麻煩您協助我們提供以下資訊,以便我們快速排解您的問題,感謝:

  1. 請問您發生異常的 CloudFront Distribution 是哪一個
  2. 請問現在還會有此異常狀況嗎
  3. 您最初發生異常的時間點大約是何時
  4. 請問您這種現象是持續發生嗎,還是是斷斷續續發生的
  5. 請問您是否方便提供 URL 供我們測試
  6. 請問您是否願意提供一個擁有 readonly 權限的 IAM role 供我們連入查看環境,或是用螢幕分享的方式協助我們了解您的資源狀況(若沒有 readonly role)
  7. 是否願意開啟 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 的方案,煩請您與我們的業務進行聯繫,造成您的不便相當抱歉。(需知會主管、業務)


分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.