亚马逊 OpenSearch 无服务器的网络连接模式

亚马逊 OpenSearch Serverles s 是亚马逊 OpenSearch 服务的 按需自动扩展配置。 OpenSearch Serverless 支持多种用例,例如实时应用程序监控、日志分析和网站搜索。OpenSearch Serverless 允许你使用 OpenSearch,而不必担心扩展和管理 OpenSearch 集群。可以通过公共互联网或您的 VPC 访问集合。当您开始从不同的 VPC 和帐户或本地访问 OpenSearch Serverless 时,您的连接模式可能会发生变化。在这篇文章中,我们将介绍您的 OpenSearch 无服务器集合的连接模式和域名系统 (DNS) 解析——无论是通过互联网、在 VPC 内、在 亚马逊云科技 内还是从您的本地位置进行访问。

基础概念

以下基础概念将帮助您更好地理解 OpenSearch 无服务器和 DNS 解析。

网络访问策略

OpenSearch 无服务器的 网络访问策略 决定了集合是可以通过互联网访问还是只能通过 OpenSearch 无服务器托管 VPC 端点进行访问。单个策略可以附加到多个集合。

OpenSearch 无服务器端点

要在不使用互联网网关的情况下从 VPC 私密访问 OpenSearch 无服务器集合和仪表板,您可以创建 VPC 接口 终端节点。 当您创建 VPC 终端节点时,它会在您为 VPC 终端节点启用的每个 子网 中创建一个 弹性网络接口 (ENI)。这些是请求者管理的 ENI,用作发往 OpenSearch 无服务器集合的流量的入口点。创建 OpenSearch 无服务器 VPC 终端节点时,默认情况下私有 DNS 名称选项处于启用状态。这意味着,OpenSearch Serverless 还创建了一个 Amazon Route 53 私有托管区域 ,并将其与创建终端节点的 VPC 关联起来。此私有托管区域具有通配符 DNS 记录 *。 .aoss.amazonaws.com 指向终端节点的私有 DNS。

您可以通过 OpenSearch 无服务器控制台或 OpenSearch 无服务器 API 创建 OpenSearch 无服务器 VPC 端点。您无法从 亚马逊虚拟私有云 (Amazon VPC) 控制台创建 OpenSearch 无服务器 VPC 终端节点,尽管创建后您也可以在 VPC 控制台上看到它们。

亚马逊 Route 53 解析器

让我们了解一下当 亚马逊 弹性计算云 (亚马逊 EC2)实例查询 DNS 名称时, 亚马逊 Rou te 53 Resolver 会 做什么。源自 VPC 的 DNS 查询将通过 VPC+ 2 IP 地址发送到 Route 53 解析器。 当 DNS 查询到达解析器时,它会检查是否存在任何 Route 53 转发规则。如果匹配,则它将查询转发到该规则提供的 DNS 服务器。如果查询仍未解决,Route 53 解析器将继续检查与原始 VPC 相关的私有托管区域。如果仍未解决,则它会检查 VPC DNS,这有助于解析 EC2 DNS 名称。最后,如果查询仍未得到解析,Route 53 解析器会检查公有 DNS。下图说明了这种顺序或操作。

Route 53 DNS Overview

Route 53 解析器入站端点

使用 VPC 和本地资源的工作负载需要解析本地托管的 DNS 记录和 VPC 中托管的资源。使用 Route 53 解析器入站终端节点 ,您可以从本地网络或其他 VPC 解析到您的 VPC 的 DNS 查询。

在以下部分中,我们将概述连接模式和 DNS 解析。

从亚马逊 EC2 访问 OpenSearch 无服务器馆藏(通过互联网网关)

下图演示了通过互联网访问 OpenSearch 无服务器集合的连接模式。该集合的访问类型设置为公开,这允许授权用户通过 Internet 连接到该集合。VPC 内的 EC2 实例可以通过互联网网关与集合建立连接,VPC 之外的用户也可以通过互联网访问该集合。

Access an OpenSearch Serverless collection from Amazon EC2 (via internet gateway)

如上图所示,该工作流程包含以下步骤:

A .EC2 实例使用 VPC+2 IP 地址对路由 53 解析器执行 DNS 查询。Route 53 Resolver 返回 OpenSearch 无服务器集合的公有 IP 地址。

B 。EC2 实例使用此公有 IP 地址通过互联网网关向 OpenSearch 无服务器集合发送数据请求。

C 。外部客户端解析到 OpenSearch 无服务器集合的公有 IP 地址并通过互联网访问该集合。

现在,让我们对来自 EC2 实例的集合或控制面板 URL 执行 di g 命令,我们发现它正在解析为公有 IP 地址。

以下命令使用 OpenSearch 无服务器集合:

sh-5.2$ dig +short <collection-id>.<region>.aoss.amazonaws.com
192.0.2.10
198.51.100.204
192.0.2.45
198.51.100.55
192.0.2.100
203.0.113.66

