我尝试使用 AWS CloudFormation 堆栈创建一个 Amazon Elastic Compute Cloud (Amazon EC2) 实例,但我的堆栈创建失败。然后,我收到了“Server.InternalError: Internal error on launch”错误消息。如何解决此错误?
简短描述
如果您在 AWS CloudFormation 模板中指定了重复或无效的设备映射,就会收到此错误消息。不能让两个块储存设备映射到同一位置(如 /dev/sdb)。
**注意:**如果您使用的是基于 Nitro 的实例类型(例如 c5、m5 或 t3),则不会收到此错误消息,因为 /dev/sdb 和 /dev/xvdc 在操作系统中映射到两个不同的 NVMe 设备。
解决方法
在 AWS CloudFormation 模板的 BlockDeviceMappings 属性中,通过检查每个块储存设备的 DeviceName 值,确认您的块储存设备未映射到同一位置。
在以下 JSON 和 YAML 示例模板中,指定的块储存设备为 /dev/xvdb 和 /dev/xvdc。系统将为该实例自动预置根卷,并将块储存设备关联为辅助卷。
JSON:
"Ec2Instance" : {
"Type" : "AWS::EC2::Instance",
"Properties" : {
"...OtherProperties..."
"BlockDeviceMappings" : [
{
"DeviceName" : "/dev/xvdb",
"Ebs" : { "VolumeSize" : "100" }
},{
"DeviceName" : "/dev/xvdc",
"Ebs" : { "VolumeSize" : "100" }
}
]
}
}
YAML:
EC2Instance:
Type: AWS::EC2::Instance
Properties:
...OtherProperties...
BlockDeviceMappings:
-
DeviceName: /dev/xvdb
Ebs:
VolumeSize: 100
-
DeviceName: /dev/xvdc
Ebs:
VolumeSize: 100
相关信息
块储存设备映射
EC2 块储存设备映射示例
Linux 实例上的设备名称