計算靜態 NAT IP 需求

本頁內容適用於 Apigee,但不適用於 Apigee Hybrid

查看 Apigee Edge 說明文件。

Apigee 與具有公開 IP 位址的目標後端之間的南向流量,會使用 Cloud NAT 將 Apigee 執行個體的私人 IP 位址轉換為公開 IP 位址。如果目標後端需要將 IP 列入許可清單,您可以預留並啟用靜態 NAT IP,供輸出流量使用。 本主題說明如何計算支援預期流量所需的靜態 NAT IP 最少數量。

事前準備

如果選擇使用靜態 NAT IP 分配功能來支援許可清單,您需要計算支援預期流量所需的最低靜態 IP 數量。如要進行這項計算,您需要提供下列資訊:

  • 每筆交易的最長時間:這是指從要求開始到回應結束,每筆交易的最長時間 (以秒為單位)。
  • 每秒交易數 (TPS) 上限:這是 Apigee 執行個體每秒可支援的交易數上限。
  • 單一不重複後端的 TPS 數量上限:這是任何單一後端可能支援的每秒交易數上限。
  • 環境數量上限:這個 Apigee 執行個體的環境數量上限。

計算所需的靜態 IP 數量

您可以使用下列公式,計算需要靜態指派的 NAT IP 數量下限:

  1. 計算每個後端所需的 NAT 來源連接埠數量上限,以 $ S $ 表示。
    $$ S = \lceil (150 + T) \times B \rceil $$

    其中:

    • $ T $ 是每筆交易的時間上限,以秒為單位。
    • $ B $ 是任何單一不重複後端的最大 TPS。
    • $ \lceil \rceil $ 是無條件進位 (最小整數) 函式,也就是無條件進位至下一個整數
  2. 計算 Apigee 執行個體使用的最少連接埠數 $ N $。
    $$ N = max(4096 \times E, \lceil {512 \over 75} \times R \rceil) + 6144 $$

    其中:

    • $ E $ 是指 Apigee 環境數量。
    • $ R $ 是 Apigee 執行個體的 TPS 上限。
    • $ \lceil \rceil $ 是無條件進位 (最小整數) 函式,也就是無條件進位至下一個整數
    • $ \mathit{max}() $ 函式會取兩個值中的最大值。
  3. 將所需連接埠數量上限設為 $ P $。
    $$ P = max(S, N) $$

    其中:

    • $ S $ 是步驟 1 中計算出的 NAT 來源連接埠數量上限。
    • $ N $ 是 Apigee 執行個體使用的最少通訊埠數,如步驟 2 中所計算。
    • $ \mathit{max}() $ 函式會取兩個值中的最大值。
  4. 計算所需的 NAT IP 數量下限 $ I $。
    $$ I = \lceil P / 64512 \rceil $$

    其中:

    • $ P $ 是步驟 3 中計算出的必要埠數上限。
    • $ \lceil \rceil $ 是無條件進位 (最小整數) 函式,也就是無條件進位至下一個整數

範例

範例 1

在本例中,我們預期 1 個環境的 TPS 上限為 10,000。所有交易都是 HTTP GET 要求,第 99 個百分位數的交易時間為 50 毫秒。這些要求是由 3 個負載平衡器後端的伺服器集區不平均地提供服務,其中一個負載平衡器每秒處理 5,000 個要求,另一個每秒處理 3,000 個要求,最後一個負載平衡器每秒處理 2,000 個要求。

在這個範例中,金鑰值如下:

  • 每筆交易的時間上限:50 毫秒
  • Apigee 執行個體的每秒交易數上限:10,000
  • 單一後端的每秒交易數上限:5,000
  • Apigee 環境數量:1

