Подтвердить что ты не робот

Aws CloudFormation AWS:: EC2:: Экземпляры BlockDeviceMappings и томов

Я немного запутался в двух свойствах AWS:: EC2:: Instance: BlockDeviceMappings и Volumes.

Я читал документацию несколько раз, но до сих пор не понимаю разницы.

Вот мой шаблон:

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

 "Description" : "kappoowTest",

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

 "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 и в чем разница между этими двумя методами?

4b9b3361

Ответ 1

С помощью BlockDeviceMappings вы можете монтировать эфемерное хранилище не только ebs. Объемы - это только объемы ebs и предоставляют лучшие варианты (например, выбор AZ или указание IOP, если вы хотите использовать PIOP). Если все, что вам нужно, это простые объемы ebs, тогда нет никакой разницы.