使用 Azure Front Door 搭配 Azure 儲存體 Blob

Azure Front Door 可加速從 Azure 儲存體 Blob 傳遞靜態內容,並啟用安全且可調整的架構。 靜態內容傳遞適用於許多不同的使用案例,包括網站裝載和檔案傳遞。

架構

Diagram of Azure Front Door with a blob storage origin.

在此參考架構中,您會部署具有單一來源的儲存體帳戶和 Front Door 設定檔。

資料流程

整個案例的資料流程如下所示:

  1. 用戶端使用自訂網域名稱和 Front Door 提供的 TLS 憑證,建立與 Azure Front Door 的安全連線。 用戶端的連線會在附近的 Front Door 存在點 (PoP) 終止。
  2. Front Door Web 應用程式防火牆 (WAF) 會掃描要求。 如果 WAF 判斷要求的風險層級太高,則會封鎖要求,且 Front Door 會傳回 HTTP 403 錯誤回應。
  3. 如果 Front Door PoP 的快取包含此要求的有效回應,Front Door 會立即傳回回應。
  4. 否則,PoP 會使用 Microsoft 的骨幹網路,將要求傳送至世界上任何地方的原始儲存體帳戶。 PoP 會使用個別、長期、TCP 連線來連線到儲存體帳戶。 在此案例中,Private Link 是用來安全地連線到儲存體帳戶。
  5. 儲存體帳戶會將回應傳送至 Front Door PoP。
  6. 當 PoP 收到回應時,會將其儲存在快取中以供後續要求使用。
  7. PoP 會傳回用戶端的回應。
  8. 任何透過網際網路直接傳送到儲存帳戶的要求都會被 Azure 儲存體防火牆封鎖。

元件

  • Azure 儲存體會將靜態內容儲存在 Blob 中。
  • Azure Front Door 接收來自用戶端的輸入連線、使用 WAF 掃描它們、安全地將要求轉送至儲存體帳戶,以及快取回應。

替代項目

如果您在另一個雲端儲存體提供者中擁有靜態檔案,或在自己擁有和維護的基礎結構上裝載靜態內容,則大部分案例仍然適用。 不過,您必須考慮如何保護原始伺服器的傳入流量,以驗證其是否來自 Front Door。 如果您的儲存體提供者不支援 Private Link,請考慮使用替代方法,例如允許列出 Front Door 服務標籤並檢查 X-Azure-FDID 標頭

案例詳細資料

靜態內容傳遞在許多情況下很有用,例如下列範例:

  • 提供 Web 應用程式的影像、CSS 檔案和 JavaScript 檔案。
  • 提供檔案和文件,例如 PDF 檔案或 JSON 檔案。
  • 傳遞非串流影片。

本質上,靜態內容不會經常變更。 靜態檔案的大小也可能很大。 這些特性使快取成為理想的候選檔案,從而提高效能並降低服務要求的成本。

在複雜的案例中,單一 Front Door 設定檔可能會提供靜態內容和動態內容。 您可以針對每種原始類型使用不同的原始群組,並使用 Front Door 的路由功能,將傳入要求路由至正確的來源。

考量

可擴縮性和效能

作為內容傳遞網路 (CDN),Front Door 將內容快取到其全域散發的 PoP 網路中。 當 PoP 提供回應的快取複本時,Front Door 可以使用快取的回應快速回應。 從快取傳回內容可改善解決方案的效能,並減少來源的負載。 如果 PoP 沒有有效的快取回應,Front Door 的流量加速功能會縮短從來源提供內容的時間。

安全性

驗證

Front Door 的設計目的旨在面向網際網路,而且此案例已針對公開可用的 Blob 進行最佳化。 如果您需要驗證 Blob 的存取權,請考慮使用共用存取簽章,並確保啟用使用查詢字串查詢字串行為,以避免 Front Door 向未經驗證的用戶端提供要求。 不過,此方法可能無法有效使用 Front Door 快取,因為具有不同共用存取簽章的每個要求都必須單獨傳送至來源。

原始安全性

Front Door 會使用 Private Link 安全地連線到 Azure 儲存體帳戶。 儲存體帳戶設定為拒絕從網際網路直接存取,並只允許透過 Front Door 所使用的私人端點連線要求。 此設定可確保 Front Door 會處理每個要求,並避免直接在網際網路公開儲存體帳戶的內容。 不過,此設定需要 Azure Front Door 的進階層。 如果您使用標準層,則必須公開存取您的儲存體帳戶。 您可以使用共用存取簽章來保護儲存體帳戶的要求,並讓用戶端在其所有要求中包含簽章,或使用 Front Door 規則引擎從 Front Door 附加它。

自訂網域名稱

Front Door 支援自訂網域名稱,並可發行和管理這些網域的 TLS 憑證。 藉由使用自訂網域,您可以確定用戶端會從信任且熟悉的網域名稱接收檔案,且 TLS 會加密與 Front Door 的每個連線。 當 Front Door 管理 TLS 憑證時,您可以避免因 TLS 憑證無效或過期而發生的中斷和安全性問題。

Azure 儲存體也支援自訂網域名稱,但在使用自訂網域時不支援 HTTPS。 Front Door 是搭配儲存體帳戶使用自訂網域名稱的最佳方法。

Web 應用程式防火牆

Front Door WAF 的受控規則會設定掃描要求,以尋找常見和新興的安全性威脅。 我們建議針對靜態和動態應用程式使用 WAF 和受控規則。

如果您需要這些功能,也可以使用 Front Door WAF 來執行速率限制地區篩選

復原

Front Door 是高可用性服務,由於其全球分散式架構,因此能夠復原單一 Azure 區域和 PoP 失敗。

使用 Front Door 快取可減少儲存體帳戶上的負載。 此外,如果您的儲存體帳戶無法使用,Front Door 可能會繼續提供快取的回應,直到應用程式復原為止。

您可以考慮儲存體帳戶的復原能力,進一步改善整體解決方案的復原能力。 如需詳細資訊,請參閱 Azure 儲存體備援 \(部分機器翻譯\)。 或者,您可以部署多個儲存體帳戶,並在 Front Door 原始群組中設定多個來源,並藉由設定每個來源的優先順序,設定來源之間的容錯移轉。 如需詳細資訊,請參閱 Azure Front Door 中的來源和來源群組

成本最佳化

快取有助於降低傳遞靜態內容的成本。 Front Door 的 PoP 會儲存回應的複本,並可針對任何後續要求傳遞這些快取的回應。 快取減少了來源上的要求負載。 在大規模靜態內容型解決方案中,尤其是那些傳遞大型檔案的解決方案中,快取可大幅降低流量成本。

若要在此解決方案中使用 Private Link,您必須部署 Front Door 的進階層。 如果不需要封鎖直接流向儲存體帳戶的流量,則可以使用標準層。 如需詳細資訊,請參閱來源安全性

部署此案例

若要使用 Bicep 或 JSON ARM 範本來部署此案例,請參閱本快速入門

若要使用 Terraform 部署此案例,請參閱本快速入門

下一步

了解如何建立 Front Door 設定檔