我正在尝试使用 CloudFormation 启动使用临时/实例存储而不是 EBS 的 EC2 实例。
我已经使用 Opsworks 管理了这个问题 - 因此在 EC2 管理窗口中,“根设备”不是 ebs。我还没有弄清楚如何使用 CloudFormation 模板来做到这一点。
我感觉它与 BlockDeviceMappings 有关,但还没有弄清楚。我在这里找到了最接近我想要做的讨论:https://forums.aws.amazon.com/message.jspa?messageID=243921
有人可以提供 CloudFormation 模板片段来启动基于临时存储的实例吗?
文档中其他看似有用的部分:
- http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html
- http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html
- http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html
- http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-ec2.html
答案1
我不确定您要启动什么操作系统,但关键是您必须使用正确的 AMI。例如,查看 Canonical 的 Ubuntu AMI 列表: http://cloud-images.ubuntu.com/locator/ec2/
如果你搜索精确 us-east-1您会看到有 5 种不同的 AMI:
us-east-1 precise 12.04 LTS amd64 hvm 20130624 ami-25d9a94c hvm
us-east-1 precise 12.04 LTS amd64 ebs 20130624 ami-23d9a94a aki-88aa75e1
us-east-1 precise 12.04 LTS i386 ebs 20130624 ami-21d9a948 aki-b6aa75df
us-east-1 precise 12.04 LTS amd64 instance-store 20130624 ami-d9d6a6b0 aki-88aa75e1
us-east-1 precise 12.04 LTS i386 instance-store 20130624 ami-bfd3a3d6 aki-b6aa75df
第一个是集群计算实例仅有的。
第二和第三个用于 EBS 支持的实例,64 位或 32 位。
最后,第四和第五个是用于临时/实例存储支持的实例,64 位或 32 位。
一旦您选择了由实例存储支持的 AMI,您就可以在属性中使用此代码片段分配其余的临时磁盘:
"BlockDeviceMappings": [
{ "DeviceName": "/dev/sdb", "VirtualName": "ephemeral0" },
{ "DeviceName": "/dev/sdc", "VirtualName": "ephemeral1" },
{ "DeviceName": "/dev/sdd", "VirtualName": "ephemeral2" },
{ "DeviceName": "/dev/sde", "VirtualName": "ephemeral3" }
],
您可能需要查看 AWS块设备映射概念页面也是如此。