AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
为什么我无法启动我的 EC2 实例?
我无法启动新的 Amazon Elastic Compute Cloud (Amazon EC2) 实例或者启动我现有的实例。
解决方案
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
如果您在尝试启动实例时未收到错误代码,请在 AWS CloudTrail 事件历史记录中查看 StartInstances 事件。或者,运行以下 describe-instances AWS CLI 命令:
aws ec2 describe-instances --instance-id MYINSTANCE --output json
**注意:**请将 MYINSTANCE 替换为您无法启动的实例的 ID。
在输出中,查看 StateReason 消息。在以下示例响应中,StateReason 为 Client.InternalError:
"StateReason": { "Message": "Client.InternalError: Client error on launch", "Code": "Client.InternalError" },
根据您收到的错误,执行以下故障排除操作。
“InsufficientInstanceCapacity”
当按需容量不足以启动新实例或重启已停止的实例时,将会出现以下错误:
“An error occurred (InsufficientInstanceCapacity) when calling the StartInstances operation (reached max retries: 4): Insufficient capacity.)”
要解决此问题,请参阅如何对 EC2 实例启动时出现的 InsufficientInstanceCapacity 错误进行故障排除?
“InstanceLimitExceeded”
当您在某个 AWS 区域启动的实例数量超过允许的上限时,将会出现以下错误:
“InstanceLimitExceeded: Your quota allows for 0 more running instance(s).”
“UnauthorizedOperation”
当启动实例的用户没有所需的权限时,将会出现“UnauthorizedOperation”错误。要解决此错误,请参阅如何解码和分析 EC2 实例启动失败的“UnauthorizedOperation”授权错误?
“The requested configuration is currently not supported”
当您请求的可用区不支持您指定的实例类型时,将会出现“configuration is currently not supported”错误消息。要检查实例类型在特定可用区中的可用性,请运行以下 describe-instance-type-offerings 命令:
aws ec2 describe-instance-type-offerings --location-type availability-zone --filters Name=instance-type,Values=c5.2xlarge --region us-east-1
**注意:**请将 c5.2xlarge 替换为您的实例类型,将 us-east-1 替换为您的可用区所在的区域。
然后,在受支持的可用区中启动实例(如果需要)。
如果您用于启动实例的亚马逊机器映像 (AMI) 不支持您选择的实例类型,也会出现此错误。在选择实例类型或系列之前,请查看 AWS Marketplace 上的 AMI 描述。当您使用 AWS CLI 启动 AWS Marketplace AMI 时,通常会出现此问题。如果您使用 Amazon EC2 控制台来启动实例,则无法访问不支持的实例。
“InternalError”
“InternalError”错误通常由以下原因引起:
- 您未将 Amazon Elastic Block Store (Amazon EBS) 卷正确附加到实例。
- 附加到实例的 EBS 卷处于“错误”状态。
- 您已将加密的 EBS 卷附加到实例,但无权访问 AWS Key Management Service (AWS KMS) 解密密钥。
要解决此错误,请参阅如何对尝试启动 Amazon EC2 实例时停止或终止并出现“InternalError”或“Client.UserInitiatedShutdown”错误的 Amazon EC2 实例进行故障排除?
“Disk full”
如果实例上的空间用完,且审计服务在启动计算机后将其停止,则您会收到“disk full”错误消息。
**重要事项:**在停止并启动实例之前,请执行以下操作。
- 创建 EBS 卷的快照。
**注意:**如果您的实例由实例存储支持,或者具有包含数据的实例存储卷,则 Amazon EC2 会在实例停止时删除这些数据。 - 暂时将该实例从其 Amazon EC2 Auto Scaling 组中移除。
**注意:**如果您停止 Amazon EC2 Auto Scaling 组中的实例,则可以根据缩容保护设置终止该实例。使用 Amazon EMR、AWS CloudFormation 或 AWS Elastic Beanstalk 启动的实例可能位于 Auto Scaling 组中。 - 将实例关闭行为设置为 Stop(停止),以确保实例在您停止时不会终止。
**注意:**当停止或启动某个实例时,该实例的公共 IP 地址将发生变化。最佳做法是使用弹性 IP 地址而不是公共 IP 地址将外部流量路由到您的实例。
要解决“disk full”错误,请完成以下步骤:
-
打开 Amazon EC2 控制台。
-
从导航窗格中,选择 Instances(实例),然后选择您的实例。
-
停止实例。
-
从已停止的实例中分离 /dev/xvda EBS 根卷。
-
在原始实例所在的可用区中启动新的 EC2 救援实例。
-
将根卷作为辅助设备附加到救援实例。
**注意:**在附加辅助卷时,您可以使用不同的设备名称。 -
要为新卷创建挂载点目录,请运行以下命令:
sudo mkdir /mnt/rescue**注意:**请将 /mnt/rescue 替换为您的挂载点目录。对于在 Linux 上运行的实例,只能使用 sudo 命令。
-
要将卷挂载到新目录,请运行以下命令:
sudo mount /dev/xvdf /mnt/rescue**注意:**请将 /dev/xvdf 替换为您的设备名称,将 /mnt/rescue 替换为您的挂载点目录。对于在 Linux 上运行的实例,只能使用 sudo 命令。如果您不知道设备名称,请运行以下命令来查看所有可用的磁盘设备及其挂载点:
lsblk -
扩展分区。
-
要卸载卷,请运行以下命令:
sudo umount /mnt/rescue
**注意:**请将 /mnt/rescue 替换为您的挂载点目录。对于在 Linux 上运行的实例,只能使用 sudo 命令。 将卷与救援实例分离。 将卷附加到原始实例,并使用 /dev/xvda 作为根设备名称。 启动实例以确认其是否成功启动。 检查 /etc/audit/auditd.conf 审计配置文件中是否存在 HALT,以确保审计服务在空间不足时不会关闭计算机。对于 Amazon Linux 1 (AL1)、Amazon Linux 2 (AL2) 和 Amazon Linux 2023 (AL2023),请确保审计配置文件包含以下选项:
max_log_file_action = ROTATEadmin_space_left_action = SUSPEND disk_full_action = SUSPEND disk_error_action = SUSPEND
“InvalidParameterValue”
当请求中的参数无效、不受支持或无法使用时,将会出现“InvalidParameterValue”错误消息。错误消息中包含说明。例如,如果根卷未附加到 /dev/sda1 或 /dev/xvda 中的实例,则该实例不会启动。发生此情况时,您会在 CloudTrail 事件历史记录中收到一条类似于以下示例的条目:
“An error occurred (InvalidParameterValue) when calling the StartInstances operation: Invalid value 'i-abcdefghxyz' for instanceId.Instance does not have a volume attached at root (/dev/sda1)”
要解决此问题,请更改错误消息中列出的参数。例如,要解决上述错误,请将根卷附加到 /dev/sda1 中的实例,然后启动该实例。有关详细信息,请参阅 Error codes for the Amazon EC2 API(Amazon EC2 API 的错误代码)。
相关信息
相关内容
AWS 官方已更新 3 年前
