

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

# 通过您的 VPC 路由域出站流量
<a name="vpc-egress"></a>

了解如何通过您自己的 VPC（而非公共互联网）路由来自您的 Amazon OpenSearch 服务 VPC 域的出站流量。

**注意**  
此选项仅影响来自该域的出口流量。在端口 80 和 443 上，该域的入口仍然以相同的方式工作。

## 概述
<a name="vpc-egress-overview"></a>

默认情况下，从 VPC 域到自定义终端节点的流量通过公共互联网离开。

当您启用通过 VPC 的出口时，来自该域的出口流量会进入您的 VPC，并受您的路由表、安全组和网络 ACL 的约束。当您需要通过您的 VPC 控制来自域的出口，或者需要从该域访问私有终端节点（例如 VPC 终端节点）时，请使用此选项。

## 工作原理
<a name="vpc-egress-architecture"></a>

当您在 VPC 域上启用出口时， OpenSearch 服务会在您为该域提供的每个子*网中放置一个额外的弹性网络接口* (ENI)。来自域的出口流量通过这些出口 ENI 离开。

出口 ENI 由请求者管理。 OpenSearch Service 会为您创建、配置和删除它们，您无法从您的账户中对其进行修改。

### 您的 VPC 中的组件
<a name="vpc-egress-components"></a>

启用出口后，您的 VPC 中会涉及两种资源类型：
+ **域名弹性网卡。**由 S OpenSearch ervice 为该域的入站流量创建和管理。无论是否启用出口，它们都存在于任何 VPC 域中。
+ **出口 ENI。**由 S OpenSearch ervice 通过其服务相关角色创建，并由 OpenSearch 服务网络平面管理。它们将出站流量从域传送到您的 VPC。

在 Multi-AZ 域中，出口 ENI 是按可用区配置的，与您为该域选择的子网完全匹配。

### 出口的 DNS 解析
<a name="vpc-egress-dns"></a>

启用通过 VPC 的出口后，该域将通过默认 VPC 解析器（您的 VPC CIDR 上的 “\+2” 地址）解析主机名。启动时不支持自定义 DNS 解析器。

由于该域使用 VPC 解析器，因此它可以解析：
+ 与您的 VPC 关联的 Amazon Route 53 私有托管区域中的记录。
+ 您的 VPC 中 VPC 终端节点的私有 DNS 名称。

**重要**  
如果您的 VPC DNS 无法访问或配置错误，则该域的出口集成将失败。请参阅[问题排查](#vpc-egress-troubleshoot)。

## 先决条件
<a name="vpc-egress-prereqs"></a>

在启用通过 VPC 的出口之前，请确保您的 VPC 满足以下要求：
+ VPC 上都启用了 DNS 解析和 DNS 主机名。
+ 可以从您计划用于该域的子网访问默认 VPC 解析器（您的 VPC CIDR 上的 “\+2” 地址）。

**子网 IP 容量。**为域 ENI 保留通常的 IP 地址数量（参见[在 VPC 子网中预留 IP 地址](vpc.md#reserving-ip-vpc-endpoints)），再加上每个子网的输出 ENI 的额外 IP 地址。

**Service-linked 角色。**现有的 Amazon Service OpenSearch 服务相关角色将获得创建和管理出口 ENI 所需的权限。如果您已经在使用 VPC 域，则无需重新创建该角色。要了解更多信息，请参阅[在 Amazon OpenSearch 服务中使用服务相关角色](slr.md)。

**区域可用性。**在亚马逊 OpenSearch 服务终端节点和配额页面上列出的区域中，可通过您的 VPC 进行出口。

## 在域上启用出口
<a name="vpc-egress-enable"></a>

您可以在创建 VPC 域时在 VPC 域上启用出口，也可以通过更新现有 VPC 域来启用出口。您无法在公共终端节点域上启用出口。启用或禁用此选项会触发 blue/green 部署。

### 控制台
<a name="vpc-egress-enable-console"></a>

1. 打开亚马逊 OpenSearch 服务控制台。

1. 开始创建新域，或者选择现有 VPC 域并选择**编辑**。

1. 在**网络**下，选择 **VPC 访问权限**，然后像现在一样选择您的 VPC、子网和安全组。

1. 在 **VPC 出口**下，选择**启用出**口。

1. 完成其余步骤，然后提交更改。

### Amazon CLI
<a name="vpc-egress-enable-cli"></a>

要创建启用了出口的域，请包含`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
<a name="vpc-egress-enable-api"></a>

要启用通过您的 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](https://docs.amazonaws.cn/opensearch-service/latest/APIReference/API_VPCOptions.html) ions。

## 更新或禁用
<a name="vpc-egress-update"></a>

您可以在创建域名时或之后的任何时候打开出口，也可以在启用出口的域上将其关闭。您还可以在出口保持启用状态时添加或移除可用区。更改为`EgressEnabled`会触发 blue/green 部署，与其他 VPC 配置更改相同。有关更多信息，请参阅 [在 Amazon OpenSearch 服务中进行配置更改](managedomains-configuration-changes.md)。

当您禁用出口时， OpenSearch 服务会从您的 VPC 中删除出口 ENI 和相关的服务托管资源。删除域名会自动清理所有出口资源。

## 验证和监控
<a name="vpc-egress-monitor"></a>

启用出口后，请在 Amazon EC2 控制台中查看出口 ENI，确认出口 ENI 存在于所选子网中。它们的描述标识了 OpenSearch 服务域。要观察离开域的出口流量，请在出口 ENI 上启用 VPC 流日志。在 OpenSearch 服务控制台中检查域运行状况，并依靠出口集成（警报目的地、机器学习连接器、快照存储库）中现有的成功和失败信号，了解集成级别的状态。

## 问题排查
<a name="vpc-egress-troubleshoot"></a>

**启用出口后，出口集成停止运行。**确认您的 VPC 路由表允许从出口 ENI 到目的地的流量，并且 VPC 解析器可以访问并且可以解析目标主机名。

**主机名解析失败。**确认已在 VPC 上启用 DNS 解析和 DNS 主机名。如果您使用 Route 53 私有托管区域或 Route 53 Resolver 出站终端节点，请确认相关规则适用于目标。

**子网中的 IP 地址不足。**扩展子网或为域使用专用子网。请参阅[在 VPC 子网中预留 IP 地址](vpc.md#reserving-ip-vpc-endpoints)。

**Service-linked 角色缺少权限。**重新创建服务相关角色或附加更新的策略。请参阅[在 Amazon OpenSearch 服务中使用服务相关角色](slr.md)。

**您无法在公共终端节点域上启用出口。**通过 VPC 的出口仅在 VPC 域上可用。先转换域名。请参阅[从公有访问迁移到 VPC 访问](vpc.md#migrating-public-to-vpc)。

**警告**  
出口 ENI 是服务管理的。请勿手动分离或删除它们。要将其删除，请在域上禁用出口选项或删除该域。

## 限制和注意事项
<a name="vpc-egress-limits"></a>

在亚马逊 OpenSearch 服务终端节点和配额页面上列出的区域中，可通过您的 VPC 进行出口。启用了 VPC 的 Amazon OpenSearch 服务域名支持该功能。

## 用量和账单
<a name="vpc-egress-billing"></a>

要监控与通过 VPC 的出口相关的数据传输，请查看[Amazon 账单](https://console.amazonaws.cn/billing/home)控制面板以了解使用类型`DataTransfer-Regional-Bytes``VPCConnectionUsage`、操作和产品代码`AmazonES`。有关当前费率，请参阅 [Amazon OpenSearch 服务定价](https://www.amazonaws.cn/opensearch-service/pricing/)。