使用亚马逊 OpenSearch Service 托管 VPC 终端节点简化解决方案的私有网络访问

Amazon OpenSear ch S ervice 使您可以轻松地进行交互式日志分析、实时应用程序监控、网站搜索等。亚马逊 OpenSearch 是一个开源的分布式搜索和分析套件。亚马逊 OpenSearch 服务提供最新版本的 OpenSearch,支持 19 个版本的 Elasticsearch(1.5 至 7.10 版本),以及由 OpenSearch 控制面板和 Kibana(1.5 至 7.10 版本)提供支持的可视化功能。Amazon OpenSearch Service目前拥有数万名活跃客户,管理着数十万个集群,每月处理数万亿个请求。

为了满足希望通过亚马逊 OpenSearch 服务简化网络设置的客户的需求,您现在可以使用亚马逊 OpenSearch 服务管理的虚拟私有云 (VPC) 终端节点(由 亚马逊云科技 Private Link 提供支持) 使用在亚马逊虚拟私 有云 (VPC) 中启动的亚马逊 OpenS earch Service 域连接到您的应用程序。 使用 Amazon OpenSearch 服务管理的 VPC 终端节点,您可以根据应用程序需求从账户中的多个 VPC 或其他 亚马逊云科技 账户私下访问您的 Amazon OpenSearch Service 域,无需配置 VPC 对等、 亚马逊云科技 T ransit Gateway ( TGW) 等 其他服务功能,这些功能会给您的支持和工程团队带来运营负担。

该功能是使用 亚马逊云科技 PrivateLink 构建的。亚马逊云科技 PrivateLink 在 VPC、支持的 亚马逊云科技 服务和您的本地网络之间提供私有连接,而不会将您的流量暴露给公共互联网。它为您提供了将多个应用程序部署毫不费力地连接到您的亚马逊 OpenSearch Service 域的方法。

这篇文章介绍了建立在 亚马逊云科技 PrivateLink 之上的亚马逊 OpenSearch 服务托管 VPC 终端节点,并展示了如何使用亚马逊 OpenSearch Service 管理的 亚马逊云科技 PrivateLink 从托管在同一个账户中的一个或多个 VPC 访问私有亚马逊 OpenSearch 服务,甚至是托管在其他亚马逊云科技账户中的VPC。

亚马逊 OpenSearch Service 托管 VPC 端点

在 Amazon OpenSearch Service 托管 VPC 终端节点启动之前,如果您需要在 VPC 之外访问您的域名,则有三种选择:

  • 使用 VPC 对等连接将您的 VPC 与其他 VPC 连接起来
  • 使用 亚马逊云科技 Transit Gateway 将您的 VPC 与其他 VPC 连接起来
  • 创建您自己的 亚马逊云科技 私有链接设置实现方案

前两个选项要求您设置 VPC,以使无类域间路由 (CIDR) 区块范围不会重叠。如果他们这样做了,那么你的选择就会更加复杂。第三个选项是 创建您自己的 亚马逊云科技 Priv ateLink 实现 ,包括配置 网络负载均衡器 (NLB ) 并将目标组与 NLB 关联作为设置步骤之一。本文中讨论的架构演示了这些额外的复杂层。

有了亚马逊 OpenSearch Service 托管 VPC 终端节点(即由 亚马逊云科技 PrivateLink 提供支持),不再需要这些复杂的设置和流程!

您可以访问您的 Amazon OpenSearch Service 私有域,就好像它已部署在您想要连接到您的域的所有 VPC 中一样。如果您需要通过本地混合部署进行私有连接,那么 亚马逊云科技 PrivateLink 可以帮助您轻松地将访问从亚马逊 OpenSearch Service 域传送 到您的 数据中心。

通过将 亚马逊云科技 PrivateLink 与亚马逊 OpenSearch 服务结合使用,您可以获得以下好处:

  • 您可以简化混合、多 VPC 和多账户解决方案之间的网络架构
  • 通过更好地控制解决方案和亚马逊 OpenSearch Service 域名之间的流量,您可以解决大量合规问题

适用于多个开发团队的共享搜索集群

假设贵公司托管的服务即软件 (SaaS) 应用程序为医疗保健行业提供搜索应用程序编程接口 (API)。每个团队都在 API 的不同功能上工作。开发团队 API 小组 1 API 小组 2 位于两个不同 的 亚马逊云科技 账户中,每个账户中都有自己的 VPC。另一个团队( 数据优化小组 )负责提取和数据优化,以填充托管在与 API 小组 2 相同的账户 中但在 VPC 中不同的 Amazon OpenSearch Service 域。在开发周期中,每个团队共享域名,以节省成本并促进数据建模方面的协作。

