AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

将 Elastic Beanstalk 用于 Amazon Virtual Private Cloud

您可以使用 Amazon Virtual Private Cloud (Amazon VPC) 为您的 Elastic Beanstalk 应用程序和相关的 AWS 资源创建安全网络。在创建您的环境时,您可以选择用于您的应用程序实例和负载均衡器的 VPC、子网和安全组。您可以使用所需的任何 VPC 配置,只要它满足以下要求即可。

VPC 要求

  • Internet 访问 – 实例必须能够通过以下方法之一访问 Internet。

    • 公有子网 – 实例具有公有 IP 地址并使用 Internet 网关访问 Internet。

    • 私有子网 – 实例使用 NAT 设备访问 Internet。

    Elastic Beanstalk 不支持使用代理设置配置 Web 代理,如 HTTPS_PROXY

  • NTP – Elastic Beanstalk 环境中的实例使用网络时间协议 (NTP) 同步系统时钟。如果实例在 UDP 端口 123 上无法通信,时钟将无法同步,从而导致问题并发出 Elastic Beanstalk 运行状况报告。请确保您的 VPC 安全组和网络 ACL 在端口 123 上允许入站和出站 UDP 流量以避免这些问题。

elastic-beanstalk-samples 存储库提供 AWS CloudFormation 模板,您可以使用这些模板创建 VPC 以用于您的 Elastic Beanstalk 环境。

使用 AWS CloudFormation 模板创建资源

  1. 克隆示例存储库或使用自述文件中的链接下载模板。

  2. 打开 AWS CloudFormation 控制台

  3. 选择创建堆栈

  4. 选择将模板上传到 Amazon S3

  5. 选择上传文件,然后从本地计算机中上传模板文件。

  6. 选择下一步,然后按照说明使用模板中的资源创建堆栈。

在堆栈创建完成后,检查 Outputs (输出) 选项卡以查找 VPC ID 和子网 ID。可以使用这些 ID 在新建环境向导网络卡中配置 VPC。

具有公有子网的 VPC

AWS CloudFormation 模板vpc-public.yaml

设置 (负载均衡)

  • 负载均衡器可见性 – 公有

  • 负载均衡器子网 – 两个公有子网

  • 实例公有 IP – 已启用

  • 实例子网 – 两个公有子网

  • 实例安全组 – 添加默认安全组

设置 (单个实例)

  • 实例子网 – 公有子网之一

  • 实例安全组 – 添加默认安全组

基本仅公有 VPC 布局包含一个或多个公有子网,一个 Internet 网关和一个默认安全组(允许 VPC 中的资源之间的流量)。在 VPC 中创建环境时,Elastic Beanstalk 创建额外的资源 (因环境类型而异)。

VPC 资源

  • 单一实例 – Elastic Beanstalk 为应用程序实例创建一个安全组以允许端口 80 上的 Internet 流量,并为实例分配一个弹性 IP 以为其提供公有 IP 地址。环境的域名将解析为实例的公有 IP 地址。

  • 负载均衡 – Elastic Beanstalk 为负载均衡器创建一个安全组以允许端口 80 上的 Internet 流量,并为应用程序实例创建一个安全组以允许来自负载均衡器的安全组的流量。环境的域名将解析为负载均衡器的公有域名。

这与在使用默认 VPC 时 Elastic Beanstalk 管理网络的方式类似。公有子网中的安全性取决于 Elastic Beanstalk 创建的负载均衡器和实例安全组。它是成本最低的配置,因为它不需要使用 NAT 网关。

具有私有和公有子网的 VPC

AWS CloudFormation 模板vpc-privatepublic.yaml

设置 (负载均衡)

  • 负载均衡器可见性 – 公有

  • 负载均衡器子网 – 两个公有子网

  • 实例公有 IP – 已禁用

  • 实例子网 – 两个私有子网

  • 实例安全组 – 添加默认安全组

要提高安全性,请在您的 VPC 中添加私有子网以创建公有-私有 布局。该布局需要在公有子网中使用负载均衡器和 NAT 网关,并允许您在私有子网中运行您的应用程序实例、数据库和任何其他资源。私有子网中的实例只能通过负载均衡器和 NAT 网关与 Internet 通信。

对于不希望从 Internet 访问的内部应用程序,您可以在私有子网中运行所有内容,并将负载均衡器配置为面向内部(将负载均衡器可见性更改为内部)。可以将该布局用于只应从同一 VPC 或附加的 VPN 中访问的应用程序。