AWS CloudFormation のスタックを使用して Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを作成しようとしましたが、スタックの作成に失敗しました。その後「Server.InternalError: Internal error on launch」というエラーメッセージが表示されました。このエラーの解決方法を教えてください。
簡単な説明
AWS CloudFormation テンプレートで重複または無効なデバイスマッピングが指定されている場合、このエラーが発生します。2 つのブロックデバイスを同じ場所にマッピングすることはできません (たとえば /dev/sdb)。
注: Nitro ベースのインスタンスタイプ (たとえば、c5、m5、または t3) を使用している場合は、/dev/sdb と /dev/xvdc がオペレーションシステムで 2 つの異なる 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 インスタンスでのデバイス名