以下命令使用 OpenSearch 控制面板:

sh-5.2$ dig +short dashboards.<region>.aoss.amazonaws.com
192.0.2.10
198.51.100.204
192.0.2.45
198.51.100.55
192.0.2.100
203.0.113.66

修改网络访问策略

现在,您已经实现了具有公共网络访问策略的 OpenSearch Serverless 集合,您可以在 VPC 内私下访问同一个集合。要实现此目的,请完成以下步骤:

  1. 修改集合的网络访问策略,并将访问类型更改为 VPC。
  2. 选择创建 VPC 终端节点选项。

Access type for OpenSearch Serverless

  1. 选择 VPC 和至少两个您想要在其中使用 VPC 终端节点 ENI 的子网以实现高可用性。
  2. 选择确认创建 VPC 终端节点。

Create VPC endpoints for Amazon OpenSearch Serverless

  1. 最后,选择 VPC 终端节点并更新策略。

Access Type VPC Endpoint for Amazon OpenSearch Serverless

创建 VPC 终端节点后,还会在您的账户中创建一个 Route 53 私有托管区域并将其与您的 VPC 相关联。 在此设置中,创建了一条别名记录 *.us-east-1.aoss.amazonaws.com, 用于指向 AWS Private Link 端点的私有 DNS 名称,如以下屏幕截图所示。

Route 53 Private Hosted Zone

由于私有托管区域与 VPC 相关联,Route 53 解析器优先使用私有托管区域来解析源自 VPC 的任何 DNS 查询。源自 EC2 实例的 OpenSearch 无服务器集合的 DNS 请求使用此关联的私有托管区域进行解析,并解析到 VPC 终端节点的私有 IP 地址,这允许 Amazon EC2 通过 VPC 终端节点而不是互联网网关连接到无服务器集合。我们将在下一节中对此进行详细介绍。

从亚马逊 EC2 访问 OpenSearch 无服务器集合(通过接口 VPC 终端节点)

下图演示了从 VPC 私密访问 OpenSearch 无服务器集合的连接模式。该集合的访问类型设置为 VPC 终端节点,仅限制通过 VPC 终端节点从 VPC 内的资源进行访问,并阻止外部用户进行连接。在创建 VPC 终端节点时,私有托管区域也与此 VPC 相关联。VPC 内的 EC2 实例可以使用 VPC 终端节点与集合建立连接,但由于网络访问策略,VPC 之外的资源无权访问此集合。

Access an OpenSearch Serverless collection from Amazon EC2 (via interface VPC endpoints)

该工作流程包括以下步骤:

A .EC2 实例使用 VPC+2 IP 地址对路由 53 解析器执行 DNS 查询。Route 53 Resolver 返回 VPC 终端节点的私有 IP 地址,因为有一个与该 VPC 关联的私有托管区域包含 CNAME 记录。

B 。EC2 实例通过 VPC 接口终端节点向 OpenSearch 无服务器集合发送数据请求。

C 。外部客户端解析到 OpenSearch 无服务器集合的公有 IP 地址,但由于网络策略仅限于 VPC,因此无法访问该集合。

现在,让我们对来自 EC2 实例的集合或控制面板 URL 执行 di g 命令,我们观察到它正在解析为属于 VPC 终端节点的私有 IP 地址。

使用以下代码创建 OpenSearch 无服务器集合:

sh-5.2$ dig +short <collection-id>.<region>.aoss.amazonaws.com
10.0.1.98
10.0.2.83

使用以下代码创建 OpenSearch 控制面板:

sh-5.2$ dig +short dashboards.<region>.aoss.amazonaws.com
10.0.1.98
10.0.2.83

使用每个 VPC 中的 VPC 终端节点(通过接口 VPC 端点)访问 OpenSearch 无服务器集合

下图演示了使用相同的 VPC 端点连接到多个 OpenSearch 无服务器集合的连接模式。在这种情况下,将在每个 VPC 中创建一个 VPC 终端节点,以使 VPC 内的 EC2 实例能够使用该 VPC 终端节点作为 OpenSearch 无服务器的连接路径。私有托管区域是为每个终端节点自动生成的,并与相应的 VPC 相关联。OpenSearch 无服务器集合的网络策略已更新,允许 VPC 端点-1 和 VPC 端点-2,这允许 VPC-1 中的 EC2 实例通过 VPC 端点-1 访问这两个集合,VPC-2 中的 EC2 实例通过 VPC 端点-2 访问这两个集合。

Access an OpenSearch Serverless collection from many VPCs (via interface VPC endpoints) with a VPC endpoint in each VPC

该工作流程包括以下步骤:

