如何在 AWS 中更改 EC2 的实例类型和安全组

⚡ 智能摘要

修改 Amazon EC2 实例允许您在启动后通过 AWS 管理控制台更改其实例类型、安全组、标签、用户数据和网络设置,从而使服务器适应新的性能、安全性和扩展性要求,而无需重建服务器。

  • 🔧 实例类型: 首先停止实例,然后使用“更改实例类型”垂直扩展其计算和内存。
  • 🔐 安全组: 在运行中的实例上交换或添加安全组,即可立即应用新的防火墙规则。
  • 🏷️ 标签: 添加键值标签,以便帐户所有者可以 track 个实例及其在不同环境下的成本。
  • 🛡️ 终止保护: 在生产服务器上启用此功能,可防止意外删除实例。
  • 💾 AMI备份: 创建 Amazon 在进行重大更改之前,请使用机器映像作为可恢复的备份。
  • 🤖 人工智能辅助: Amazon Q Developer 和 GitHub Copilot 生成 CLI 和 Terraform 来修改实例,而 Compute Optimizer 则调整实例的大小。

修改 Amazon EC2实例参数

EC2 代表弹性计算云。它是 AWS 的 IaaS(基础设施即服务)领域提供的计算服务。

EC2 实例配置完成后,使用 AWS 管理控制台更新或修改许多实例配置参数会非常方便。

让我们逐一来看。

登录并访问 AWS 服务

步骤1) 在此步骤中,您将执行以下操作:

  • 登录您的 AWS 账户并转到 AWS服务 左上角的标签。

在这里,您将看到所有 AWS 服务按其领域进行分类,例如计算、存储、数据库等。要创建 EC2 实例,我们需要在下一步中选择“计算”→“EC2”。

登录并访问 AWS 服务

打开所有服务并单击计算服务下的 EC2。这将启动 EC2 的仪表板。

这是 EC2 仪表板。在这里,您将获得有关正在运行的 AWS EC2 资源的所有信息。

AWS EC2 控制面板概览

步骤2) 在 EC2 仪表板的右上角,选择您要在其中配置 EC2 服务器的 AWS 区域。

这里我们选择的是弗吉尼亚州北部。AWS 在全球各地提供多个区域。

选择 EC2 实例的 AWS 区域

步骤3) 选择所需的区域后,返回 EC2 仪表板。

检查修改参数

步骤1) 在 EC2 控制面板中,选择要修改其配置参数的实例,然后单击如下所示的“操作”按钮。

选择 EC2 实例,然后单击“操作”按钮

步骤2) 点击按钮后,下拉菜单将显示我们可以修改实例特征的所有区域。

EC2 实例操作下拉菜单

查看连接详细信息

下面的“连接”选项将向我们展示连接到 EC2 实例的方法。

步骤1) 点击选项“连接”。

连接到 EC2 实例选项

您可以选择使用独立 SSH 客户端或 Java 客户端。您将获得有关如何连接到实例的分步过程。

在本教程中,我们可以看到 Linux 实例。

适用于 Linux 的 EC2 实例连接方法

启动具有类似配置的多个实例

如果您有一个具有特定配置的 EC2 实例正在运行,并且您希望通过一键部署快速启动另一个实例,那么“启动更多类似实例”选项可以帮助我们实现这一目标。

步骤1) 点击“启动更多类似内容”

推出更多类似 EC2 选项

您将直接进入启动实例向导的审核实例详细信息页面。在这里我们可以再次验证所有详细信息。

步骤2) 在审核实例详情页面上,点击“启动”按钮。

Rev查看 EC2 实例详细信息并启动

步骤3) 在这个窗口中,

  • 选择现有的密钥对
  • 点击“启动实例”。

选择密钥对并启动 EC2 实例

实例启动进度如下。

EC2实例启动进度

您可以在下面看到新实例在创建之前处于待处理状态。

新的 EC2 实例处于待处理状态

您可以看到新实例也具有相同的标签。

新的 EC2 实例具有相同的标签

更改实例状态

您只需单击一下即可从管理控制台动态更改实例状态。

步骤1) 在此步骤中,单击“操作”下的“实例状态”。

  • Stop 停止 您可以停止正在运行的实例
  • 重新启动 您可以重启实例
  • 终止 您可以永久删除该实例。

更改 EC2 实例状态 停止 重启 终止

更改实例设置

您可以在这里更改许多实例设置,如安全组、终止保护等。

让我们逐一详细了解一下。

创建标签

添加/编辑标签 – 您可以添加或编辑分配给实例的标签。标签功能使 AWS 账户的企业所有者更容易管理实例。 track 个实例,尤其是在存在多个环境的情况下。

