附註:

評估 Oracle Cloud Infrastructure Web Application Firewall 對 Oracle Cloud Infrastructure Load Balancer 的延遲影響

簡介

在本教學課程中,我們使用高效能 HTTP 負載測試工具 Siege,評估 Oracle Cloud Infrastructure Web Application Firewall (OCI WAF) 在 OCI 負載平衡器上的效能影響。

透過對 OCI 負載平衡器執行 Siege 測試,並在未啟用 OCI WAF 的情況下,評估關鍵效能度量,例如延遲、傳輸量、交易速率及並行。目標是瞭解 OCI WAF 引進的負荷量,並確定其在安全性和效能之間的權衡。

此基準可協助存取是否啟用 OCI WAF 會大幅影響回應時間,以及增加之安全性的優點是否高於高流量環境中的效能成本。

簡介

在本教學課程中,我們將部署具有附加區域 OCI WAF 的專用 OCI 負載平衡器,以分析其對延遲的影響。該架構包括:

為什麼此教學課程必備?

安全性和效能是現代雲端應用程式中的兩個關鍵因素。OCI WAF 有助於防止網路威脅,但可能會產生影響使用者體驗的其他延遲。瞭解 OCI WAF 在 OCI Load Balancer 中如何影響端對端 TLS 的效能,對於旨在最佳化安全性和回應速度的架構師和工程師來說至關重要。

本教學課程提供評量 OCI WAF 引發延遲的實用方法。如需有關 OCI WAF 的詳細資訊,請參閱 OCI WAF

什麼是 Oracle Cloud Infrastructure Flexible Network Load Balancer?

OCI 中的彈性負載平衡器是一項完全受管理的服務,可跨多個後端伺服器自動分配 HTTP、HTTPS 和 TCP 流量。它提供可擴展性、高可用性和流量管理,無需手動介入。OCI Flexible Network Load Balancer 可使用 SSL/TLS 終止、OCI WAF 整合和進階路由功能輕鬆設定,以滿足現代應用程式的需求。如需詳細資訊,請參閱 Oracle Cloud Infrastructure Flexible Network Load Balancer

架構

此架構設計說明一個以 Siege HTTPS 基準公用程式為基礎的從屬端虛擬機器 (VM),它會連線至將連附本機 / 區域 OCI WAF 的專用負載平衡器,同時使用 HTTPS 連附三個不同的 Apache Tomcat 後端伺服器。我們將在沒有 OCI WAF 的情況下測試負載平衡器。

架構

適用對象

本教學課程適用於使用 OCI Load Balancer 和 OCI WAF 的雲端架構師、DevOps 工程師和安全專業人員。如果您需要在不影響效能的情況下最佳化安全性,可以使用此自學課程。

目標

必要條件

作業 1:部署網路元件 (VCN、子網路、OCI 負載平衡器和 OCI WAF)

  1. 使用您選擇的 IPv4 CIDR 或遵循建議的架構,在您的租用戶中部署至少包含三個子網路 (Siege、LB 及 WebTier) 的虛擬雲端網路 (VCN)。請參閱下列主題以取得詳細資訊:

  2. 在 OCI 負載平衡器子網路中部署具有 WAF 的 OCI 彈性網路負載平衡器。請參閱下列主題以取得詳細資訊:

針對此測試,我們已載入 OCI WAF 原則,其中至少包含 300 個保護建議規則,如下所示:

WAF 保護規則

作業 2:在子網路中部署 VM 以進行測試

我們需要部署 Oracle Linux 9 映像檔,以安裝名為 Siege 的 HTTP 基準工具,以及 Apache Tomcat 作為後端伺服器。

請參閱本文件以建立 VM:部署 OCI 執行處理

您需要在用戶端子網路中部署一個用於 Siege 的 VM。

作業 3:在 Oracle Linux 上安裝 Siege

  1. 啟用您 Oracle Linux 中 Enterprise Linux (EPEL) 儲存區域的額外套裝程式。如需詳細資訊,請參閱 How To Enable EPEL Repository on Oracle Linux 8/9

  2. 以 root 身分執行下列指令以安裝 Siege。

    yum install siege
    

    安裝 Siege

  3. 執行下列命令以驗證 Siege 版本。

    siege -v
    

    您應該會看到目前的 Siege 版本以及其他說明指令。

作業 4:在 Oracle Linux 上安裝 Apache Tomcat

此時,我們有一個 OCI Flexible Network Load Balancer,未設定任何後端伺服器。現在,我們將在 Oracle Linux 8 或 9 上安裝 Apache Tomcat 的 Linux 版本。

  1. 在 Web 專用子網路部署 2 或 3 個 linux VM。如需詳細資訊,請參閱部署 OCI 執行處理

  2. 將 Apache Web 伺服器安裝到這些 VM 中。如需詳細資訊,請參閱 Install the Apache Web ServerInstalling Tomcat on Oracle Linux in Oracle Cloud

  3. Apache Web 伺服器啟動並在執行後,請確定 OCI 負載平衡器子網路可以連線到 Web 專用子網路,允許將 HTTPS 流量從 OCI 負載平衡器子網路傳送至 Web 專用子網路 (連接埠 443)。現在,若要新增後端伺服器,請參考工作 3:設定 OCI 負載平衡器中的步驟 8。

  4. 移至 OCI 主控台,瀏覽至網路負載平衡器負載平衡器負載平衡器詳細資訊後端集後端集詳細資訊,然後按一下後端,您應該會看到兩個後端伺服器。

    Bacnend 伺服器

    現在可以在不使用 OCI WAF 的情況下測試 OCI Load Balancer 效能。

