

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

# 将 Elastic Beanstalk EC2 环境从-Classic 迁移到 VPC
<a name="vpc-ec2migration"></a>

本主题介绍如何将您的 Elastic Beanstalk 环境 EC2从经典网络平台迁移到亚马逊虚拟[私有云（亚马逊](https://docs.aws.amazon.com/vpc/latest/userguide/) VPC）网络的不同选项。

如果您在 2013 年 12 月 4 日之前创建了 AWS 账户，则某些 AWS 区域环境中可能使用 EC2-Classic 网络配置。2013 年 12 月 4 日当天或之后创建的所有 AWS 账户都已在每个地区仅限 VPC。 AWS 唯一的豁免是由于支持请求而启用了 Amazon EC2-Classic。

**注意**  
您可以在 [Elastic Beanstalk 控制台](https://console.aws.amazon.com/elasticbeanstalk)的 [Configuration overview](environments-cfg-console.md#environments-cfg-console.overview)（配置概览）页面的 **Network configuration**（网络配置）类别中查看环境的网络配置设置。

## 为什么应该迁移
<a name="vpc-ec2migration.benefits"></a>

Amazon EC2-Classic将于2022年8月15日结束其标准支持。为避免工作负载中断，我们建议您在 2022 年 8 月 15 日之前从 Amazon EC2-Classic 迁移到 VPC。我们还要求您将来不要在 Amazon EC2-Classic 上启动任何 AWS 资源，而是使用亚马逊 VPC。

当您将 Elastic Beanstalk 环境从 EC2 Amazon-Classic 迁移到亚马逊 VPC 时，必须创建一个新账户。 AWS 您还必须在新 AWS 账户中重新创建 AWS EC2-Classic 环境。无需为您的环境执行任何其他配置工作即可使用默认 VPC。如果默认 VPC 不符合您的要求，您可以手动创建自定义 VPC 并将其与您的环境关联。



或者，如果您的现有 AWS 账户中有无法迁移到新 AWS 账户的资源，请将一个 VPC 添加到您的当前账户。然后，配置您的环境以使用 VPC。

有关更多信息，请参阅 “[EC2经典网络即将停用——以下是如何准备](https://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/)” 博客文章。

## 将环境从 EC2-Classic 迁移到新 AWS 账户（推荐）
<a name="vpc-ec2migration.newaccount"></a>

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

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

   您可以通过以下方式之一创建自定义 VPC：
   + 使用 Amazon VPC 控制台向导，您可以使用其中一个可用的配置选项快速创建 VPC。有关更多信息，请参阅 [Amazon VPC 控制台向导配置](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_wizard.html)。
   + 如果您对 VPC 有更具体的要求，请在 Amazon VPC 控制台上创建自定义 VPC。例如，如果您的使用案例需要特定数量的子网，我们建议您这样做。有关更多信息，请参阅[VPCs 和子网](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)。
   + 如果您更喜欢在 Elastic Beanstalk 环境中使用 AWS CloudFormation 模板，请使用 GitHub 网站上的[elastic-beanstalk-samples](https://github.com/awsdocs/elastic-beanstalk-samples/)存储库创建 VPC。此存储库包含 CloudFormation 模板。有关更多信息，请参阅 [将 Elastic Beanstalk 和 Amazon VPC 结合使用](vpc.md)。
**注意**  
您还可以在使用新建环境[向导在新 AWS 账户中重新创建环境的同时创建](environments-create-wizard.md)自定义 VPC。如果您使用向导并选择创建自定义 VPC，则该向导将您重新导向到 Amazon VPC 控制台。

1. 在新 AWS 账户中，创建新环境。我们建议该环境在您要迁移的 AWS 账户中包含与现有环境相同的配置。您可以使用以下方法之一实现这一点。
**注意**  
如果您的新环境在迁移后必须使用相同的 CNAME，请在 EC2-Classic 平台上终止原始环境。这会释放别名记录以供使用。但是，这样做可能会导致该环境停机，还可能导致其他客户在您终止 EC2-Classic环境和创建新环境之间选择您的CNAME。有关更多信息，请参阅 [终止 Elastic Beanstalk 环境](using-features.terminating.md)。  
对于具有自己的专有域名的环境，CNAME 没有此问题。您只需更新域名系统 (DNS)，即可将请求转发到您的新 CNAME。
   +  使用 [Elastic Beanstalk 控制台](https://console.aws.amazon.com/elasticbeanstalk)上的[创建新环境向导](environments-create-wizard.md)。该向导提供了一个用于创建自定义 VPC 的选项。如果您不选择创建自定义 VPC，则会分配默认 VPC。
   + 使用 Elastic Beanstalk 命令行界面 (EB CLI) 在新账户中重新创建您的环境。 AWS **eb create** 命令描述中的其中一个[示例](eb3-create.md#eb3-createexample1)演示了如何在自定义 VPC 中创建环境。如果您不提供 VPC ID，环境使用默认 VPC。

     通过使用这种方法，您可以跨两个 AWS 账户使用已保存的配置文件。因此，无需手动输入所有配置信息。但是，您必须使用 e [b config save 命令保存要迁移的 EC2-Classic 环境的配置](eb3-config.md)设置。将保存的配置文件复制到新账户环境的新目录中。
**注意**  
您必须编辑已保存的配置文件中的某些数据，然后才能在新账户中使用它。您必须使用新账户的正确数据更新与先前账户相关的信息。例如，您必须将 AWS Identity and Access Management （IAM）角色的 Amazon Resource Name（ARN）替换为新账户的 IAM 角色 ARN。

     如果您使用带有 `cfg` 的 [eb create](eb3-create.md) 命令，系统将使用指定的已保存的配置文件创建新环境。有关更多信息，请参阅 [使用 Elastic Beanstalk 保存的配置](environment-configuration-savedconfig.md)。

## 将环境从 EC2-Classic 迁移到同一个 AWS 账户中
<a name="vpc-ec2migration.classicaccount"></a>

您的现有 AWS 账户可能有无法迁移到新 AWS 账户的资源。在这种情况下，您必须重新创建环境并为您创建的每个环境手动配置 VPC。

### 将您的环境迁移到自定义 VPC
<a name="vpc-ec2migration.classicaccount.expandable"></a>

**先决条件**  
开始之前，您必须拥有 VPC。您可以通过以下方式之一创建非默认（自定义）VPC：
+ 使用 Amazon VPC 控制台向导，您可以使用其中一个可用的配置选项快速创建 VPC。有关更多信息，请参阅 [Amazon VPC 控制台向导配置](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_wizard.html)。
+ 如果您对 VPC 有更具体的要求，请在 Amazon VPC 控制台上创建自定义 VPC。例如，如果您的使用案例需要特定数量的子网，我们建议您这样做。有关更多信息，请参阅[VPCs 和子网](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)。
+ 如果您更喜欢在 Elastic Beanstalk 环境中使用 AWS CloudFormation 模板，请使用 GitHub 网站上的[elastic-beanstalk-samples](https://github.com/awsdocs/elastic-beanstalk-samples/)存储库创建 VPC。此存储库包含 CloudFormation 模板。有关更多信息，请参阅 [将 Elastic Beanstalk 和 Amazon VPC 结合使用](vpc.md)。

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

1. 创建与现有环境包含相同配置的新环境。您可以使用以下方法之一实现这一点。
**注意**  
“保存的配置”功能可以帮助您在新账户中重新创建环境。此功能可以保存环境配置，因此您可以在创建或更新其他环境时应用它。有关更多信息，请参阅 [使用 Elastic Beanstalk 保存的配置](environment-configuration-savedconfig.md)。
   + 在配置新环境时，使用 [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk 控制台，应用您的-Classic 环境 EC2中保存的配置。此配置将使用 VPC。有关更多信息，请参阅 [使用 Elastic Beanstalk 保存的配置](environment-configuration-savedconfig.md)。
   + 使用 Elastic Beanstalk 命令行界面 (EB CLI)，运行 [eb create](eb3-create.md) 命令以重新创建环境。提供原始环境的参数和 VPC 标识符。**eb create** 命令描述中的其中一个[示例](eb3-create.md#eb3-createexample1)演示了如何在自定义 VPC 中创建环境。
   + 使用 AWS Command Line Interface (AWS CLI)，然后使用**elasticbeanstalk create-environment**命令重新创建您的环境。使用 VPC 标识符提供原始环境的参数。有关说明，请参阅[使用 CLI 创建 Elastic Beanstalk 环境 AWS](environments-create-awscli.md)。

1. 将 CNAMEs 现有环境与新环境交换。这样就可以使用熟悉的地址引用创建的新环境。您可以使用 EB CLI 或 AWS CLI。
   + 使用 EB CLI， CNAMEs 通过运行**eb swap**命令来交换环境。有关更多信息，请参阅 [设置 EB 命令行界面（EB CLI）来管理 Elastic Beanstalk](eb-cli3.md)。
   + 使用 AWS CLI，使用 ela [sticbeanstalk 命令 swap-environment-cnames](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/swap-environment-cnames.html)交换环境 CNAMEs 。有关更多信息，请参阅 [AWS CLI 命令参考](https://docs.aws.amazon.com/cli/latest/reference/)。