AWS 管理员应根据隔离情况为每个实例分配标签,例如:将生产环境中的所有实例标记为“Prod”,或将属于某个部门的实例标记为部门名称缩写等。标签是一种非常有效的方法。 track 也包括实例的成本。

让我们看看如何更改标签。

步骤1) 在此步骤中,

  • 点击实例设置
  • 点击“添加/编辑标签”。

在 EC2 实例上添加或编辑标签

步骤2) 标签只是一个键值对。

  • 因此,我们分配了一个新标签“Department”,并将其值添加为“Cloud”。
  • 点击保存

将部门标签的值设置为“云”。

步骤3) 返回 EC2 仪表板并

  • 再次选择您的实例
  • 选择“标签”标签

请注意,标签下出现了新的标签“部门”,其值为云。

标签下显示新部门标签

附加到 Auto Scaling 组

EC2 实例可以动态附加到自动扩展组。

步骤1) 在此步骤中,我们将执行以下操作:

  • 点击“实例设置”
  • 单击“附加到自动缩放组”。

EC2 实例附加到自动扩展组

步骤2) 在此步骤中,

  • 将实例附加到现有的 AS 组。您也可以在此步骤中创建新的 AS 组。
  • 从现有组列表中选择一个 AS 组。
  • 点击‘附加’。

此操作会将您的实例附加到您环境中的自动扩展组。

选择自动伸缩组并附加实例

如何在 AWS 中更改实例类型

如果您需要更高配置的实例以满足应用程序需求,可以更改实例类型。这样做可以垂直扩展实例,并为您提供更大的计算/内存容量。

让我们看看该怎么做。

如果服务器正在运行,则无法更改实例类型。必须先停止服务器才能进行更改。

步骤1) 转到‘实例状态’。

点击“停止”。这将停止该实例。

在更改实例类型之前,请先停止 EC2 实例。

请注意,实例状态现在为“停止”。ping在 EC2 控制面板上启用“模式”。您现在可以更改实例类型了。

EC2实例已停止ping 模式

步骤2) 前往“实例设置”。点击“更改实例类型”。

在实例设置中单击“更改实例类型”。

步骤3) 检查弹出窗口。此时将出现“更改实例类型”弹出窗口。

更改实例类型弹出窗口

步骤4) 选择实例类型。您可以从一系列可用的 EC2 实例类型中进行选择。在本教程中,为了演示目的,我们将其更改为 t2.nano。

选择新的 EC2 实例类型

步骤5) 选择 t2.nano。选择 t2.nano,然后单击“应用”。

选择 t2.nano 并应用

步骤6) 打开 EC2 控制面板。您会在 EC2 控制面板上看到,您的实例类型已自动更改为所述类型。

控制面板上的 EC2 实例类型已更改

您现在可以启动实例并继续执行相关操作。其他配置参数不会发生任何变化,服务器上现有的安装也将保持不变。

启用终止保护

实例,尤其是生产服务器,应该始终启用终止保护。这将确保您的 EC2 实例不会意外终止。

如果您不小心点击了实例终止选项,AWS 将增加额外的安全保障。

让我们来看看如何启用终止保护。

步骤1) 在此步骤中,

  • 转到“实例设置”。
  • 点击“更改终止保护”。

更改终止保护设置

步骤2) 请注意,我们实例上的当前设置已禁用。点击“是,启用”。

在 EC2 实例上启用终止保护

这已为我们的实例启用终止保护。我们将检查点击“终止”按钮后,我们的实例是否会被删除。

步骤3) 在此步骤中,

  • 选择选项“实例状态”,然后
  • 点击“终止”。

尝试终止受保护的 EC2 实例

AWS 会立即通知您 EC2 实例已“启用终止保护”,您将无法删除它。下方的“终止”按钮已禁用。

终止按钮已被终止保护禁用

更改用户数据

当您启动新的 EC2 实例时,您可以选择将用户数据传递给实例以在启动时自动运行任务,例如常见配置任务、初始化脚本等。

您可以以 shell 脚本或 cloud-init 指令的形式传递用户数据。这可以是纯文本、文件或用于 API 调用的 base64 编码文本。

在这里我们将看到如何编辑这些脚本。

您必须先停止实例,如果实例正在运行,您将无法编辑实例用户数据。在已停止的实例上,执行以下步骤。

步骤1) 在此步骤中,请执行以下操作:

  • 转到“实例设置”。
  • 点击“查看/更改用户数据”。

查看或更改 EC2 实例用户数据

为了演示,这里我们有一个 shell 脚本,用于在服务器上安装 LAMP 堆栈。

