2013-03-13 178 views
12

我对两个AWS :: EC2 :: Instance属性感到困惑: BlockDeviceMappingsVolumesaws CloudFormation AWS :: EC2 ::实例BlockDeviceMappings和卷

我已经多次阅读文档,但仍然没有真正了解其差异。

这里是我的模板:

{ 
"AWSTemplateFormatVersion" : "2010-09-09", 

"Description" : "kappoowTest", 

"Mappings" : { 
    "AmazonLinuxAMI" : { 
     "eu-west-1" : 
      { "AMI" : "ami-d8f9f1ac" }, 
     "us-west-1" : 
      { "AMI" : "ami-bf3" } 
    } 
}, 

"Resources" : { 
    "SomeInstance" :{ 
     "Type" : "AWS::EC2::Instance", 
     "Properties" : { 
      "AvailabilityZone" : "eu-west-1a", 
      "BlockDeviceMappings" : [ 
       { 
        "DeviceName" : "/dev/sdc", 
        "Ebs" : { "VolumeSize" : "50" } 
       }, 
       { 
        "DeviceName" : "/dev/sdd", 
        "Ebs" : { "VolumeSize" : "100" } 
       } 
      ], 
      "DisableApiTermination" : "true", 
      "EbsOptimized" : "true", 
      "ImageId" : { "Fn::FindInMap" : [ "AmazonLinuxAMI", { "Ref" : "AWS::Region" }, "AMI" ]}, 
      "InstanceType" : "m1.large", 
      "KeyName" : "mongo_test", 
      "Monitoring" : "true", 
      "SecurityGroups" : [ "default" ], 
      "Volumes" : [ 
       { "VolumeId" : { "Ref" : "NewVolume" }, "Device" : "/dev/sdk" } 
      ] 
     } 
    }, 

    "NewVolume" : { 
     "Type" : "AWS::EC2::Volume", 
     "Properties" : { 
      "Size" : "100", 
      "AvailabilityZone" : "eu-west-1a" 
     } 
    } 
}} 

在这里,我在3卷。 2

"BlockDeviceMappings" : [ 
       { 
        "DeviceName" : "/dev/sdc", 
        "Ebs" : { "VolumeSize" : "50" } 
       }, 
       { 
        "DeviceName" : "/dev/sdd", 
        "Ebs" : { "VolumeSize" : "100" } 
       } 
      ] 

和另一个:

"Volumes" : [ 
    { "VolumeId" : 
      { "Ref" : "NewVolume" }, "Device" : "/dev/sdk" } 
] 

CloudFormation运行得很好,但我看不出区别。

有人能告诉我哪种方法更好地将EBS卷添加到EC2实例,以及这两种方法之间有什么区别?

回答

10

使用BlockDeviceMappings,您可以挂载临时存储不仅ebs。 卷只是ebs卷,并提供更好的选项(如选择AZ,或者如果要使用PIOP则指定IOP)。 如果你想要的只是简单的ebs卷,那么没有任何区别。