从 Amazon EBS 卷移动 AWS Cloud9 IDE - AWS Cloud9

AWS Cloud9 现已不再向新客户提供。AWS Cloud9 的现有客户可以继续正常使用该服务。了解更多

从 Amazon EBS 卷移动 AWS Cloud9 IDE

您可以将 AWS Cloud9 开发环境从一个 Amazon EC2 实例移动到另一个。例如,您可以执行以下操作之一:

  • 从受损的或以意料之外(与正常运行的实例相比)方式运行的 Amazon EC2 实例中传输环境。

  • 将环境从现有的实例传输到已安装最新系统更新的实例。

  • 增加或减少实例的计算资源(由于该环境在当前实例上已过度使用或使用不充分)。

您可以通过迁移到新的 AWS Cloud9 EC2 环境从一个 AWS Cloud9 支持的 AMI 升级到另一个受支持的 AMI,同时保留项目文件。您可能想要升级到另一个版本的 AMI,因为:

  • 当前环境的 AMI 已到达生命周期末尾,不再受支持。

  • 所需的程序包在当前 AMI 中已过时。

您还可以调整与用于环境的与 Amazon EC2 实例关联的 Amazon Elastic Block Store(Amazon EBS)卷的大小。例如,您可以执行以下操作之一或两个操作均执行:

  • 增加卷的大小,因为实例上的存储空间不足。

  • 减小卷的大小,因为您不希望为不使用的额外存储空间付费。

在移动环境或调整其大小之前,您可用尝试停止环境中一些正在运行的进程或向环境中添加交换文件。有关处理内存不足或 CPU 使用率高的更多信息,请参阅故障排除

注意

本主题仅介绍将从环境一个 Amazon EC2 实例移动到另一个实例或调整 Amazon EBS 卷的大小。要调整您自己的其中一个服务器中的环境,或者要更改您自己的其中一个服务器的存储空间,请参考服务器的文档。

最后,您可以加密 Amazon EBS 资源,以确保实例与其附加的 EBS 存储之间的静态数据和传输中数据的安全性。

移动环境

在开始移动过程之前,请注意以下条件:

  • 您不能将环境移动到相同类型的 Amazon EC2 实例。在您进行移动时,必须为新实例选择不同的 Amazon EC2 实例类型。

    重要

    如果您将环境移动到另一个 Amazon EC2 实例类型,则该实例类型也必须在当前 AWS 区域 中受 AWS Cloud9 支持。要查看每个区域中可用的实例类型,请转到 Configure settings(配置设置)页面,该页面在使用控制台创建 EC2 环境时显示。您在 Instance type(实例类型)部分的选择由在控制台的右上角选择的 AWS 区域 决定。

  • 您必须先停止与环境关联的 Amazon EC2 实例,然后才能更改实例类型。当实例停止时,您和任何成员都不能使用与已停止实例关联的环境。

  • AWS 将实例移动到新硬件;但是,实例的 ID 不会更改。

  • 如果实例在 Amazon VPC 中运行并具有公有 IPv4 地址,则 AWS 会释放该地址并向实例提供一个新的公有 IPv4 地址。实例会保留其私有 IPv4 地址以及任何弹性 IP 地址或 IPv6 地址。

  • 当实例停止时,请计划停机时间。此过程可能需要几分钟时间。

