将 Elastic Beanstalk 环境从 EC2-Classic 迁移到 VPC - AWS Elastic Beanstalk
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

将 Elastic Beanstalk 环境从 EC2-Classic 迁移到 VPC

本主题介绍将 Elastic Beanstalk 环境从 EC2-Classic 网络平台迁移到 Amazon Virtual Private Cloud (Amazon VPC) 网络的选项。

如果您在 2013 年 12 月 4 日之前创建了 AWS 账户,则您的环境可能在某些 AWS 区域中使用 EC2-Classic 网络配置。

注意

您可以在 Elastic Beanstalk 控制台配置概述页面的 Network configuration (网络配置) 类别中查看环境的网络配置设置。

为什么应该迁移

在大多数情况下,您应将 EC2-Classic 平台上的 AWS 账户迁移到支持 VPC 的新 AWS 账户。2013 年 12 月 4 日或之后创建的所有 AWS 账户在每个 AWS 区域都有一个默认 VPC。您将从访问最新的 AWS 功能和受支持的功能中受益。

这涉及创建一个新 AWS 账户并在新的 AWS 账户中重新创建 AWS EC2-Classic 环境。您无需为您的环境执行任何其他配置工作即可使用默认 VPC。如果默认 VPC 不符合您的要求,您可以手动创建自定义 VPC 并将其与您的环境关联。

或者,如果您现有的 AWS 账户拥有无法迁移到新 AWS 账户的资源,则可以将 VPC 添加到您的当前账户中,并配置您的环境以使用它。

将环境从 EC2-Classic 迁移到新的 AWS 账户(推荐)

如果您还没有在 2013 年 12 月 4 日或之后创建的 AWS 账户,则需要先创建一个新账户。您要将您的环境迁移到此新账户中。

  1. 您的新 AWS 账户为其环境提供默认 VPC。如果您不需要创建自定义 VPC,请跳至步骤 2。

    您可以通过以下方式之一创建自定义 VPC:

    • 通过 Amazon VPC 控制台向导,您可以使用其中一个可用的配置选项快速设置 VPC。有关更多信息,请参阅 Amazon VPC 控制台向导配置

    • 如果您对 VPC 有更具体的要求(例如特定数量的子网),您也可以使用 Amazon VPC 控制台。有关更多信息,请参阅 VPC 和子网

    • 如果您希望在 Elastic Beanstalk 环境中使用 AWS CloudFormation 模板,GitHub 网站上的 elastic-beanstalk-samples 存储库提供了可用于创建 VPC 的 AWS CloudFormation 模板。有关更多信息,请参阅将 Elastic Beanstalk 和 Amazon VPC 结合使用

    注意

    您还可以在使用创建新环境向导在新的 AWS 账户中重新创建环境的同时创建自定义 VPC。此向导将为您提供创建自定义 VPC 的选项,如果您选择这样做,则将您导航到 Amazon VPC 控制台。

  2. 在您的新 AWS 账户中创建一个新环境,其中包含与您从中进行迁移的 AWS 账户中的现有环境相同的配置。您可以使用以下方法之一实现这一点。

    注意

    如果您的新环境在迁移后必须继续使用相同的 CNAME,则必须首先终止 EC2-Classic 平台上的原始环境,以释放 CNAME 供使用。这将导致该环境发生停机,并导致其他客户可能在终止 EC2-Classic 环境到创建新环境之间的时间内选择您的 CNAME 的风险。有关更多信息,请参阅 终止 Elastic Beanstalk 环境

    对于具有自己的专有域名的环境,CNAME 没有此问题。您只需更新域名系统 (DNS),即可将请求转发到您的新 CNAME。

    • 使用 Elastic Beanstalk 控制台上的创建新环境向导 。该向导提供了一个用于创建自定义 VPC 的选项。如果您不选择创建自定义 VPC,则会分配默认 VPC。

    • 使用 Elastic Beanstalk 命令行界面 (EB CLI) 在新的 AWS 账户中重新创建您的环境。eb create 命令描述中的其中一个示例演示了如何在自定义 VPC 中创建环境。如果您不提供 VPC ID,环境将使用默认 VPC。

      此方法为您提供跨两个 AWS 账户使用保存的配置文件的选项,因此您无需手动输入所有配置信息。您需要使用 eb config save 命令保存要迁移的 EC2-Classic 环境的配置设置。将保存的配置文件复制到新账户环境的新目录中。

      注意

      您需要编辑已保存的配置文件中的某些数据,然后才能在新账户中使用它。您需要使用新账户的正确数据更新与旧账户相关的信息。例如,您必须将 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称 (ARN) 替换为新账户的 IAM 角色 ARN。

      带有 cfg 选项的 eb create 命令将使用指定的已保存的配置文件创建新环境。有关更多信息,请参阅使用 Elastic Beanstalk 保存的配置

从同一个 AWS 账户中的 EC2-Classic 迁移环境

现有的 AWS 账户可能具有无法迁移到新 AWS 账户的资源。您需要重新创建环境并为您创建的每个环境手动配置 VPC。

先决条件

开始之前,您必须拥有 VPC。您可以通过以下方式之一创建非默认(自定义)VPC:

  • 通过 Amazon VPC 控制台向导,您可以使用其中一个可用的配置选项快速设置 VPC。有关更多信息,请参阅 Amazon VPC 控制台向导配置

  • 如果您对 VPC 有更具体的要求(例如特定数量的子网),您也可以使用 Amazon VPC 控制台。有关更多信息,请参阅 VPC 和子网

  • 如果您希望在 Elastic Beanstalk 环境中使用 AWS CloudFormation 模板,GitHub 网站上的 elastic-beanstalk-samples 存储库提供了可用于创建 VPC 的 AWS CloudFormation 模板。有关更多信息,请参阅将 Elastic Beanstalk 和 Amazon VPC 结合使用

在以下步骤中,您可以在新环境中配置 VPC 时使用生成的 VPC ID 和子网 ID。

  1. 创建与现有环境包含相同配置的新环境。您可以使用以下方法之一实现这一点。

    注意

    “保存的配置”功能可以帮助您在新账户中重新创建环境。有关更多信息,请参阅 使用 Elastic Beanstalk 保存的配置

    • 使用 Elastic Beanstalk 控制台,在将使用 VPC 的新环境中应用从 EC2-Classic 环境中保存的配置。有关更多信息,请参阅使用 Elastic Beanstalk 保存的配置

    • 使用 Elastic Beanstalk 命令行界面 (EB CLI),运行 eb create 命令以重新创建环境。提供原始环境的参数和 VPC 标识符。eb create 命令描述中的其中一个示例演示了如何在自定义 VPC 中创建环境。

    • 使用 AWS 命令行界面 (AWS CLI)。使用 elasticbeanstalk create-environment 命令重新创建环境。使用 VPC 标识符提供原始环境的参数。有关说明,请参阅 使用 AWS CLI 创建 Elastic Beanstalk 环境

  2. 交换旧环境及其相应的新环境的 CNAME。这样就可以使用熟悉的地址引用新创建的环境。您可以使用 EB CLI 或 AWS CLI。