什么是 Amazon VPC Lattice? - Amazon VPC Lattice

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

什么是 Amazon VPC Lattice?

Amazon VPC Lattice 是一项完全托管的应用程序网络服务,用于连接、保护和监控应用程序的服务。您可以将 VPC Lattice 与单个虚拟私有云(VPC)一起使用,也可以从一个或多个账户跨多个 VPC 使用。

现代应用程序可以由多个小型模块化服务组成,这些服务通常称为微服务。现代化固然有其优势,但在连接这些微服务时,也可能带来网络复杂性和挑战。例如,如果开发人员分布在不同的团队,他们可能会在多个账户或 VPC 上构建和部署微服务。

在 VPC Lattice 中,我们将微服务称为服务。这是您在 VPC Lattice 文档中看到的措辞。

关键组件

要使用 Amazon VPC Lattice,您应该熟悉其关键组件。

服务

一种可独立部署的软件单元,用于提供特定的任务或函数。服务可以在 EC2 实例或 ECS 容器上运行,也可以作为 Lambda 函数在账户或虚拟私有云(VPC)中运行。VPC Lattice 服务包含以下组件:目标组、侦听器和规则。

具有侦听器和两个目标组的服务。
目标组

运行应用程序或服务的资源集合,也称为目标。目标可以是 EC2 实例、IP 地址、Lambda 函数、应用程序负载均衡器,或 Kubernetes 容器组。这些目标类似于弹性负载均衡提供的目标组,但不可互换。

Listener

此为检查连接请求并将其路由到目标组中目标的过程。您可以使用协议和端口号配置监听器。

规则

侦听器的默认组件,用于将请求转发到 VPC Lattice 目标组中的目标。每条规则由优先级、一个或多个操作以及一个或多个条件组成。规则决定了侦听器路由客户端请求的方式。

服务网络

服务集合的逻辑边界。客户端是部署在 VPC 中并与服务网络关联的任何资源。如果获得授权,与同一服务网络关联的客户端和服务可以相互通信。

在下图中,客户端可以与两个服务通信,因为 VPC 和服务与同一个服务网络关联。

具有服务器和客户端的服务网络。
服务目录

您拥有或通过 AWS Resource Access Manager (AWS RAM) 与您的账户共享的所有VPC Lattice服务的中央注册表。

验证策略

可用于定义服务访问权限的细粒度授权策略。您可以将单独的验证策略附加到单个服务或服务网络。例如,您可以创建一个策略,说明在 EC2 实例的自动扩缩组上运行的支付服务,应如何与在 AWS Lambda中运行的计费服务交互。

角色和责任

角色决定了谁负责 Amazon VPC Lattice 中信息的设置和流动。通常有两个角色:服务网络所有者和服务所有者,他们的职责可能重叠。

服务网络所有者:服务网络所有者通常是组织中的网络管理员或云管理员。服务网络所有者负责创建、共享和配置服务网络。他们还管理可以访问 VPC Lattice 中服务网络或服务的人员。服务网络所有者可以为与服务网络关联的服务定义粗粒度的访问设置。这些控制用于管理使用验证和授权策略的客户端和服务之间的通信。如果服务与服务网络所有者的账户共享,则服务网络所有者还可以将服务与服务网络关联。

服务网络所有者的角色和责任

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

服务所有者的角色和责任

功能

以下是 VPC Lattice 提供的核心功能。

服务发现

在与服务网络关联的 VPC 中,所有客户端和服务都可以与同一服务网络中的其他服务通信。DNS 将 service-to-service 流量定向 client-to-service 并通过 VPC 莱迪思终端节点。当客户端向服务发送请求时,会使用服务的 DNS 名称。Route 53 Resolver 将流量发送到 VPC Lattice,然后由其识别目标服务。

连接

C lient-to-service 连接是使用 AWS 网络基础设施中的 VPC Lattice 数据平面建立。当您将 VPC 与服务网络关联时,VPC 中的任何客户端只要拥有所需的访问权限,即可连接到服务网络中的服务。

可观察性

VPC Lattice 为遍历服务网络的每个请求和响应生成指标和日志,以帮助您监控应用程序并对其进行问题排查。默认情况下,VPC Lattice 会在服务所有者账户中发布指标,并提供开启日志记录的选项。如果客户端也与同一服务网络关联,则服务网络所有者将接收与服务网络关联的所有服务的日志。服务所有者会接收向其服务发出请求的所有客户端日志。

VPC Lattice 使用以下工具来帮助您监控和排除服务故障: CloudWatch 日志组、Firehose 传输流和 S3 存储桶。

安全性

VPC Lattice 提供了一个框架,您可以使用该框架在网络的多个层实施防御策略。第一层是服务和 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。有关 API 的更多信息,请参阅 Amazon VPC Lattice API 参考

  • 适用于 Kubernetes 的 VPC Lattice 控制器:管理 Kubernetes 集群的 VPC Lattice 资源。有关将 VPC Lattice 与 Kubernetes 结合使用的更多信息,请参阅 AWS 网关 API 控制器用户指南

  • AWS CloudFormation:帮助您对 AWS 资源进行建模和设置。有关 API 的更多信息,请参阅 Amazon VPC Lattice 资源类型参考

定价

VPC Lattice 允许您根据服务配置时间、通过每个服务传输的数据量,以及请求数量付费。有关更多信息,请参阅 Amazon VPC Lattice 定价