本文說明在 Azure 上裝載大量 WordPress 記憶體密集安裝的解決方案。 此解決方案可最大化延展性和安全性。 主要解決方案元件包括 Azure Front Door、Azure 虛擬機器 和 Azure NetApp Files。
架構
注意
您可以實作任何特定 WordPress 主控方法專屬的秘訣和建議,以擴充此解決方案。 如需部署 WordPress 安裝的一般秘訣,請參閱 Azure 上的 WordPress。
資料流程
- 使用者透過已啟用 Azure Web 應用程式防火牆 的 Azure Front Door 存取前端網站。
- Azure Front Door 會使用 Azure Load Balancer 的內部實例作為來源。 Azure Front Door 會擷取任何未快取的數據。
- 內部負載平衡器會將要求散發至 Azure 虛擬機器擴展集。 擴展集是由Ubuntu Web 伺服器所組成。
- 密鑰和其他秘密會儲存在 Azure 金鑰保存庫。
- WordPress 應用程式會使用私人端點來存取 適用於 MySQL 的 Azure 資料庫 的彈性伺服器實例。 WordPress 應用程式會從資料庫擷取動態資訊。
- 所有靜態內容都會裝載在 Azure NetApp Files 中,並透過 NFS 通訊協定掛接至虛擬機(VM)。
元件
- Azure Front Door 是新式雲端內容傳遞網路。 作為伺服器的分散式網路,Azure Front Door 可有效率地將 Web 內容傳遞給使用者。 內容傳遞網路會將快取的內容儲存在終端使用者附近的目前位置,以將快取的內容儲存在邊緣伺服器上,以將延遲降至最低。
- Azure 虛擬網絡 提供一種方式,讓已部署的資源彼此通訊、因特網和內部部署網路。 虛擬網路提供隔離和分割。 它們也會篩選和路由傳送流量,並讓您能夠在各種位置之間建立連線。 在此解決方案中,這兩個網路會透過虛擬網路對等互連進行連線。
- Azure DDoS 保護提供增強的 DDoS 風險降低 功能。 當您結合這些功能與應用程式設計最佳做法時,它們有助於防禦 DDoS 攻擊。 您應該在周邊虛擬網路上啟用 DDoS 保護。
- 網路安全組 會使用安全性規則清單,根據來源或目的地IP位址、埠和通訊協議來允許或拒絕輸入或輸出網路流量。 在此案例的子網中,網路安全組規則會限制應用程式元件之間的流量流動。
- Load Balancer 會根據規則和健康情況探查結果來散發輸入流量。 負載平衡器提供低延遲和高輸送量。 藉由將流量分散到多部伺服器,負載平衡器會將延展性新增至傳輸控制通訊協定 (TCP) 和用戶數據報通訊協定 (UDP) 應用程式。 在此案例中,負載平衡器會將流量從內容傳遞網路散發至前端網頁伺服器。
- 虛擬機器擴展集 提供一種方式來建立和管理一組相同的負載平衡 VM。 VM 執行個體的數目可以自動增加或減少,以因應需求或已定義的排程。 在此案例中會使用兩個不同的擴展集。 其中一個適用於提供內容的前端 Web 伺服器,一個適用於用來建立新內容的前端網頁伺服器。
- Azure NetApp Files 提供完全受控的效能密集型和延遲敏感性記憶體解決方案。 在此解決方案中,Azure NetApp Files 會裝載所有 WordPress 內容,讓所有 Pod 都能存取數據。
- Azure Cache for Redis 是記憶體內部數據存放區。 您可以使用 Azure Cache for Redis 在此解決方案中裝載索引鍵/值快取。 該快取會在所有 Pod 之間共用,並用於 WordPress 效能優化外掛程式。
- 金鑰保存庫 儲存和控制密碼、憑證和金鑰的存取。
- 適用於 MySQL 的 Azure 資料庫 - 彈性伺服器是以開放原始碼 MySQL 資料庫引擎為基礎的關係資料庫服務。 彈性伺服器部署選項是完全受控的服務,可提供資料庫管理功能和組態設定的細微控制和彈性。 在此案例中,適用於 MySQL 的 Azure 資料庫 儲存 WordPress 數據。
替代項目
您可以使用 VM 內的自我裝載 Pod 作為快取,而不是使用 Azure Cache for Redis 受控服務。
案例詳細資料
此範例案例適用於 WordPress 的大型記憶體密集安裝。 此部署模型可以調整以符合月臺流量尖峰。
潛在使用案例
- 使用 WordPress 作為其內容管理系統的高流量部落格
- 使用 WordPress 的商務或電子商務網站
考量
這些考量能實作 Azure Well-Architected Framework 的要素,其為一組指導原則,可以用來改善工作負載的品質。 如需詳細資訊,請參閱 Microsoft Azure Well-Architected Framework (部分機器翻譯)。
可靠性
可靠性可確保您的應用程式符合您對客戶的承諾。 如需詳細資訊,請參閱可靠性要素的概觀 (部分機器翻譯)。
當您部署此解決方案時,請考慮下列建議:
- 解決方案會使用 虛擬機器擴展集和負載平衡器來散發輸入流量。 即使 VM 失敗,此方法仍提供高可用性。
- 此解決方案支援多個區域、數據復寫和自動調整。 網路元件會將流量分散到 VM。 系統會使用健康情況探查,以便將流量分散到狀況良好的 VM。
- 所有網路元件都由 Azure Front Door 前端。 這種方法可讓網路資源和應用程式復原到會中斷流量並影響使用者存取的問題。
- Azure Front Door 是一項全域服務,可支援在另一個區域中部署的虛擬機擴展集。
- 當您使用 Azure Front Door 快取所有回應時,您會獲得較小的可用性權益。 具體來說,當來源沒有回應時,您仍然可以存取內容。 但快取不提供完整的可用性解決方案。
- 若要提高可用性,請在配對的區域之間複寫 Azure NetApp Files 記憶體。 如需詳細資訊,請參閱 使用 Azure NetApp Files 跨區域複寫。
- 若要增加 適用於 MySQL 的 Azure 資料庫 可用性,請遵循符合您需求的高可用性選項。
安全性
安全性可提供保證,以避免刻意攻擊和濫用您寶貴的資料和系統。 如需詳細資訊,請參閱安全性要素的概觀。
當您部署此解決方案時,請考慮下列建議:
- 使用 Azure Front Door 上的 Web 應用程式防火牆,協助保護流入前端應用層的虛擬網路流量。 如需詳細資訊,請參閱 Azure Front Door 上的 Azure Web 應用程式防火牆。
- 不允許輸出因特網流量從資料庫層流動。
- 不允許公用存取私人記憶體。
- 在適用的情況下停用資源的公用存取。 使用私人端點進行 適用於 MySQL 的 Azure 資料庫、Azure Cache for Redis 和 金鑰保存庫。
如需 WordPress 安全性的詳細資訊,請參閱 一般 WordPress 安全性和效能秘訣 和 Azure 安全性檔。
成本最佳化
成本最佳化是關於考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱成本最佳化要素的概觀。
當您部署此解決方案時,請檢閱下列成本考慮:
- 流量預期(GB/月)。 您的流量是對成本影響最大的因素。 您收到的流量量會決定您需要的 VM 數目,以及輸出資料傳輸的價格。 流量也直接與內容傳遞網路所提供的數據量相互關聯,其中輸出數據傳輸成本更便宜。
- 裝載的數據量。 請務必考慮您裝載的數據量,因為 Azure NetApp Files 定價是以保留容量為基礎。 若要將成本優化,請保留數據所需的最小容量。
- 寫入百分比。 請考慮您寫入網站的新數據,以及儲存它的成本。 針對多區域部署,您寫入網站的新數據量會與您跨區域鏡像的數據量相互關聯。
- 靜態與動態內容。 監視您的資料庫記憶體效能和容量,以判斷更便宜的SKU是否可支援您的網站。 資料庫會儲存動態內容,而內容傳遞網路會快取靜態內容。
- VM 優化。 若要將 VM 成本優化,請遵循 VM 的一般秘訣。 如需詳細資訊,請參閱 成本優化秘訣。
效能效益
效能效率可讓您的工作負載進行調整,以有效率的方式符合使用者對其放置的需求。 如需詳細資訊,請參閱效能效率要件概觀。
此案例會針對每個區域中的兩個前端 Web 伺服器叢集使用 虛擬機器擴展集。 使用擴展集,執行前端應用層的 VM 實例數目可以自動調整以回應客戶需求。 VM 也可以根據定義的排程進行調整。 如需詳細資訊,請參閱使用 虛擬機器擴展集 自動調整的概觀。
重要
為了獲得最佳效能,必須透過NFS通訊協定4.1版掛接記憶體。 Ubuntu 的下列 bash 範例會示範如何設定 vers
選項:
# Install an NFS driver and create a directory.
$ apt-get install -y nfs-common && mkdir -p /var/www/html
# Add auto-mount on startup. (Replace the following code with
# instructions from the Azure portal, but change the vers value to 4.1.)
$ echo '<netapp_private_ip>:/<volume_name> /var/www/html nfs rw,hard,rsize=262144,wsize=262144,sec=sys,vers=4.1,tcp 0 0' >> /etc/fstab
# Mount the storage.
$ mount -a
參與者
本文由 Microsoft 維護。 原始投稿人如下。
主體作者:
- 瓦茨拉夫·吉羅夫斯基 |雲端解決方案架構師
其他投稿人:
- 阿德里安·卡利內斯庫 |資深雲端解決方案架構師
若要查看非公用LinkedIn配置檔,請登入LinkedIn。
下一步
產品檔案:
- Azure Front Door 是什麼?
- 什麼是 Azure Web 應用程式防火牆?
- 什麼是 Azure NetApp Files
- 建立適用於 Azure NetApp Files 的 NFS 磁碟區
- 什麼是虛擬機器擴展集?
- 適用於 MySQL 的 Azure 資料庫 - 彈性伺服器
- 什麼是 Azure Load Balancer?
- 什麼是 Azure 虛擬網路?
- 關於 Azure Key Vault
- Azure DDoS 保護是什麼?
Microsoft訓練模組:
- 使用 虛擬機器擴展集 建置可調整的應用程式
- Azure NetApp Files 簡介
- 使用 Front Door 平衡 Web 服務流量的負載
- 實作 Azure 金鑰保存庫
- Azure 虛擬網絡 簡介