A .EC2 实例使用 VPC+2 IP 地址对路由 53 解析器执行 DNS 查询。Route 53 Resolver 返回 VPC 终端节点的私有 IP 地址(VPC-1 中的 EC2 实例获得 VPC 端点-1 的 IP 地址,VPC-2 中的 EC2 实例获得 VPC 端点-2 的 IP 地址),因为存在与每个 VPC 关联的私有托管区域,其中包含一个 CNAME 记录。

B 。EC2 实例通过 VPC 接口终端节点向 OpenSearch 无服务器集合发送数据请求。

从本地(通过 亚马逊云科技 点对点 VPN 或 亚马逊云科技 Direct Connect)访问 OpenSearch 无服务器馆藏

下图演示了从本地访问 OpenSearch 无服务器集合的连接模式。您可以使用 亚马逊云科技 Direct Connect 亚马逊云科技 点对点 VPN 在本地和 亚马逊云科技 资源之间建立连接。在以下示例中,Direct Connect 用于 亚马逊云科技 与本地之间的连接。在 VPC 中创建一个 OpenSearch 无服务器 VPC 终端节点,并自动生成一个私有托管区域并将其与此 VPC 关联。OpenSearch 无服务器集合的网络策略已更新,仅允许从 VPC 端点进行连接。

要从本地环境私下访问这些 OpenSearch 无服务器集合,资源需要将 OpenSearch 无服务器集合 DNS 解析为 OpenSearch 无服务器 VPC 端点 IP 地址。默认情况下,OpenSearch 无服务器 DNS 会解析到公有 IP 地址并尝试通过互联网访问 OpenSearch 无服务器。为确保通过 VPC 终端节点从本地访问 OpenSearch 无服务器,您需要确保将 DNS 查询解析为 VPC 端点的私有 IP 地址。VPC 内的资源使用 Route 53 解析器(位于 VPC+2 IP 地址提供)将这些查询解析到 VPC 终端节点。Route 53 解析器会检查相关的私有托管区域以将查询解析到 VPC 终端节点。但是,无法从本地访问 VPC+2 IP 地址。要解决这个问题,您可以使用 Route 53 解析器入站端点。

为实现此目的,您可以按照 配置入站转发中概述的步骤在您的 VPC 中创建入站终端节点 ,然后更新本地 DNS 服务器以转发 针对 * 的所有 DNS 请求。 .aoss.amazonaws.com 发送 到 Route 53 解析器入站端点的 IP 地址。当本地客户端获得 VPC 终端节点的 IP 地址时,它可以使用直接连接或点对点 VPN 与 OpenSearch 无服务器集合建立私有连接。

Access an OpenSearch Serverless collection from on premises (via AWS Site-to-Site VPN or AWS Direct Connect)

该工作流程包含以下步骤:

A .本地客户端向本地 DNS 解析器发送 DNS 查询。本地 DNS 解析器将此请求转发到 Route 53 解析器入站终端节点。路由 53 解析器入站端点通过 VPC+2 IP 地址向路由 53 解析器发送 DNS 查询。Route 53 Resolver 返回 VPC 终端节点的私有 IP 地址,因为有与此 VPC 关联的私有托管区域包含 CNAME 记录。

B 。本地客户端向 OpenSearch 无服务器集合发送数据请求,该集合通过直接连接或点对点 VPN 路由到 VPC 接口端点,最后路由到 OpenSearch 无服务器集合。

结论

在这篇文章中,我们向您展示了 OpenSearch 无服务器的各种连接模式。我们介绍了使用混合 DNS 以及使用 Route 53 解析器入站端点来允许 OpenSearch 无服务器从本地进行连接。您可以从各种集中化模式中进行选择,以访问 亚马逊云科技 云内或本地位置的多个 OpenSearch 无服务器集合。立即开始使用我们讨论的各种网络模式连接到 OpenSearch Serverless


作者简介

Salman Ahmed 萨尔曼·艾哈迈德 是 亚马逊云科技 企业支持部门的高级技术客户经理。他喜欢与企业支持客户合作,帮助他们设计、实施和支持云基础架构。他还对网络服务充满热情,拥有 12 年以上的经验,他利用这些经验帮助客户采用 亚马逊云科技 Transit Gateway、亚马逊云科技 Direct Connect 和其他各种 亚马逊云科技 网络服务。

Ankush Goyal Ankush Goyal 是 亚马逊云科技 企业支持的企业支持主管,他帮助企业支持客户简化他们在 亚马逊云科技 上的云运营。他是一位以结果为导向的 IT 专业人士,拥有超过 18 年的经验。

Rohit Aswani Rohit Aswani 是 亚马逊云科技 专注于网络的高级专业解决方案架构师,在那里他帮助客户构建和设计可扩展、高度可用、安全、有弹性且具有成本效益的网络。他拥有东北大学电信系统管理硕士学位,专攻计算机网络。在业余时间,罗希特喜欢远足、旅行和探索新的咖啡馆。