View a markdown version of this page

将 Elastic Beanstalk 与 VPC 终端节点结合使用 - Amazon Elastic Beanstalk
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将 Elastic Beanstalk 与 VPC 终端节点结合使用

本主题介绍 VPC 端点可以为您的 Elastic Beanstalk 应用程序提供的优势。它还提供了创建到 Elastic Beanstalk 服务的接口 VPC 端点的说明。

VPC 终端节点使您能够私下将您的 VPC 连接到支持的 Amazon 服务和 VPC 终端节点服务 Amazon PrivateLink,而无需互联网网关、NAT 设备、VPN Amazon Direct Connect 连接或连接。

VPC 中的实例无需公有 IP 地址便可与服务中的资源进行通信。VPC 和其他服务之间的流量不会脱离 Amazon 网络。有关 VPC 端点的完整信息,请参阅《Amazon VPC 用户指南》中的 VPC Endpoints

Amazon Elastic Beanstalk 支持 Amazon PrivateLink,它为Elastic Beanstalk服务提供私有连接,并消除了公共互联网的流量暴露。要使您的应用程序能够使用向 Elastic Beanstalk 发送请求 Amazon PrivateLink,您需要配置一种称为接口 VPC 终端节点接口终端节点)的 VPC 终端节点。有关更多信息,请参阅 Amazon VPC 用户指南中的接口 VPC 端点 (Amazon PrivateLink)

注意

Elastic Beanstalk 支持 Amazon PrivateLink 和连接有限数量的 VPC 终端节点。 Amazon Web Services 区域我们正在努力 Amazon Web Services 区域 在不久的将来向更多人提供支持。

双堆栈配置支持 IPv6

Elastic Beanstalk 支持通过 IPv4 和 IPv6 传入流量。本节介绍同时支持 IPv4 和 IPv6 的公共端点,还说明了如何配置您的 Elastic Beanstalk VPC 端点以支持双堆栈流量。

公有端点

Elastic Beanstalk 服务有两组端点,包括较旧的 IPv4 端点和具有双栈功能的最新端点。这两组端点都遵循 Amazon 命名标准:

  • IPv4 端点使用域 amazonaws.com – 通用服务端点的格式:elasticbeanstalk.region.amazonaws.com

  • Dual-stack端点使用通用服务端点的域 api.aws — 格式:elasticbeanstalk.region.api.aws

服务运行状况FIPS 的端点具有不同的主机名,但它们遵循相同的域名模式。有关端点的列表,请参阅《Amazon Web Services 一般参考》中的 Elastic Beanstalk service endpoints

向 Elastic Beanstalk 发出的请求

使用 Amazon CLIAmazon SDK 向 Elastic Beanstalk 服务发送请求时,您可以指定 IPv4 端点或双堆栈端点。如果未指定 IPv4-only 终端节点 URL,则 Amazon CLI 和 Amazon SDK 默认使用终端节点。

以下示例演示了向双栈终端节点 Amazon CLI 发送请求的过程:

aws elasticbeanstalk list-available-solution-stacks \ --endpoint-url "https://elasticbeanstalk.us-east-1.api.aws"

以下示例演示了 Amazon Python SDK 向双栈终端节点发送请求:

import boto3 dual_stack_eb_client = boto3.client( service_name='elasticbeanstalk', region_name='us-east-1', endpoint_url='https://elasticbeanstalk.us-east-1.api.aws'; ) print(dual_stack_eb_client.list_available_solution_stacks())
双堆栈 IP 的 VPC 端点

要将您的 Elastic Beanstalk VPC 端点配置为支持双堆栈流量,请为 VPC 端点的 IP 地址类型参数指定双堆栈。您可以通过Amazon CLIAmazon SDK 或 Amazon PrivateLink 控制台指定此字段。有关在 Amazon PrivateLink 控制台中执行此操作的说明,请参阅Amazon PrivateLink 指南中的创建 VPC 终端节点

注意

您必须将 VPC 端点的 IP 地址类型指定为 IPv4双堆栈。目前,Elastic Beanstalk VPC 终端节点不支持 IP 地址类型 IPv6,这表示支持。 IPv6-only 双堆栈选项支持 IPv4 和 IPv6 互联网协议。

以下示例演示了如何使用 Amazon CLI创建双堆栈 VPC 端点:

aws ec2 create-vpc-endpoint \ --vpc-id "vpc-example" --service-name "com.amazonaws.us-east-1.elasticbeanstalk" --ip-address-type "dualstack"

为 Elastic Beanstalk 设置 VPC 终端节点

要在 VPC 中为 Elastic Beanstalk 服务创建接口 VPC 终端节点,请遵循创建接口终端节点过程。

  • 对于服务名称,选择 com.amazonaws。region.elasticbeanstalk。

  • 对于 IP 地址类型,选择 IPv4双堆栈。目前,Elastic Beanstalk VPC 终端节点不支持 IP 地址类型 IPv6,这表示支持。 IPv6-only 双堆栈选项支持 IPv4 和 IPv6 Internet 协议。

如果已为 VPC 配置公有 Internet 访问权限,则您的应用程序仍可使用 elasticbeanstalk.region.amazonaws.comelasticbeanstalk.region.api.aws 公有端点通过 Internet 访问 Elastic Beanstalk。可以通过确保在终端节点创建期间启用 Enable DNS name (启用 DNS 名称) 来防止这种情况(默认情况下为 true)。这会在您的 VPC 中添加一个 DNS 条目,该条目将公有服务终端节点映射到接口 VPC 终端节点。

为增强型运行状况设置 VPC 终端节点

如果您为环境启用了增强型运行状况报告,则也可以将增强型运行状况信息配置为发送 Amazon PrivateLink 过来。增强型运行状况信息由 healthd 守护程序(环境实例上的 Elastic Beanstalk 组件)发送到单独的 Elastic Beanstalk 增强型运行状况服务。要在 VPC 中为此服务创建接口 VPC 终端节点,请遵循创建接口终端节点过程。

  • 对于服务名称,选择 com.amazonaws。region.elasticBeanstalk -health。

  • 对于 IP 地址类型,选择 IPv4双堆栈。目前,Elastic Beanstalk VPC 终端节点不支持 IP 地址类型 IPv6,这表示支持。 IPv6-only 双堆栈选项支持 IPv4 和 IPv6 Internet 协议。

重要

healthd 进程守护程序将增强型运行状况信息发送到公有端点 elasticbeanstalk-health.region.amazonaws.comelasticbeanstalk-health.region.api.aws。如果已为 VPC 配置公有 Internet 访问权限,并且为 VPC 终端节点禁用了 Enable DNS name (启用 DNS 名称),则增强型运行状况信息将通过公有 Internet 传播。在设置增强型运行状况 VPC 终端节点时,这可能不是您的意图。请确保启用 Enable DNS name (启用 DNS 名称)(默认情况下为 true)。

在私有 VPC 中使用 VPC 终端节点

私有 VPC 或 VPC 中的私有子网没有公有 Internet 访问权限。您可能希望在私有 VPC 中运行 Elastic Beanstalk 环境并配置接口 VPC 终端节点以增强安全性。在此情况下,请注意,除了联系 Elastic Beanstalk 服务之外,您的环境可能会出于其他原因尝试连接到 Internet。要了解有关在私有 VPC 中运行环境的更多信息,请参阅在私有 VPC 中运行 Elastic Beanstalk 环境