2013-03-13 188 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卷,那麼沒有任何區別。