本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
什么是 Amazon VPC Lattice?
Amazon VPC Lattice 是一项完全托管的应用程序联网服务,您可以使用它来连接、保护和监控应用程序的服务和资源。您可以将VPC Lattice与单个虚拟私有云 (VPC) 配合使用,也可以通过一个或多个账户跨多个虚拟私 VPCs 有云 (VPC) 使用。
现代应用程序可以由多个小型模块化组件组成,这些组件通常被称为微服务,例如 HTTP API,数据库等资源,以及由 DNS 和 IP 地址端点组成的自定义资源。虽然现代化有其优势,但当你连接这些微服务和资源时,它也会带来网络复杂性和挑战。例如,如果开发人员分散在不同的团队中,他们可能会跨多个账户构建和部署微服务和资源,或者 VPCs。
在 VPC Lattice 中,我们将微服务称为服务,仅将资源表示为资源配置。这些是您在VPC Lattice用户指南中看到的术语。
关键组件
要使用 Amazon VPC Lattice,您应该熟悉其关键组件。
- 服务
-
一种可独立部署的软件单元,用于提供特定的任务或函数。服务可以在 EC2 实例或ECS/EKS/Fargate容器上运行,也可以在账户或虚拟私有云 (VPC) 中作为 Lambda 函数运行。VPC Lattice 服务包含以下组件:目标组、侦听器和规则。
- 目标组
-
运行应用程序或服务的资源集合,也称为目标。这些目标类似于弹性负载均衡提供的目标组,但不可互换。支持的目标类型包括 EC2 实例、IP 地址、Lambda 函数、应用程序负载均衡器、Amazon ECS 任务和 Kubernetes Pod。
- Listener
-
此为检查连接请求并将其路由到目标组中目标的过程。您可以使用协议和端口号配置监听器。
- 规则
-
侦听器的默认组件,用于将请求转发到 VPC Lattice 目标组中的目标。每条规则由优先级、一个或多个操作以及一个或多个条件组成。规则决定了侦听器路由客户端请求的方式。
- 资源
-
资源是指诸如亚马逊关系数据库服务 (Amazon RDS) 数据库、亚马逊 EC2 实例、应用程序终端节点、域名目标或 IP 地址之类的实体。您可以通过在 AWS Resource Access Manager (AWS RAM) 中创建资源共享、创建资源网关和定义资源配置来共享 VPC 中的资源。
- 资源网关
-
资源网关是资源所在的 VPC 的入口点。
- 资源配置
-
资源配置是代表单个资源或一组资源的逻辑对象。资源可以是 IP 地址、域名目标或 Amazon RDS 数据库。
- 服务网络
-
服务和资源配置集合的逻辑边界。客户端可以位于与服务网络关联的 VPC 中。如果获得授权,与同一服务网络关联的客户端和服务可以相互通信。
在下图中,客户端可以与两个服务通信,因为 VPC 和服务与同一个服务网络关联。
- 服务目录
-
一个中央注册中心,其中包含您拥有的或与您的账户共享的所有VPC Lattice服务。 AWS RAM
- 验证策略
-
可用于定义服务访问权限的细粒度授权策略。您可以将单独的验证策略附加到单个服务或服务网络。例如,您可以创建一个策略,规定在 auto Scaling EC2 实例组上运行的支付服务应如何与中运行的计费服务进行交互 AWS Lambda。
资源配置不支持身份验证策略。服务网络的身份验证策略不适用于服务网络中的资源配置。
角色和责任
角色决定了谁负责 Amazon VPC Lattice 中信息的设置和流动。通常有两个角色:服务网络所有者和服务所有者,他们的职责可能重叠。
服务网络所有者:服务网络所有者通常是组织中的网络管理员或云管理员。服务网络所有者负责创建、共享和配置服务网络。他们还管理可以访问 VPC Lattice 中服务网络或服务的人员。服务网络所有者可以为与服务网络关联的服务定义粗粒度的访问设置。这些控制用于管理使用验证和授权策略的客户端和服务之间的通信。如果服务或资源配置与服务网络所有者的账户共享,则服务网络所有者还可以将服务或资源配置与单个或多个服务网络相关联。