使用先前說明的公式,我們可以計算所需的 NAT IP 數量:

  1. $$ \lceil (150 + 0.050) \times 5000 \rceil = \lceil 150.050 \times 5000 \rceil = \lceil 750250 \rceil = 750250 $$

    假設沒有重複使用的連線,每個後端所需的 NAT 來源連接埠數量上限為 750,250

  2. $$ max(4096 \times 1, \lceil {512 \over 75} \times 10000 \rceil) + 6144 $$
    $$ max(4096, \lceil 6.827 \times 10000 \rceil) + 6144 $$
    $$ max(4096, \lceil 68270 \rceil) + 6144 $$
    $$ 68270 + 6144 = 74414 $$

    Apigee 執行階段使用的 NAT 來源通訊埠數量下限為 74,414

  3. $$ max(750250, 74414) = 750250 $$

    每個執行個體所需的 NAT 來源連接埠數量上限為 750,250

  4. $$ \lceil 750250 / 64512 \rceil = \lceil 11.630 \rceil = 12 $$

    如要支援最多 10,000 個 TPS (每個 50 毫秒或更短),且單一後端 IP 和連接埠配對最多支援 5,000 個 TPS,則至少需要 12 個 NAT IP。

範例 2

在本例中,我們預期 20 個 Apigee 環境的 TPS 上限為 1,000。這些交易的第 99 個百分位數持續時間為 5 秒。這些要求會由 8 個目標後端服務處理,流量通常會平均分配到所有後端服務。考量維護和中斷情形,單一後端預期不會處理超過 250 TPS。

在這個範例中,金鑰值如下:

  • 每筆交易的最長時間:5 秒
  • 每秒交易數上限 (TPS):1,000
  • 單一後端的每秒交易數上限:250
  • Apigee 環境數量:20

使用先前說明的公式,我們可以計算所需的 NAT IP 數量:

  1. $$ \lceil (150 + 5) \times 250 \rceil = \lceil 155 \times 250 \rceil = \lceil 38750 \rceil = 38750 $$

    假設不重複使用連線,每個後端所需的 NAT 來源通訊埠數量上限為 38,750

  2. $$ max(4096 \times 20, \lceil {512 \over 75} \times 1000 \rceil) + 6144 $$
    $$ max(81920, \lceil 6.827 \times 1000 \rceil) + 6144 $$
    $$ max(81920, \lceil 6827 \rceil) + 6144 $$
    $$ 81920 + 6144 = 88064 $$

    Apigee 執行階段使用的 NAT 來源連接埠數量至少為 88,064 個。

  3. $$ max(38750, 88064) = 88064 $$

    每個執行個體所需的 NAT 來源連接埠數量上限為 88,064 個。

  4. $$ \lceil 88064 / 64512 \rceil= \lceil 1.365 \rceil= 2 $$

    如要支援每 5 秒 (或更短) 最多 1,000 個 TPS,且單一後端 IP 和連接埠配對最多支援 250 個 TPS,則至少需要 2 個 NAT IP。

範例 3

在這個範例中,我們要計算使用 2 個 NAT IP 時,單一目標後端可達到的最大 TPS。每筆交易的預估時間上限為 100 毫秒。

在這個範例中,金鑰值如下:

  • 單筆交易最長時間:100 毫秒
  • 網路位址轉譯 (NAT) IP 數量:2

在本例中,我們可以運用步驟 4 和步驟 1 中的公式,計算提供的 NAT 來源連接埠數量上限,以及這些來源連接埠可支援的 TPS 數量:

  1. $$ 2 = \lceil P / 64512 \rceil $$
    $$ 129024 = P $$

    NAT 來源連接埠數量上限為 129,024 個。

  2. $$ 129024 = \lceil (150 + 0.100) \times B \rceil $$
    $$ 129024 = \lceil 150.1 \times B \rceil $$
    $$ \lfloor 129024 / 150.1 \rfloor = B $$
    $$ \lfloor 859.587 \rfloor = B $$
    $$ 859 = B $$

    假設不重複使用連線,則使用 2 個 NAT IP 位址連線至單一後端時,TPS 上限為 859