关闭 Ubuntu AWS EC2 实例的正确方法是什么?

关闭 Ubuntu AWS EC2 实例的正确方法是什么?

有时我需要关闭 Ubuntu AWS EC2 实例,这样如果我几天不使用它,我的公司就不会暂时发生变化。我不确定什么是正确或理想的方法。

需要明确的是,我无法访问此实例的 GUI,因此通常的转到右上角的 GUI 选项并选择“关闭”的方式不起作用。

我确实可以访问此 EC2 实例的 AWS 控制台页面。

我正在使用 Ubuntu 20.04 EC2 实例,并且确实安装了 EBS(弹性块存储)卷。

以下是我所知道的一些选项:

  1. 从航站楼出发,sudo shutdown -h now

  2. 从航站楼出发,sudo halt

  3. 从实例的 AWS 控制台页面中,选择Instance state->Stop instance

  4. 其他选择?

我不确定其中哪一个或其他东西是最好的,请提供意见。

答案1

你应该按照说明做第 3 步AWS 文档。也可以从控制台启动它。来自链接:

使用控制台停止和启动 Amazon EBS 支持的实例

当您停止实例时,所有实例存储卷上的数据都将被清除。在停止实例之前,请验证您已将所需的所有数据从实例存储卷复制到持久性存储,例如 Amazon EBS 或 Amazon S3。

在导航窗格中,选择实例并选择该实例。

选择实例状态、停止实例。如果此选项被禁用,则表示实例已停止或其根设备是实例存储卷。

当系统提示确认时,选择停止。实例可能需要几分钟才能停止。

(可选)实例停止后,您可以修改某些实例属性。有关更多信息,请参阅modify-stopped-instance。

要启动已停止的实例,请选择该实例,然后选择实例状态、启动实例。

实例可能需要几分钟才能进入运行状态

答案2

选项 2 根本无法实现您的目标。AWS 最近偷偷做了一些更改,使选项 1 不再起作用。

我鼓励选择 3 - 但请拓宽您的思路。它基本上是使用 AWS API。您可以从 GUI AWS 控制台执行此操作。您可以通过 CLI 执行此操作aws instance stop --instance-id。您还可以通过其他编程方式(例如 AWS SDK 或更多自行开发的方法和直接调用)执行此操作。

现在,您的虚拟机可能具有从实例配置文件(如果有)继承的某些权限来处理 AWS API。您可以做的是授予实例配置文件角色停止实例的权限(如果需要,可能带有一两个条件来限制)。然后,您可以从实例上的 shell 执行其中一个方便的命令 - 例如 AWS CLI。

相关内容