步骤2) 在此步骤中,

  • 查看/修改您的用户数据字段。
  • 点击“保存”选项卡。

修改用户数据字段并保存

更改关机行为

如果您不小心通过操作系统控制台关闭了实例,您肯定不希望 AWS EC2 实际上终止该实例。

为此,我们可以将关机行为设置为“停止”而不是“终止”。如果应用程序有此要求,我们也可以反之亦然。

让我们来看看如何实现这一点。

步骤1) 在此步骤中,

  • 转到“实例设置”。
  • 点击“更改关机行为”。

更改 EC2 实例关闭行为

步骤2) 在此步骤中,单击“停止”,然后单击“应用”。设置将相应地应用于实例。

将关机行为设置为停止

步骤3) 现在,当通过 Putty 在实例控制台中启动“停止”关闭时,它不会被终止。它只会正常关闭。

实例在操作系统关机时正常停止。

查看系统日志

您可以查看任何 EC2 实例的系统日志,以进行故障排除等。

步骤1) 在此步骤中,

  • 转到“实例设置”。
  • 点击“获取系统日志”。

获取 EC2 实例的系统日志

您可以看到一个单独的窗口,其中显示了实例日志的详细信息。在这里,我们可以看到实例重新启动时的日志快照。

EC2实例系统日志详情

创建实例 AMI

您可以创建 EC2 实例的 AMI 进行备份。

步骤1) 在此步骤中,

  • 转到‘图像’。
  • 点击“创建图像”。

创建 EC2 实例的镜像 (AMI)

将打开一个图像创建向导。

EC2 镜像创建向导

步骤2) 在此步骤中,

  • 添加图片名称
  • 为 AMI 提供一些友好的描述
  • 检查卷然后点击“创建图像”按钮。

AWS 将收到您的创建图像请求并立即发送通知。

创建图像请求通知

您可以在 EC2 仪表板上检查请求的状态为“待定”,如下所示。

AMI 创建状态在控制面板上显示为“待处理”。

过了一会儿,状态变为“可用”,您的 AMI 就可以作为备份了。

AMI 可用作备份

一旦备份过期,您还可以从仪表板上取消注册它。

更改实例网络设置

启动后,还可以调整安全组、网络接口、弹性 IP 地址和私有 IP 地址等网络参数。以下各节将逐一介绍每项网络更改。

如何更改安全组

您可以随时更改实例的 SG(安全组)。如果您有另一个具有不同防火墙规则的安全组,则可以使用控制台轻松执行此操作。

让我们看看如何。

步骤1) 在此步骤中,

  • 转到‘网络’。
  • 点击“更改安全组”。

更改 EC2 实例的安全组

步骤2) 在更改安全组向导中,它将显示实例上已经存在的 SG 以及该区域中所有安全组的列表。

更改安全组向导

步骤3) 在此步骤中,

  • 勾选您想要的 SG
  • 点击“分配安全组”按钮。

为实例分配新的安全组

步骤4) 在 EC2 仪表板上,您可以看到实例的 SG 已更改。实例现在将根据新的 SG 设置发送/接收流量。

EC2实例的安全组已更改

您还可以添加多个安全组。

添加网络接口

网络接口就像是实例的另一块 NIC 卡。除了现有的主网络接口外,它还会有另一组 IP。

步骤1) 在此步骤中,

  • 转到‘网络’。
  • 点击“连接网络接口”。

将网络接口连接到 EC2 实例

如果您尚未创建网络接口,将会收到错误提示。

让我们来看看如何快速创建网络接口。

当不存在网络接口时出现错误提示

步骤2) 在此步骤中,

  • 转到 EC2 仪表板,然后单击左侧窗格上的“网络接口”。
  • 点击“创建网络接口”按钮。

创建一个新的网络接口

步骤3) 在此步骤中,

  • 为网络接口添加描述
  • 选择要创建网络接口的子网。保留自动分配私有 IP 选项的默认设置
  • 安全组应用于实例的网络接口,因此您将在此处获得相同的选项。选择您想要的 SG
  • 输入完详细信息后,点击“创建”。

配置并创建网络接口

现在您可以返回 EC2 仪表板并检查您的网络接口是否已创建。

正在创建网络接口

现在回到步骤 2) 并继续选择我们刚刚创建的可用接口并将其附加到实例。

现在您可以看到我们刚刚创建的网络接口已自动列在下面。

列出新创建的网络接口

您的网络接口将立即连接到该实例。

我们可以返回 EC2 仪表板并检查我们的实例。请注意,该实例有 2 个私有 IP,属于 2 个网络接口。