作業 5:Siege 基準分析 – OCI 負載平衡器效能與 OCI WAF 無關

現在,我們的 OCI Load Balancer 和 OCI WAF 已與後端伺服器一起設定,我們需要採取一些初始步驟,讓 Siege 能夠透過 HTTPS 連線運作。

我們使用實驗室認證授權機構 (CA) 憑證來簽署在 OCI 負載平衡器和後端伺服器上安裝的伺服器憑證。不過,我們只需要專注於 OCI Load Balancer 的伺服器憑證,因為 OCI Load Balancer 將終止 TLS 連線並建立後端伺服器的第二個 TLS 連線。第二個連線是 Siege (用戶端) 通透的。

例如,您的 CA 憑證檔案稱為 my-ca.crt

  1. my-ca.cert 上傳至您的 Linux 機器,然後執行 sudo cp my-ca.crt /etc/pki/ca-trust/source/anchors/ 命令。這會將 CA 複製到受信任的 CA 存放區。

  2. 執行下列命令以更新信任的 CA 存放區。

    sudo update-ca-trust extract
    

    或者,如果您使用 Oracle Linux 9,

    sudo update-ca-trust
    
  3. 執行下列指令來確認安裝。

    openssl verify /etc/pki/ca-trust/source/anchors/my-ca.crt
    

    並列出所有可信任的憑證。

    trust list | grep "my-ca"
    
  4. 現在,當 Siege 透過 HTTPS 連線至 OCI Load Balancer 時,將會能夠驗證收到的憑證。我們使用 www.fwtest.com 作為「一般名稱 (CN)」和「主體替代名稱 (SAN)」。

    由於我們不是使用私有 DNS,因此只需將以下項目加入您的 Linux 檔案 /etc/hosts 檔案:

    LB 專用 IP www.fwtest.com

    例如:

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4\
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6\
    192.168.4.99 linux9-siege-intravcntest-v2.siegesubnet.vcn1inter.oraclevcn.com linux9-siege-intravcntest-v2\
    192.168.6.237  www.fwtest.com  <--- Add this entry
    
  5. 若要取得負載平衡器專用 IP,請瀏覽至網路負載平衡器負載平衡器,然後按一下負載平衡器詳細資訊

    安裝 Siege

  6. 如果您想要測試 TLS 連線 (包括之前安裝的 OCI 負載平衡器伺服器憑證),請執行下列命令:

    openssl s_client -connect www.fwtest.com:443 -tls1_2
    

    您會得到如下的內容:

    LB 連線檢查

  7. 使用隨機 HTTP 標頭大小的 Siege 250 個並行 HTTPS 從屬端進行第一次測試。

    siege -c 250  -t1m --header="User-Agent: $(head -c 500 </dev/urandom | base64)"  https://www.fwtest.com/request.php
    
    Lifting the server siege...\
    Transactions:              237238    hits\
    Availability:                 100.00 %\
    Elapsed time:                  60.79 secs\
    Data transferred:             192.67 MB\
    **Response time:                 27.81 ms**\
    **Transaction rate:            3902.58 trans/sec**\
    **Throughput:                     3.17 MB/sec**\
    Concurrency:                  108.51\
    **Successful transactions:   237421**\
    Failed transactions:            0\
    Longest transaction:          440.00 ms\
    Shortest transaction:           0.00 ms\
    

    現在,在沒有 OCI WAF 的情況下執行相同的命令。

    Lifting the server siege...
    Transactions:              238843    hits\
    Availability:                 100.00 %\
    Elapsed time:                  60.54 secs\
    Data transferred:             193.98 MB\
    **Response time:                 17.97 ms**\
    **Transaction rate:            3945.21 trans/sec**\
    **Throughput:                     3.20 MB/sec**\
    Concurrency:                   70.88\
    **Successful transactions:   239018**\
    Failed transactions:            0\
    Longest transaction:          540.00 ms\
    Shortest transaction:           0.00 ms\
    

OCI WAF 的效能影響 (Siege Benchmark)

主要度量比較:

度量 使用 OCI WAF 不使用 OCI WAF 影響
交易 237,238 238,843 -1,605 (-0.67%)
可用性 (%) 100.00 100.00 沒有變更
經歷時間 60.79 60.54 +0.25s
傳輸的資料 (MB) 192.67 193.98 -1.31 MB (-0.68%)
回應時間 (毫秒) 27.81 17.97 +9.84 毫秒 (+54.8%)
交易速率 (傳輸 / 秒) 3,902.58 3,945.21 -42.63 異動數 / 秒 (-1.08%)
傳輸量 (MB/ 秒) 3.17 3.20 -0.03 MB/ 秒 (-0.94%)
並行 108.51 70.88 +37.63 (使用 OCI WAF 提升 53.1%)

觀察與關鍵概要:

結論

Note: The test results obtained using Siege depend highly on various factors, including network conditions, hardware/software configurations, and software settings specific to your environment. As such, these results may differ significantly from those in other environments. Do not use these results to make any definitive conclusions about the expected performance of your network or equipment. They should be considered as indicative rather than absolute measures of performance.

認可

其他學習資源

探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center