移动环境
  1. (可选)如果新实例类型需要现有实例上未安装的驱动程序,则连接到您的实例并安装这些驱动程序。有关更多信息,请参阅《Amazon EC2 用户指南》中的调整实例大小的兼容性

  2. 关闭当前显示环境的所有 Web 浏览器选项卡。

    重要

    如果您不关闭当前显示环境的所有 Web 浏览器标签页,AWS Cloud9 可能会妨碍您完成此过程。具体而言,AWS Cloud9 可能在此过程中的错误时间重新启动与环境关联的 Amazon EC2 实例。在此过程的最后一步完成之前,该实例必须保持停止状态。

  3. 如果尚未登录,请登录到 AWS Management Console (https://console.aws.amazon.com/)。

    我们建议您使用您的 AWS 账户 中的管理员级别凭证登录。如果您无法执行此操作,请咨询您的 AWS 账户管理员。

  4. 打开 Amazon EC2 控制台。为此,请在 Services(服务)列表中,选择 EC2

  5. 在 AWS 导航栏中,选择您要移动的环境所属的 AWS 区域(如美国东部(俄亥俄州))。

  6. 在服务导航窗格中,展开 Instances(实例),然后选择 Instances(实例)

  7. 在实例列表中,选择与您要移动的环境关联的实例。对于 EC2 环境,实例名称以 aws-cloud9- 开头,后跟环境名称。例如,如果环境名为 my-demo-environment,实例名称以 aws-cloud9-my-demo-environment 开头。

  8. 如果实例状态不是已停止,请依次选择操作实例状态停止。当屏幕上出现提示时,请选择 Yes, Stop(是,停止)。停止实例可能需要几分钟时间。

  9. Instance State(实例状态)stopped(已停止)且实例仍处于选中状态的情况下,选择 Actions(操作)> Instance Settings(实例设置)> Change Instance Type(更改实例类型)

  10. Change Instance Type(更改实例类型)对话框中,在 Instance Type(实例类型)处选择环境使用的新实例类型。

    注意

    如果列表中未显示您所需的实例类型,则说明它与实例的配置不兼容。例如,由于虚拟化类型,该实例可能不兼容。

  11. (可选)如果您选择的实例类型支持 EBS 优化,则选择 EBS-optimized(EBS 优化)以启用 EBS 优化,或取消选择 EBS-optimized(EBS 优化)以禁用 EBS 优化。

    注意

    如果您选择的实例类型默认情况下已经过 EBS 优化,则 EBS-optimized(EBS 优化)已选中,您无法清除它。

  12. 选择 Apply(应用)以接受新设置。

    注意

    如果您在本过程的前面部分没有对 Instance Type(实例类型)选择其他实例类型,则在您选择 Apply(应用)后不会有任何效果。

  13. 重新打开环境。有关更多信息,请参阅 在 AWS Cloud9 中打开环境

有关前述过程的更多信息,请参阅《Amazon EC2 用户指南》中的更改实例类型

将 AWS Cloud9 EC2 环境移动到另一个亚马逊机器映像(AMI)

本主题介绍如何将 AWS Cloud9 EC2 环境从一个 Amazon Linux AMI 迁移到另一个受 AWS Cloud9 支持的 AMI。

注意

如果您想将环境迁移到新实例而不更新操作系统版本,请参阅移动环境

可以使用以下过程之一在环境之间迁移数据:

通过将归档下载到本地计算机来移动环境
  1. 使用不同的基础映像在同一可用区中创建新环境:

    1. 完成创建 EC2 环境部分中的步骤以创建新环境。

      注意

      选择平台时,请选择要将环境迁移到的平台。

    2. 默认情况下,使用 10 GiB 的卷创建环境。如果您没有足够的空间将归档上传或解压缩到新环境,请完成调整环境使用的 Amazon EBS 卷大小过程中的步骤来调整 Amazon EBS 卷大小。

  2. 在 AWS Cloud9 IDE 中打开要迁移的环境。

  3. AWS Cloud9 IDE 加载后,从菜单中选择文件 > 下载项目,以下载包含环境项目目录内容的归档。

  4. 在新环境中打开 AWS Cloud9 IDE。

  5. 选择文件 > 上传本地文件... 以上传归档。

  6. (可选)要将旧 .c9 目录备份到 .c9.backup,请在环境终端中运行以下命令:

    cp .c9 .c9.backup

    如果想稍后恢复配置文件,则可能需要这些备份文件。

  7. 要将归档解压缩,请运行以下命令:

    tar xzvf <old_environment_name>.tar.gz -C ~/
  8. 要从项目目录中删除归档,请运行以下命令:

    rm <old_environment_name>.tar.gz

    确保新环境按预期运行。

  9. 现在,您可以删除旧环境。

使用 Amazon EBS 卷移动环境

如果无法下载归档,或如果生成的归档太大,则可以使用 Amazon EBS 卷进行迁移。此外,您还可通过此方法复制位于 ~/environment 目录之外的文件。

  1. 关闭在现有环境中打开的所有 AWS Cloud9 IDE 选项卡。

  2. 完成以下步骤以停止现有实例:

    1. 在 AWS Cloud9 控制台中,选择要导航的环境以查看其详细信息。

    2. 环境详细信息页面的 EC2 实例选项卡下,选择管理 EC2 实例

    3. 在 EC2 控制台中,选择实例以导航到实例详细信息。

    4. 确保实例状态设置为已停止。如果不是,请从实例状态下拉列表中选择停止实例。看到提示时,请选择停止。停止实例可能需要几分钟时间。

  3. 使用不同的基础映像在同一可用区中创建新环境:

    1. 完成创建 EC2 环境部分中的步骤以创建新环境。

      注意

      选择平台时,请选择要将环境迁移到的平台。

    2. 默认情况下,使用 10 GiB 的卷创建环境。如果您没有足够的空间将文件从源卷移动到新环境,请完成调整环境使用的 Amazon EBS 卷大小过程中的步骤来调整 Amazon EBS 卷的大小。

  4. 完成以下步骤,将卷与现有实例分离:

    1. 实例摘要页面上,选择存储选项卡并选择卷。所选卷的设备名称必须与根设备详细信息部分的根设备名称中指定的名称相同。

    2. 在卷详细信息页面上,选择操作 > 分离卷

    3. 成功分离卷后,请选择操作 > 附加卷,然后从下拉列表中查找并选择新环境的实例。所选 Amazon EC2 实例的名称必须包含前缀为 aws-cloud9 的 AWS Cloud9 环境名称。

  5. 在新环境中打开 AWS Cloud9 IDE。

  6. 环境加载后,要识别新附加的卷的设备,请在终端中运行以下命令:

    lsblk

    在以下示例输出中,根设备 nvme0n1p1 的分区 nvme0n1 已挂载,因此还必须挂载 nvme1n1p1 分区。其设备的完整路径为 /dev/nvme1n1p1

    Admin:~/environment $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS nvme0n1 259:0 0 10G 0 disk ├─nvme0n1p1 259:2 0 10G 0 part / ├─nvme0n1p127 259:3 0 1M 0 part └─nvme0n1p128 259:4 0 10M 0 part /boot/efi nvme1n1 259:1 0 10G 0 disk ├─nvme1n1p1 259:5 0 10G 0 part └─nvme1n1p128 259:6 0 1M 0 part
    注意

    在终端中运行此命令时,输出会有所不同。

  7. 在环境终端中完成以下步骤以挂载现有卷:

    1. 要创建一个临时目录以挂载卷的分区,请运行以下命令:

      MOUNT_POINT=$(mktemp -d)
    2. 根据 lsblk 命令的示例输出,指定以下要挂载设备的路径:

      MOUNT_DEVICE=/dev/nvme1n1p1
      注意

      在终端中运行此命令时,输出会有所不同。

    3. 要挂载现有卷,请运行以下命令:

      sudo mount $MOUNT_DEVICE $MOUNT_POINT
    4. 完成以下步骤以验证是否正确挂载了现有卷:

      1. 要确保卷包含在输出中,请运行以下命令:

        df -h
      2. 要验证卷内容,请运行以下命令:

        ls $MOUNT_POINT/home/ec2-user/environment/
  8. (可选)要将旧 .c9 目录备份到 .c9.backup,请在环境终端中运行以下命令:

    cp .c9 .c9.backup

    如果想稍后恢复配置文件,则可能需要这些备份文件。

  9. 要从现有卷中复制旧环境,请运行以下命令:

    cp -R $MOUNT_POINT/home/ec2-user/environment ~
    注意

    如果需要,您还可以使用上述命令复制环境目录之外的文件或目录。

    确保新环境按预期运行。

  10. 要卸载之前的设备,请运行以下两个命令之一:

    sudo umount $MOUNT_DEVICE
    sudo umount $MOUNT_POINT
  11. 操作下拉列表中选择分离卷,以分离您在步骤 3 中附加的卷。

  12. 现在,您可以删除旧环境及其卷。

    注意

    由于该卷不再附加到环境的 Amazon EC2 实例,因此您需要手动将其删除。可以通过在卷详细信息页面上选择删除来执行此操作。