实例在两个接口上具有两个私有 IP 地址

解除 EIP 关联

弹性 IP 是静态公共 IP。

您可以直接从实例仪表板取消 EIP 的关联。

步骤1) 在此步骤中,

  • 点击“网络”。
  • 点击“取消关联弹性 IP 地址”。

将弹性 IP 地址与实例关联

步骤2) 一旦我们验证了实例 ID 和 EIP,就点击取消关联按钮。

确认弹性 IP 地址已分离

检查下面实例仪表板现在是否显示 EIP 字段为空白。

解离后 EIP 场空白

更改来源/目的地检查

“源/目标检查”属性控制实例是否启用源/目标检查。禁用此属性后,实例可以处理并非专门发往该实例的网络流量。例如,运行网络地址转换、路由或防火墙等服务的实例应将此值设置为“禁用”。

步骤1) 在此步骤中,

  • 点击“网络”。
  • 点击“更改源/目标检查”

对实例进行源/目标更改检查

步骤2) 点击“禁用”。如果已经禁用,您可以在此步骤中启用它。

禁用源/目标检查

管理私有 IP 地址

如果您的应用程序架构设计允许,您可以为单个实例分配多个私有 IP 地址。当然,您可以分配的最大 IP 地址数量取决于 EC2 实例类型。

步骤1) 在此步骤中,

  • 点击“网络”。
  • 点击“管理私有 IP 地址”。

管理实例的私有 IP 地址

您将被重定向到一个新窗口,为您的实例分配辅助 IP 地址。

步骤2) 在此步骤中,

  • 这里我们将字段留空。这将使 AWS 能够自动将任何可用的私有 IP 分配给我们的实例。
  • 点击“更新”。

自动分配私有 IP 地址

请注意,这里已自动分配 IP。

自动分配私有 IP 地址

另外,返回 EC2 仪表板并注意分配的 2 个私有 IP。这是单个网络接口上的 2 个 IP。

单个网络接口上的两个私有 IP 地址

启用/禁用 ClassicLink 到 VPC

如果您的实例是在 EC2 – Classic 中配置的,这是 AWS 中的一种部署模式,其中资源是从 VPC 中配置的;那么您可以将实例链接到 VPC 环境,如下所示。

由于我们的实例已在 VPC 中,因此以下选项对我们来说已被禁用。

启用或禁用与 VPC 的 ClassicLink

启用详细的 CloudWatch 监控

AWS 默认会在其所有资源上启用基本的 CloudWatch 监控。但是,如果我们的实例是生产实例,我们可能希望对其启用详细监控,当然这需要额外付费。

步骤1) 在此步骤中,

  • 点击“CloudWatch 监控”
  • 点击“启用详细监控”

启用详细的 CloudWatch 监控

您还可以添加/编辑警报,以提醒您 CloudWatch 监控指标中的属性。

添加或编辑 CloudWatch 警报

还检查: - 亚马逊 (Amazon Web 服务)教程:初学者基础知识

常见问题

不,停。ping 使用 EBS 支持的实例调整大小可以确保您的数据、卷和安装保持完整。停止并重新启动实例会分配一个新的公网 IP 地址,但附加的弹性 IP 地址保持不变。

不。安全组更改会立即生效,无需重启或停机。新增和修改的规则会自动应用于与该安全组关联的每个实例,因此流量会立即遵循更新后的防火墙规则。

默认情况下,每个网络接口最多可以附加五个安全组,每个安全组可以包含多条规则。这是一个软性限制,AWS 可以根据请求通过服务配额来提高此限制。

实例停止后,计算费用将停止,但您仍需为附加的 EBS 卷、快照以及任何未使用的已分配弹性 IP 地址付费。终止实例将完全消除这些计算成本。

大多数更改都可以在控制台中完成,但 CLI 和 API 提供了更多功能并支持批量自动化。例如,`modify-instance-attribute` 命令可以通过单个脚本更新多个服务器上实例的安全组或类型。

不,实例不能直接移动。创建一个 Amazon 将其机器映像复制到目标区域(如果需要),然后从所需的可用区中的映像启动新实例。

是的。 GitHub 副驾驶 和 Amazon Q Developer 生成用于修改实例类型、标签和安全组的 AWS CLI 命令、Terraform 和 CloudFormation 代码。您可以审核生成的代码,然后安全地应用这些代码来更改实例。

AWS Compute Optimizer 使用机器学习技术分析长达 93 天的 CloudWatch 指标,并推荐更便宜或速度更快的实例类型。它根据置信度评分对选项进行排名,并提供帮助。ping 您根据实际使用情况更改实例类型。

总结一下这篇文章: