计算静态 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 $ 是 ceiling(最小整数)函数,表示向上取整到下一个整数
  2. 计算 Apigee 实例使用的端口数下限,即 $ N $。
    $$ N = max(4096 \times E, \lceil {512 \over 75} \times R \rceil) + 6144 $$

    其中:

    • $ E $ 是 Apigee 环境的数量。
    • $ R $ 是 Apigee 实例的 TPS 上限。
    • $ \lceil \rceil $ 是 ceiling(最小整数)函数,表示向上取整到下一个整数
    • $ \mathit{max}() $ 函数接受两个值中的最大值。
  3. 获取所需的端口数上限,即 $ P $。
    $$ P = max(S, N) $$

    其中:

    • $ S $ 是第 1 步中计算的所需 NAT 来源端口数上限。
    • $ N $ 是第 2 步中计算的 Apigee 实例使用的端口数下限。
    • $ \mathit{max}() $ 函数接受两个值中的最大值。
  4. 计算所需的 NAT IP 数量下限,即 $ I $。
    $$ I = \lceil P / 64512 \rceil $$

    其中:

    • $ P $ 是第 3 步中计算的所需端口数上限。
    • $ \lceil \rceil $ 是 ceiling(最小整数)函数,表示向上取整到下一个整数

示例

示例 1

在此示例中,我们预计每个环境最多 10,000 TPS。这些事务均为 HTTP GET 请求,第 99 百分位的事务时长为 50 毫秒 (ms)。这些请求由 3 个负载均衡器后端后面的服务器池进行不均匀处理,一个负载均衡器接受 5,000 TPS,另一个负载均衡器接受 3,000 TPS,最后一个负载均衡器接受 2,000 TPS。

在此示例中,键值对如下所示:

  • 每个事务的最长时间:50 毫秒
  • Apigee 实例的 TPS 上限:10,000
  • 单个后端的 TPS 上限: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 $$

    使用一个后端 IP 和端口对(最多支持 5,000 TPS)支持最多 10,000 TPS(每个 50 毫秒或更短时间)所需的 NAT IP 数量下限为 12

示例 2

在本示例中,我们预计 20 个 Apigee 环境最多 1,000 TPS。这些事务的第 99 百分位时长为 5 秒。这些请求由 8 个目标后端处理,流量通常均匀分布在所有目标端口之间。考虑到维护和服务中断,单个后端绝不应该处理 250 个以上 TPS。

在此示例中,键值对如下所示:

  • 每个事务的最长时间:5 秒
  • 每秒事务数上限 (TPS):1,000
  • 单个后端的 TPS 上限: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 $$

    使用一个后端 IP 和端口对(最多支持 250 TPS)支持最多 1,000 TPS(每个 5 秒或更短时间)所需的 NAT IP 数量下限为 2

示例 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