logo

网络

简介

网络包含您的数据库、缓存、跳板机,以及偶尔的应用程序,这些都在 AWS 中。一般来说,虽然它们在 Vapor UI 中显示供您查看,但使用 Vapor 时,您不需要直接与网络交互。当您在不包含任何先前 Vapor 项目的区域中创建项目时,Vapor 会自动开始为您配置网络。

将网络附加到环境

通常,您不需要手动将 network 指令添加到您的 vapor.yml 文件中;但是,有时您可能希望手动指定 Vapor 环境应放置在给定网络中。当您访问私有 AWS 资源(例如通过 Vapor 未创建的 ElasticSearch)时,可能会出现这种情况。要将环境放置在网络中,请将 network 指令添加到您的 vapor.yml 配置文件中

yaml
id: 3
name: vapor-app
environments:
    production:
        network: my-network
        build:
            - 'composer install --no-dev'

自定义 IP 范围

默认情况下,Vapor 使用 IP 地址范围配置新网络,该范围对于大多数项目来说已经足够了。但是,如果您需要更多地控制网络的配置方式(例如,当您计划配置 Vapor 环境以与 AWS 上的现有资源通信时),您可以设置自己的自定义 IP 范围。

在 Vapor UI 中创建网络时,选择“配置自定义 IP 范围”以显示自定义 IP 范围界面。

您必须以有效的 CIDR 表示法输入整个 VPC 的 IP 范围,以及公共和私有子网。私有子网所需的总范围数量在 2 到 4 之间变化,具体取决于所选区域的可用区数量。为公共和私有子网提供的 IP 范围必须落在为整个 VPC 提供的范围内,并且彼此之间不重叠。

跳板机

一些 Vapor 资源,例如私有数据库或缓存集群,可能无法从公共互联网访问。相反,它们只能被其网络中的机器访问。这可能会使在开发过程中检查和操作这些资源变得很麻烦。为了缓解这种不便,Vapor 允许您创建跳板机。跳板机是放置在您的私有网络中的非常小的、可通过 SSH 访问的服务器。

您可以通过 Vapor UI 的网络详细信息屏幕或使用 jump CLI 命令创建跳板机。

bash
vapor jump my-jumpbox

创建跳板机后,Vapor 将为您提供访问跳板机所需的私有 SSH 密钥。您应该通过 SSH 作为 ec2-user 用户和私有 SSH 密钥连接到跳板机。

使用跳板机

有关使用跳板机使您的无服务器生活更轻松的实际示例,请查看 数据库缓存 文档。

NAT 网关

它们是什么?

如果您的应用程序与私有数据库或缓存集群交互,您的网络将需要一个 NAT 网关。听起来很复杂,但不用担心,Vapor 会处理繁重的工作。总之,当无服务器应用程序需要与这些资源之一交互时,AWS 要求我们将该应用程序放置在该区域的网络中。默认情况下,此网络无法访问外部互联网,这意味着来自您应用程序的任何传出 API 调用都将失败。不好。

管理 NAT 网关

无论何时您部署一个应用程序,该应用程序在其 vapor.yml 文件中列出了一个私有数据库或缓存集群作为附加资源,Vapor 将自动确保与该数据库/缓存关联的网络包含一个 NAT 网关。如果没有,Vapor 将自动开始配置一个。不幸的是,AWS 按小时计费 NAT 网关,导致每月费用约为 32 美元/月。

要完全避免使用 NAT 网关,您可以使用公开可访问的 RDS 数据库(Vapor 自动分配一个很长的随机密码)和一个 DynamoDB 缓存表,Vapor 会为您的每个项目自动创建该表。您也可以使用 Vapor UI 或使用 network:natnetwork:delete-nat CLI 命令手动添加或删除网络中的 NAT 网关。

负载均衡器

默认情况下,Vapor 使用 AWS API Gateway 将 HTTP 流量路由到您的无服务器应用程序。使用此服务时,AWS 只会根据您的应用程序接收到的请求数量向您收费。但是,在非常大的规模下,API Gateway 的成本可能会高于您的 Lambda 函数本身。

作为 API Gateway 的替代方案,您可以使用应用程序负载均衡器将流量路由到您的应用程序,这在规模上可以节省大量成本。例如,如果一个应用程序每月接收大约 10 亿个请求,与 API Gateway REST API 相比,使用应用程序负载均衡器将使应用程序的每月亚马逊账单节省约 3,000 美元,与 API Gateway HTTP API 相比,将节省约 1,000 美元。

创建负载均衡器

您可以使用 Vapor UI 或 balancer CLI 命令创建负载均衡器。当使用 CLI 命令时

bash
vapor balancer my-balancer

使用负载均衡器

要将负载均衡器附加到环境,请在您的 vapor.yml 文件中将 balancer 键添加到环境的配置中,然后部署您的应用程序。此键的值应为负载均衡器的名称。

yaml
id: 3
name: vapor-app
environments:
    production:
        balancer: my-balancer
        build:
            - 'composer install --no-dev'

负载均衡器证书

默认情况下,Vapor 在 us-east-1 区域创建所有 SSL 证书,无论您的项目所在的区域如何。当您的应用程序使用 API Gateway 时,AWS 会自动将您的证书复制到幕后的所有区域。

但是,当使用应用程序负载均衡器将流量路由到您的应用程序时,您需要在项目实际部署到的区域中创建证书。

删除负载均衡器

可以通过 Vapor UI 或使用 balancer:delete CLI 命令删除负载均衡器

bash
vapor balancer:delete my-balancer