服务所有者-服务所有者通常是组织中的软件开发人员。服务所有者负责在 VPC Lattice 中创建服务,定义路由规则,将服务与服务网络关联。他们还可以定义细粒度访问设置来限制访问,只有经过验证和授权的服务及客户端才可访问。

资源所有者-资源所有者通常是组织中的软件开发人员,担任数据库等资源的管理员。资源所有者为资源创建资源配置,定义资源配置的访问设置,并将资源配置与服务网络关联起来。

特征
以下是 VPC Lattice 提供的核心功能。
- 服务发现
-
与服务网络 VPCs 关联的所有客户机和服务都可以与同一服务网络中的其他服务进行通信。DNS 引导 client-to-service service-to-service流量通过 VPC 莱迪思终端节点。当客户端向服务发送请求时,会使用服务的 DNS 名称。Route 53 Resolver 将流量发送到 VPC Lattice,然后由其识别目标服务。
- 连接
-
Client-to-service 并在 AWS 网络基础设施内建立 client-to-resource连接。当您将 VPC 与服务网络关联时,VPC 中的任何客户端都可以(通过资源配置)连接到服务网络中的服务和资源,前提是他们拥有所需的访问权限。
- 本地访问
-
您可以使用 VPC 终端节点(由提供支持 AWS PrivateLink)启用从 VPC 到服务网络的连接。服务网络类型的 VPC 终端节点允许您通过 Direct Connect 和 VPN 从本地网络访问服务网络中的服务和资源。通过 VPC 对等连接或 AWS Transit Gateway 也可以通过 VPC 终端节点访问资源和服务的流量。
- 可观察性
-
VPC Lattice 为遍历服务网络的每个请求和响应生成指标和日志,以帮助您监控应用程序并对其进行问题排查。默认情况下,指标会发布到服务所有者账户。服务所有者和资源所有者可以选择开启日志记录,并从连接到服务网络的客户端接收所有客户端access/requests to their services and resources. Service network owners can also turn on logging on the service network, to log all access/requests的服务和资源的日志。 VPCs
VPC Lattice 使用以下工具来帮助您监控和排除服务故障: Amazon CloudWatch 日志组、Firehose 传输流和 Amazon S3 存储桶。
- 安全性
-
VPC Lattice 提供了一个框架,您可以使用该框架在网络的多个层实施防御策略。第一层是服务、资源配置、VPC 关联和服务网络类型的 VPC 端点的组合。如果没有 VPC 和服务关联或服务网络类型的 VPC 终端节点,客户端就无法访问服务。同样,如果没有 VPC 和资源配置以及服务关联或服务网络类型的 VPC 终端节点,客户端就无法访问资源。
第二层使用户能够将安全组附加到 VPC 和服务网络之间的关联。第三层和第四层是验证策略,可以在服务网络级别和服务级别单独应用。
访问 VPC Lattice
您可以使用以下任意界面创建、访问和管理 VPC Lattice:
-
AWS Management Console:提供可用于访问 VPC Lattice 的 Web 界面。
-
AWS Command Line Interface (AWS CLI) — 为包括 VPC Lattice 在内的一系列 AWS 服务提供命令。在 AWS CLI Windows、macOS 和 Linux 上都支持。有关 CLI 的更多信息,请参阅 AWS Command Line Interface
。有关更多信息 APIs,请参阅 Amazon VPC Lattice API 参考。 -
适用于 Kubernetes 的 VPC Lattice 控制器:管理 Kubernetes 集群的 VPC Lattice 资源。有关将 VPC Lattice 与 Kubernetes 结合使用的更多信息,请参阅 AWS 网关 API 控制器用户指南
。 -
AWS CloudFormation:帮助您对 AWS 资源进行建模和设置。有关 API 的更多信息,请参阅 Amazon VPC Lattice 资源类型参考。
定价
VPC Lattice 允许您根据服务配置时间、通过每个服务传输的数据量,以及请求数量付费。作为资源所有者,您需要为每种资源之间传输的数据付费。作为服务网络所有者,您需要按小时为与服务网络相关的资源配置付费。作为拥有与服务网络关联的 VPC 的使用者,您需要为从您的 VPC 向服务网络中的资源传输和传出数据付费。有关更多信息,请参阅 Amazon VPC Lattice 定价