本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
什么是 Amazon VPC Lattice?
Amazon VPC Lattice 是一项完全托管的应用程序网络服务,用于连接、保护和监控应用程序的服务和资源。您可以将 VPC Lattice 与单个虚拟私有云(VPC)一起使用,也可以从一个或多个账户跨多个 VPC 使用。
现代应用程序可以由多个小型模块化组件组成,这些组件通常称为微服务,例如 HTTP API、数据库等资源以及由 DNS 和 IP 地址端点组成的自定义资源。尽管现代化有其优势,但当你连接这些微服务和资源时,它也会带来网络的复杂性和挑战。例如,如果开发人员分散在不同的团队,他们可能会跨多个账户或 VPC 构建和部署微服务和资源。
在 VPC Lattice 中,我们将微服务称为服务,将资源仅表示为资源配置。这些是您在VPC Lattice用户指南中看到和将要使用的术语。
关键组件
要使用 Amazon VPC Lattice,您应该熟悉其关键组件。
- 服务
-
一种可独立部署的软件单元,用于提供特定的任务或函数。服务可以在账户或虚拟私有云 (VPC) 内在 EC2 实例或 ECS/EKS/Fargate 容器上运行,也可以作为 Lambda 函数运行。VPC Lattice 服务包含以下组件:目标组、侦听器和规则。
- 目标群体
-
运行应用程序或服务的资源集合,也称为目标。这些目标类似于弹性负载均衡提供的目标组,但不可互换。支持的目标类型包括 EC2 实例、IP 地址、Lambda 函数、应用程序负载均衡器、亚马逊 ECS 任务和 Kubernetes Pod。
- 侦听器
-
此为检查连接请求并将其路由到目标组中目标的过程。您可以使用协议和端口号配置监听器。
- 规则
-
侦听器的默认组件,用于将请求转发到 VPC Lattice 目标组中的目标。每条规则由优先级、一个或多个操作以及一个或多个条件组成。规则决定了侦听器路由客户端请求的方式。
- 资源
-
资源是一种实体,例如亚马逊关系数据库服务 (Amazon RDS) 数据库、亚马逊 EC2 实例、应用程序终端节点、域名目标或 IP 地址。您可以通过在 AWS Resource Access Manager (AWS RAM) 中创建资源共享、创建资源网关和定义资源配置来共享 VPC 中的资源。
- 资源网关
-
资源网关是资源所在的 VPC 的入口点。
- 资源配置
-
资源配置是一个逻辑对象,它代表单个资源或一组资源。资源可以是 IP 地址、域名目标或 Amazon RDS 数据库。
- 服务网络
-
一系列服务和资源配置的逻辑边界。客户端可以位于与服务网络关联的 VPC 中。如果获得授权,与同一服务网络关联的客户端和服务可以相互通信。
在下图中,客户端可以与两个服务通信,因为 VPC 和服务与同一个服务网络关联。
- 服务目录
-
您拥有或通过 AWS RAM账户共享的所有 VPC Lattice 服务的中央注册表。
- 验证策略
-
Fine-grained 可用于定义服务访问权限的授权策略。您可以将单独的验证策略附加到单个服务或服务网络。例如,您可以创建一个策略,说明在 EC2 实例的自动扩缩组上运行的支付服务,应如何与在 AWS Lambda中运行的计费服务交互。
Auth-policies 资源配置不支持。服务网络的身份验证策略不适用于服务网络中的资源配置。
角色和责任
角色决定了谁负责 Amazon VPC Lattice 中信息的设置和流动。通常有两个角色:服务网络所有者和服务所有者,他们的职责可能重叠。
服务网络所有者:服务网络所有者通常是组织中的网络管理员或云管理员。服务网络所有者负责创建、共享和配置服务网络。他们还管理可以访问 VPC Lattice 中服务网络或服务的人员。服务网络所有者可以为与服务网络相关的服务定义粗粒度的访问设置。这些控制用于管理使用验证和授权策略的客户端和服务之间的通信。如果服务或资源配置与服务网络所有者的帐户共享,则服务网络所有者还可以将服务或资源配置与单个或多个服务网络关联起来。
服务所有者 — 服务所有者通常是组织中的软件开发人员。服务所有者负责在 VPC Lattice 中创建服务,定义路由规则,将服务与服务网络关联。他们还可以定义细粒度访问设置来限制访问,只有经过验证和授权的服务及客户端才可访问。
资源所有者 -资源所有者通常是组织中的软件开发人员,并充当数据库等资源的管理员。资源所有者为资源创建资源配置,定义资源配置的访问设置,并将资源配置与服务网络关联起来。
功能
以下是 VPC Lattice 提供的核心功能。
- 服务发现
-
在与服务网络关联的 VPC 中,所有客户端和服务都可以与同一服务网络中的其他服务通信。DNS 通过 VPC Lattice 端点引导客户端到服务,以及服务到服务的流量。当客户端向服务发送请求时,会使用服务的 DNS 名称。Route 53 Resolver 将流量发送到 VPC Lattice,然后由其识别目标服务。
- 连接
-
Client-to-service 并且在网络基础架构内建立了客户端与资源的 AWS 连接。当您将 VPC 与服务网络关联时,VPC 中的任何客户端只要具有所需的访问权限,就可以连接服务网络中的服务和资源(通过资源配置)。VPC Lattice 支持重叠的 CIDR 技术。
- 本地访问
-
您可以使用 VPC 终端节点(由 VPC 提供支持 AWS PrivateLink)启用与服务网络的连接。服务网络类型的 VPC 终端节点允许您通过直接连接和 VPN 从本地网络访问服务网络中的服务和资源。通过 VPC 对等互连或 AWS Transit Gateway 也可以通过 VPC 终端节点访问资源和服务的流量。
- 可观测性
-
VPC Lattice 为遍历服务网络的每个请求和响应生成指标和日志,以帮助您监控应用程序并对其进行问题排查。默认情况下,指标发布到服务所有者账户。服务所有者和资源所有者可以选择开启日志记录,并接收所有客户机 access/requests 对其服务和资源的日志。服务网络所有者还可以开启服务网络登录功能,将来自连接到服务网络的 VPC 中的客户端的所有 access/requests 服务和资源记录到日志。
VPC Lattice 使用以下工具来帮助您监控和排除服务故障: Amazon CloudWatch 日志组、Firehose 交付流和 Amazon S3 存储桶。
- 安全性
-
VPC Lattice 提供了一个框架,您可以使用该框架在网络的多个层实施防御策略。第一层是服务、资源配置、VPC 关联和服务网络类型的 VPC 终端节点的组合。如果没有 VPC 和服务关联或服务网络类型的 VPC 终端节点,客户端将无法访问服务。同样,如果没有 VPC 和资源配置以及服务关联或服务网络类型的 VPC 终端节点,客户端将无法访问资源。
第二层使用户能够将安全组附加到 VPC 和服务网络之间的关联。第三层和第四层是验证策略,可以在服务网络级别和服务级别单独应用。
- 可用区关联性
-
VPC Lattice 支持路由流量的可用区 (AZ) 关联性。当客户端向VPC Lattice发送请求时,VPC Lattice会使用与客户端来自同一可用区的服务或资源的IP地址进行响应。如果该可用区不可用,VPC Lattice 将使用来自其他可用区的 IP 地址进行响应。从 VPC Lattice 到目标,路由是指向目标,目标可能会分布在各个可用区。此外,VPC 莱迪思不收取可用区间数据传输费用。
访问 VPC Lattice
您可以使用以下任意界面创建、访问和管理 VPC Lattice:
-
AWS 管理控制台:提供可用于访问 VPC Lattice 的 Web 界面。
-
AWS Command Line Interface (AWS CLI) — 为包括 VPC Lattice 在内的一系列 AWS 服务提供命令。在 Windows、macOS 和 Linux 上支持。 AWS CLI 有关 CLI 的更多信息,请参阅 AWS Command Line Interface
。有关 API 的更多信息,请参阅 Amazon VPC Lattice API 参考。 -
适用于 Kubernetes 的 VPC Lattice 控制器:管理 Kubernetes 集群的 VPC Lattice 资源。有关将 VPC Lattice 与 Kubernetes 结合使用的更多信息,请参阅 AWS 网关 API 控制器用户指南
。 -
CloudFormation:帮助您对 AWS 资源进行建模和设置。有关 API 的更多信息,请参阅 Amazon VPC Lattice 资源类型参考。
VPC 莱迪思服务终端节点
终端节点是用作 AWS Web 服务入口点的 URL。VPC 莱迪思支持以下终端节点类型:
当您发出请求时,您可以指定要使用的端点。如果不指定端点,则默认使用 IPv4 端点。要使用不同的端点类型,您必须在请求中指定。有关如何执行此操作的示例,请参阅指定端点。有关可用终端节点的表,请参阅 Amazon VPC Lattice 终端节点。
IPv4 端点
IPv4 端点仅支持 IPv4 流量。IPv4 端点适用于所有区域。
如果您指定通用端点 vpc-lattice.amazonaws.com,则我们将端点用于 us-east-1。要使用其他区域,请指定其关联端点。例如,如果您指定 vpc-lattice.us-east-2.amazonaws.com 为端点,我们会将您的请求定向到 us-east-2 端点。
IPv4 端点名称使用以下命名约定:
-
vpc-lattice.region.amazonaws.com
例如,eu-west-1 区域的 IPv4 端点名称是 vpc-lattice.eu-west-1.amazonaws.com。
双堆栈(IPv4 和 IPv6)端点
双堆栈端点同时支持 IPv4 和 IPv6 流量。双栈终端节点适用于所有区域。当您向双堆栈端点发出请求时,端点 URL 解析为 IPv6 或 IPv4 地址,具体取决于您的网络和客户端使用的协议。
Dual-stack 端点名称使用以下命名规范:
-
vpc-lattice.region.api.aws
例如,eu-west-1 区域的双堆栈端点名称是 vpc-lattice.eu-west-1.api.aws。
指定端点
以下示例显示如何使用for为该us-east-2地区指定终端节点vpc-lattice。 AWS CLI
-
IPv4
aws vpc-lattice get-service --service-identifier svc-0285b53b2eEXAMPLE --region us-east-2 --endpoint-url https://vpc-lattice.us-east-2.amazonaws.com -
双堆栈
aws vpc-lattice get-service --service-identifier svc-0285b53b2eEXAMPLE --region us-east-2 --endpoint-url https://vpc-lattice.us-east-2.api.aws
定价
VPC Lattice 允许您根据服务配置时间、通过每个服务传输的数据量,以及请求数量付费。作为资源所有者,您需要为传入和传出每种资源的数据付费。作为服务网络所有者,您按小时为与服务网络相关的资源配置付费。作为将 VPC 与服务网络关联的消费者,您需要为从您的 VPC 传入和传出服务网络中的资源的数据付费。有关更多信息,请参阅 Amazon VPC Lattice 定价