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

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

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

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

VPC 端点使您能够将 VPC 私密地连接到支持的 AWS 服务和 VPC 端点服务(由 AWS PrivateLink 提供支持),而无需互联网网关、NAT 设备、VPN 连接或 AWS Direct Connect 连接。

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

AWS Elastic Beanstalk 支持 AWS PrivateLink,这将提供与 Elastic Beanstalk 服务的私有连接并使流量远离公有互联网。要使您的应用程序能够使用 AWS PrivateLink 向 Elastic Beanstalk 发送请求,您可以配置一类称为接口 VPC 终端节点(接口端点)的 VPC 终端节点。有关更多信息,请参阅 Amazon VPC 用户指南中的接口 VPC 终端节点 (AWS PrivateLink)

注意

Elastic Beanstalk 在有限数量的 AWS 区域 中支持 AWS PrivateLink 和接口 VPC 端点。我们正在努力在不久的将来向更多 AWS 区域 提供支持。

IPv6 支持

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

有关 IPv6 的更多一般信息,请参阅《Amazon VPC 用户指南》中的支持 IPv6 的 AWS 服务 和 AWS 白皮书 IPv6 on AWS

公有端点

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

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

  • 双堆栈端点使用域 api.aws – 通用服务端点的格式:elasticbeanstalk.region.api.aws

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

向 Elastic Beanstalk 发出的请求

使用 AWS CLIAWS SDK 向 Elastic Beanstalk 服务发送请求时,您可以指定 IPv4 端点或双堆栈端点。如果未指定端点 URL,则 AWS CLI 和 AWS SDK 默认使用仅限 IPv4 的端点。

以下示例演示了 AWS CLI 向双堆栈端点发送请求:

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

以下示例演示了 AWS 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 地址类型参数指定双堆栈。您可以通过 AWS CLIAWS SDK 或 AWS PrivateLink 控制台指定此字段。有关在 AWS PrivateLink 控制台中执行此操作的说明,请参阅《AWS PrivateLink 指南》中的 Create a VPC endpoint

注意

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

以下示例演示了如何使用 AWS 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 终端节点,请遵循创建接口终端节点过程。

  • 对于 Service Name (服务名称),请选择 com.amazonaws.region.elasticbeanstalk

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

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

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

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

  • 对于 Service Name (服务名称),请选择 com.amazonaws.region.elasticbeanstalk-health

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

重要

healthd 进程守护程序将增强型运行状况信息发送到公有端点 elasticbeanstalk-health.region.amazonaws.com.rproxy.goskope.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 环境