本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通过您的 VPC 路由域出站流量
了解如何通过您自己的 VPC(而非公共互联网)路由来自您的 Amazon OpenSearch 服务 VPC 域的出站流量。
注意
此选项仅影响来自该域的出口流量。在端口 80 和 443 上,该域的入口仍然以相同的方式工作。
概述
默认情况下,从 VPC 域到自定义终端节点的流量通过公共互联网离开。
当您启用通过 VPC 的出口时,来自该域的出口流量会进入您的 VPC,并受您的路由表、安全组和网络 ACL 的约束。当您需要通过您的 VPC 控制来自域的出口,或者需要从该域访问私有终端节点(例如 VPC 终端节点)时,请使用此选项。
工作原理
当您在 VPC 域上启用出口时, OpenSearch 服务会在您为该域提供的每个子网中放置一个额外的弹性网络接口 (ENI)。来自域的出口流量通过这些出口 ENI 离开。
出口 ENI 由请求者管理。 OpenSearch Service 会为您创建、配置和删除它们,您无法从您的账户中对其进行修改。
您的 VPC 中的组件
启用出口后,您的 VPC 中会涉及两种资源类型:
-
域名弹性网卡。由 S OpenSearch ervice 为该域的入站流量创建和管理。无论是否启用出口,它们都存在于任何 VPC 域中。
-
出口 ENI。由 S OpenSearch ervice 通过其服务相关角色创建,并由 OpenSearch 服务网络平面管理。它们将出站流量从域传送到您的 VPC。
在 Multi-AZ 域中,出口 ENI 是按可用区配置的,与您为该域选择的子网完全匹配。
出口的 DNS 解析
启用通过 VPC 的出口后,该域将通过默认 VPC 解析器(您的 VPC CIDR 上的 “+2” 地址)解析主机名。启动时不支持自定义 DNS 解析器。
由于该域使用 VPC 解析器,因此它可以解析:
-
与您的 VPC 关联的 Amazon Route 53 私有托管区域中的记录。
-
您的 VPC 中 VPC 终端节点的私有 DNS 名称。
重要
如果您的 VPC DNS 无法访问或配置错误,则该域的出口集成将失败。请参阅问题排查。
先决条件
在启用通过 VPC 的出口之前,请确保您的 VPC 满足以下要求:
-
VPC 上都启用了 DNS 解析和 DNS 主机名。
-
可以从您计划用于该域的子网访问默认 VPC 解析器(您的 VPC CIDR 上的 “+2” 地址)。
子网 IP 容量。为域 ENI 保留通常的 IP 地址数量(参见在 VPC 子网中预留 IP 地址),再加上每个子网的输出 ENI 的额外 IP 地址。
Service-linked 角色。现有的 Amazon Service OpenSearch 服务相关角色将获得创建和管理出口 ENI 所需的权限。如果您已经在使用 VPC 域,则无需重新创建该角色。要了解更多信息,请参阅在 Amazon OpenSearch 服务中使用服务相关角色。
区域可用性。在亚马逊 OpenSearch 服务终端节点和配额页面上列出的区域中,可通过您的 VPC 进行出口。
在域上启用出口
您可以在创建 VPC 域时在 VPC 域上启用出口,也可以通过更新现有 VPC 域来启用出口。您无法在公共终端节点域上启用出口。启用或禁用此选项会触发 blue/green 部署。
控制台
-
打开亚马逊 OpenSearch 服务控制台。
-
开始创建新域,或者选择现有 VPC 域并选择编辑。
-
在网络下,选择 VPC 访问权限,然后像现在一样选择您的 VPC、子网和安全组。
-
在 VPC 出口下,选择启用出口。
-
完成其余步骤,然后提交更改。
AWS CLI
要创建启用了出口的域,请包含EgressEnabled在以下内容中--vpc-options:
aws opensearch create-domain \ --domain-name example-domain \ --engine-version OpenSearch_2.15 \ --cluster-config InstanceType=r6g.large.search,InstanceCount=3,ZoneAwarenessEnabled=true \ --vpc-options '{ "SubnetIds": ["subnet-EXAMPLEAZ1", "subnet-EXAMPLEAZ2", "subnet-EXAMPLEAZ3"], "SecurityGroupIds": ["sg-EXAMPLE"], "EgressEnabled": true }'
要切换现有 VPC 域的出站流量,请使用update-domain-config:
aws opensearch update-domain-config \ --domain-name example-domain \ --vpc-options '{ "SubnetIds": ["subnet-EXAMPLEAZ1", "subnet-EXAMPLEAZ2", "subnet-EXAMPLEAZ3"], "SecurityGroupIds": ["sg-EXAMPLE"], "EgressEnabled": true }'
API
要启用通过您的 VPC 的出口,请EgressEnabled将true设置为 VPCOptions on CreateDomain 或UpdateDomainConfig。该值在 VPCOptions on DescribeDomain 和中返回DescribeDomainConfig。
{ "SubnetIds": ["subnet-EXAMPLEAZ1", "subnet-EXAMPLEAZ2", "subnet-EXAMPLEAZ3"], "SecurityGroupIds": ["sg-EXAMPLE"], "EgressEnabled": true }
有关完整架构,请参阅《亚马逊 OpenSearch 服务 API 参考》中的 vpCopt ions。
更新或禁用
您可以在创建域名时或之后的任何时候打开出口,也可以在启用出口的域上将其关闭。您还可以在出口保持启用状态时添加或移除可用区。更改为EgressEnabled会触发 blue/green 部署,与其他 VPC 配置更改相同。有关更多信息,请参阅 在 Amazon OpenSearch 服务中进行配置更改。
当您禁用出口时, OpenSearch 服务会从您的 VPC 中删除出口 ENI 和相关的服务托管资源。删除域名会自动清理所有出口资源。
验证和监控
启用出口后,请在 Amazon EC2 控制台中查看出口 ENI,确认出口 ENI 存在于所选子网中。它们的描述标识了 OpenSearch 服务域。要观察离开域的出口流量,请在出口 ENI 上启用 VPC 流日志。在 OpenSearch 服务控制台中检查域运行状况,并依靠出口集成(警报目的地、机器学习连接器、快照存储库)中现有的成功和失败信号,了解集成级别的状态。
问题排查
启用出口后,出口集成停止运行。确认您的 VPC 路由表允许从出口 ENI 到目的地的流量,并且 VPC 解析器可以访问并且可以解析目标主机名。
主机名解析失败。确认已在 VPC 上启用 DNS 解析和 DNS 主机名。如果您使用 Route 53 私有托管区域或 Route 53 Resolver 出站终端节点,请确认相关规则适用于目标。
子网中的 IP 地址不足。扩展子网或为域使用专用子网。请参阅在 VPC 子网中预留 IP 地址。
Service-linked 角色缺少权限。重新创建服务相关角色或附加更新的策略。请参阅在 Amazon OpenSearch 服务中使用服务相关角色。
您无法在公共终端节点域上启用出口。通过 VPC 的出口仅在 VPC 域上可用。先转换域名。请参阅从公有访问迁移到 VPC 访问。
警告
出口 ENI 是服务管理的。请勿手动分离或删除它们。要将其删除,请在域上禁用出口选项或删除该域。
限制和注意事项
在亚马逊 OpenSearch 服务终端节点和配额页面上列出的区域中,可通过您的 VPC 进行出口。启用了 VPC 的 Amazon OpenSearch 服务域名支持该功能。
用量和账单
要监控与通过 VPC 的出口相关的数据传输,请查看AWS 账单DataTransfer-Regional-BytesVPCConnectionUsage、操作和产品代码AmazonES。有关当前费率,请参阅 Amazon OpenSearch 服务定价