解决方案概述

自行管理的 亚马逊云科技 私有链接架构,用于连接不同的 VPC

在这种情况下,在亚马逊 OpenSearch Service 管理 VPC 终端节点(即由 亚马逊云科技 PrivateLink 提供支持)之前,您必须创建以下项目:

  1. 在您的 VPC 中部署 NLB
  2. 创建一个指向弹性网络接口 (ENI) IP 地址的目标组,该地址由亚马逊 OpenSearch 服务在您的 VPC 中创建并用于启动亚马逊 OpenSearch 服务
  3. 创建 亚马逊云科技 PrivateLink 部署并引用您新创建的 NLB

在您实施 NLB 时, 目标组只能引用 IP 地址、Amazon EC2 实例或应用程序负载均衡器 (ALB )。 如果您引用 IP 地址作为目标,则必须构建一个进程,在域因服务启动或自行启动的 蓝/ 绿部署而发生变化时检测 IP 地址的变化。 您必须维护另一个复杂的流程,以确保始终有活跃的 ENI 来指向目标群体,否则您将失去连接。

通常,客户在 亚马逊 Cl oudWatch 中使用带有预定活动的 亚马逊云科技 Lambda 。 这意味着您可以使用 亚马逊云科技 Lambda 来检测提供 IP 地址的 ENI 被标记为活动状态的当前状态,该描述与您的域名创建的 ENI 相匹配。您可以安排 亚马逊云科技 Lambda 在域名服务 (DNS) 设置的生效时间 (TTL)(通常为 60 秒)内唤醒,并将目标组中的现有 IP 地址与您在 VPC 中引用您的域的描述查询所有 ENI 时发现的任何新 IP 地址进行比较。然后,您使用增量生成一个新的目标组,然后交换目标组并删除旧的目标组。这很棘手,很复杂,你必须维护解决方案!

使用新的简化网络架构,您的团队将完成以下步骤。

OpenSearch 服务托管 VPC 端点架构(由 亚马逊云科技 PrivateLink 提供支持)

由于 Amazon OpenSearch Service 负责处理前面描述的基础设施,但不一定采用 相同的实现方式,因此您真正需要注意的是按照 我们服务 文档中的说明 创建连接。

完成说明中的步骤并删除自己的实现后,您的架构将得到简化,如下图所示。

Once you complete the steps in the instructions and remove your own implementation, your architecture is then simplified.

此时,开发团队( API 小组 1 和 API 小组 2 )可以通过亚马逊 OpenSearch Service 托管 VPC 终端节点访问亚马逊 OpenSearch 集群。此选项具有高度的可扩展性,其简化的网络架构使您不必担心管理 NLB 或设置目标组和其他资源。如果将来开发团队和 VPC 的数量增加,则可以将域与关联的接口 VPC 终端节点关联起来。即使存在重叠的 CIDR Block IP 范围,您也可以使用相同或不同的账户访问 VPC 中的服务。

结论

在这篇文章中,我们介绍了使用 OpenSearch 服务管理的 VPC 终端节点 (亚马逊云科技 PrivateLink) 从不同的 VPC 跨不同账户访问 Amazon OpenSearch 集群的架构设计。使用传输网关、自行管理的 亚马逊云科技 PrivateLink 或 VPC 对等连接需要复杂的联网策略,这会增加运营负担。随着 Amazon OpenSearch Service 的 VPC 终端节点的引入,您的解决方案的复杂性大大简化了,更好的是,它可以为您管理!


作者简介

艾什·古纳塞卡 是一位专业解决方案架构师,专注于亚马逊 OpenSearch 服务。她在 亚马逊云科技 的热情是帮助客户设计高度可扩展的架构,并帮助他们踏上云采用之旅。工作之余,她喜欢徒步旅行和烘烤。

凯文·法利 斯( @亚马逊云科技CodeWarrior )是一名 亚马逊云科技 专业搜索解决方案架构师。他在 亚马逊云科技 的热情是帮助客户利用正确的 亚马逊云科技 服务组合来成功实现其业务目标。他下班后的活动包括家庭、DIY 项目、木工、打鼓和所有音乐事物。