排查实例的停止问题
如果您已停止由 Amazon EBS 支持的实例,并且它卡在 stopping
状态,这说明底层主机可能存在问题。
当实例处于 stopping
状态或处于除 running
外的任何其他状态时,不会收取任何实例使用费用。只有当实例处于 running
状态时,您使用实例时才需要付费。
强制停止实例
通过控制台或 AWS CLI 强制停止实例。
当实例处于 stopping
状态时,您只能强制实例停止使用控制台。当实例处于除 shutting-down
和 terminated
之外的任何状态时,您只能强制实例停止使用 AWS CLI。
- New console
-
使用控制台强制停止实例
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/。
-
在导航窗格中,选择 Instances,然后选择卡住实例。
-
选择 Instance state(实例状态)、 Force stop(强制停止实例)、Stop(停止)。
请注意,只有当您的实例处于 stopping
状态时,Force stop instance(强制停止实例)才可用。如果您的实例处于另一状态(除 shutting-down
和 terminated
之外的状态),您可以使用 AWS CLI 强制停止您的实例。
- Old console
-
- AWS CLI
-
使用 AWS CLI 强制停止实例
使用 stop-instances 命令和 --force
选项,如下所示:
aws ec2 stop-instances --instance-ids i-0123ab456c789d01e
--force
如果在 10 分钟后,实例未停止,请在 AWS re:Post 上寻求帮助。为了帮助加快解决问题,请提供实例 ID 并描述已采取的步骤。此外,如果您有支持计划,则可在支持中心创建技术支持案例。
创建替代实例
要在等待 AWS re:Post 或支持中心的帮助时尝试解决此问题,请创建替代实例。创建卡住实例的 AMI,并使用新的 AMI 启动一个新实例。
如果仅注册系统状态检查,则建议创建替换实例,因为实例状态检查将导致 AMI 复制损坏操作系统的精确副本。确认状态消息后,创建 AMI 并使用新 AMI 启动新实例。
- New console
-
使用控制台创建替代实例
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/。
-
在导航窗格中,选择 Instances,然后选择卡住实例。
-
依次选择 Actions (操作)、Image and templates (映像和模板) 和 Create Image (创建映像)。
-
在 Create image (创建映像) 页面上,执行以下操作:
-
输入 AMI 的名称和说明。
-
选择 No reboot。
-
选择创建映像。
有关更多信息,请参阅 从实例创建 Linux AMI。
-
从 AMI 启动新实例,验证新实例是否正常运行。
-
选择卡住的实例,然后依次选择 Actions(操作)、Instance State(实例状态)、Terminate(终止)。如果该实例也因卡住而终止,则 Amazon EC2 会自动强制其在几个小时内终止。
- Old console
-
使用控制台创建替代实例
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/。
-
在导航窗格中,选择 Instances,然后选择卡住实例。
-
依次选择 Actions、Image 和 Create Image。
-
在 Create Image 对话框中,填写以下字段,然后选择 Create Image:
-
为 AMI 指定名称和描述。
-
选择 No reboot。
有关更多信息,请参阅 从实例创建 Linux AMI。
-
从 AMI 启动新实例,验证新实例是否正常运行。
-
选择卡住的实例,然后依次选择 Actions、Instance State、Terminate。如果该实例也因卡住而终止,则 Amazon EC2 会自动强制其在几个小时内终止。
- AWS CLI
-
使用 CLI 创建替代实例
-
使用 create-image (AWS CLI) 命令和 --no-reboot
选项从卡住实例创建 AMI,如下所示:
aws ec2 create-image --instance-id i-0123ab456c789d01e
--name "AMI"
--description "AMI for replacement instance"
--no-reboot
-
使用 run-instances (AWS CLI) 命令从 AMI 启动新实例,如下所示:
aws ec2 run-instances --image-id ami-1a2b3c4d
--count 1 --instance-type c3.large
--key-name MyKeyPair
--security-groups MySecurityGroup
-
验证新实例是否正常运行。
-
使用 terminate-instances (AWS CLI) 命令终止卡住实例,如下所示:
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0
如果无法按上一步骤所述从该实例创建 AMI,则可以设置替代实例,如下所示:
(替代) 使用控制台创建替代实例
-
选择实例并选择 Description、Block devices。选择每个卷并记下其卷 ID。请务必注意哪个卷是根卷。
-
在导航窗格中,选择 Volumes。选择该实例的各个卷,然后依次选择 Actions、Create Snapshot。
-
在导航窗格中,选择快照。选择您刚刚创建的快照,然后依次选择 Actions、Create Volume。
-
使用与粘滞的实例相同的操作系统启动实例。注意其根卷的卷 ID 和设备名称。
-
在导航窗格中,选择Instances(实例),选择刚才启动的实例,然后依次选择 Instance state(实例状态)、Stop Instance(停止实例)。
-
在导航窗格中,选择 Volumes,选择已停止实例的根卷,然后依次选择 Actions、Detach Volume。
-
选择您从卡住的实例创建的根卷,依次选择 Actions、Attach Volume,然后将其附加到新实例以作为其根卷(使用记下的设备名称)。将任何其他非根卷附加到该实例。
-
在导航窗格中,选择 Instances,然后选择替代实例。依次选择实例状态、启动实例。验证该实例是否正常运行。
-
选择卡住的实例,然后依次选择实例状态、终止实例。如果该实例也因卡住而终止,则 Amazon EC2 会自动强制其在几个小时内终止。