我们在 elastic.co 部署了一个 elasticsearch 服务。在创建部署期间,选择“AWS”作为云平台。我们得到一个解析为公共 IP 地址的端点 URL。此外,我们有一个运行多个 ec2 实例的 AWS 账户。当我们从 ec2 实例访问 elasticsearch 服务时,流量通过互联网。
是否可以让 ec2 实例可以看到 elasticsearch 服务,就好像两者都在同一个网络中一样?
我们在 elastic.co 部署了一个 elasticsearch 服务。在创建部署期间,选择“AWS”作为云平台。我们得到一个解析为公共 IP 地址的端点 URL。此外,我们有一个运行多个 ec2 实例的 AWS 账户。当我们从 ec2 实例访问 elasticsearch 服务时,流量通过互联网。
是否可以让 ec2 实例可以看到 elasticsearch 服务,就好像两者都在同一个网络中一样?
如果要使用安全连接,则必须使用称为Elasticsearch Service Private的特殊订阅。常见问题解答 [1] 中提到了这一点:
我们支持使用 AWS Private Link 进行安全对等互连。要在专用 VPC 中运行 Elasticsearch Service,并与您的环境建立安全连接,请使用 Elasticsearch Service Private 订阅。有关更多信息,请参阅设置 Elasticsearch Service Private。
有一个指南概述了您需要采取的所有步骤。[2] 不过我不知道定价细节。在指南中,他们声明您需要联系他们的团队以获得更多信息。在您与他们取得联系并订购Elasticsearch Service Private订阅后,他们会在他们的账户中为您设置一个 VPC。接下来,他们创建一个 VPC PrivateLink Endpoint Service 并将您的账户列入白名单。最后,他们为您提供Elasticsearch Service Private Endpoint Service 名称,您可以使用它来创建 Interface VPC Endpoint(由 PrivateLink 提供支持)。[3]
您应该在 EC2 实例使用的每个子网中创建一个接口终端节点。创建接口终端节点后,您可以通过 PrivateLink 自动添加到 AWS DNS 服务器的 DNS 名称访问 Elasticsearch 终端节点。您只需确保您的 EC2 实例正在使用 VPC 的 DNS 服务器。如果您没有更改 VPC 的默认 DHCP 选项集,它应该是默认配置。
[1] https://www.elastic.co/guide/en/cloud/current/ec-faq.html(请参阅问题:“您支持 VPC 对等 Elasticsearch 服务吗?”)
[2] https://www .elastic.co/guide/en/cloud/current/ec-getting-started-private.html
[3] https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html