0

Amazon의 Cloud Formation 도구를 사용하여 우분투 16.04 이미지로 EC2 인스턴스를 간단히 만들고 싶습니다.구름 형성을 사용하여 다른 지역에 대한 우분투 16.04 EC2 인스턴스를 만드시겠습니까?

이미지 ID가 기기의 지역 및 아키텍처 유형에 따라 크게 달라지는 것을 제외하고는 충분히 간단해야합니다. 예를 들어

, 이것은 아마존 운영 체제를 실행하는 EC2 인스턴스를 만들려면 자신의 램프 예에서 제공되는 예제 코드의 일부입니다 :

{ 
    "AWSTemplateFormatVersion": "2010-09-09", 
    "Parameters": { 
     "InstanceType": { 
      "Description": "WebServer EC2 instance type", 
      "Type": "String", 
      "Default": "t2.small", 
      "AllowedValues": [ 
       "t1.micro", 
       "t2.nano", 
       "t2.micro", 
       "t2.small", 
       "t2.medium", 
       "t2.large", 
       "m1.small", 
       "m1.medium", 
       "m1.large", 
       "m1.xlarge", 
       "m2.xlarge", 
       "m2.2xlarge", 
       "m2.4xlarge", 
       "m3.medium", 
       "m3.large", 
       "m3.xlarge", 
       "m3.2xlarge", 
       "m4.large", 
       "m4.xlarge", 
       "m4.2xlarge", 
       "m4.4xlarge", 
       "m4.10xlarge", 
       "c1.medium", 
       "c1.xlarge", 
       "c3.large", 
       "c3.xlarge", 
       "c3.2xlarge", 
       "c3.4xlarge", 
       "c3.8xlarge", 
       "c4.large", 
       "c4.xlarge", 
       "c4.2xlarge", 
       "c4.4xlarge", 
       "c4.8xlarge", 
       "g2.2xlarge", 
       "g2.8xlarge", 
       "r3.large", 
       "r3.xlarge", 
       "r3.2xlarge", 
       "r3.4xlarge", 
       "r3.8xlarge", 
       "i2.xlarge", 
       "i2.2xlarge", 
       "i2.4xlarge", 
       "i2.8xlarge", 
       "d2.xlarge", 
       "d2.2xlarge", 
       "d2.4xlarge", 
       "d2.8xlarge", 
       "hi1.4xlarge", 
       "hs1.8xlarge", 
       "cr1.8xlarge", 
       "cc2.8xlarge", 
       "cg1.4xlarge" 
      ], 
      "ConstraintDescription": "must be a valid EC2 instance type." 
     } 
    }, 
    "Mappings": { 
     "AWSInstanceType2Arch": { 
      "t1.micro": { 
       "Arch": "PV64" 
      }, 
      "t2.nano": { 
       "Arch": "HVM64" 
      }, 
      "t2.micro": { 
       "Arch": "HVM64" 
      }, 
      "t2.small": { 
       "Arch": "HVM64" 
      }, 
      "t2.medium": { 
       "Arch": "HVM64" 
      }, 
      "t2.large": { 
       "Arch": "HVM64" 
      }, 
      "m1.small": { 
       "Arch": "PV64" 
      }, 
      "m1.medium": { 
       "Arch": "PV64" 
      }, 
      "m1.large": { 
       "Arch": "PV64" 
      }, 
      "m1.xlarge": { 
       "Arch": "PV64" 
      }, 
      "m2.xlarge": { 
       "Arch": "PV64" 
      }, 
      "m2.2xlarge": { 
       "Arch": "PV64" 
      }, 
      "m2.4xlarge": { 
       "Arch": "PV64" 
      }, 
      "m3.medium": { 
       "Arch": "HVM64" 
      }, 
      "m3.large": { 
       "Arch": "HVM64" 
      }, 
      "m3.xlarge": { 
       "Arch": "HVM64" 
      }, 
      "m3.2xlarge": { 
       "Arch": "HVM64" 
      }, 
      "m4.large": { 
       "Arch": "HVM64" 
      }, 
      "m4.xlarge": { 
       "Arch": "HVM64" 
      }, 
      "m4.2xlarge": { 
       "Arch": "HVM64" 
      }, 
      "m4.4xlarge": { 
       "Arch": "HVM64" 
      }, 
      "m4.10xlarge": { 
       "Arch": "HVM64" 
      }, 
      "c1.medium": { 
       "Arch": "PV64" 
      }, 
      "c1.xlarge": { 
       "Arch": "PV64" 
      }, 
      "c3.large": { 
       "Arch": "HVM64" 
      }, 
      "c3.xlarge": { 
       "Arch": "HVM64" 
      }, 
      "c3.2xlarge": { 
       "Arch": "HVM64" 
      }, 
      "c3.4xlarge": { 
       "Arch": "HVM64" 
      }, 
      "c3.8xlarge": { 
       "Arch": "HVM64" 
      }, 
      "c4.large": { 
       "Arch": "HVM64" 
      }, 
      "c4.xlarge": { 
       "Arch": "HVM64" 
      }, 
      "c4.2xlarge": { 
       "Arch": "HVM64" 
      }, 
      "c4.4xlarge": { 
       "Arch": "HVM64" 
      }, 
      "c4.8xlarge": { 
       "Arch": "HVM64" 
      }, 
      "g2.2xlarge": { 
       "Arch": "HVMG2" 
      }, 
      "g2.8xlarge": { 
       "Arch": "HVMG2" 
      }, 
      "r3.large": { 
       "Arch": "HVM64" 
      }, 
      "r3.xlarge": { 
       "Arch": "HVM64" 
      }, 
      "r3.2xlarge": { 
       "Arch": "HVM64" 
      }, 
      "r3.4xlarge": { 
       "Arch": "HVM64" 
      }, 
      "r3.8xlarge": { 
       "Arch": "HVM64" 
      }, 
      "i2.xlarge": { 
       "Arch": "HVM64" 
      }, 
      "i2.2xlarge": { 
       "Arch": "HVM64" 
      }, 
      "i2.4xlarge": { 
       "Arch": "HVM64" 
      }, 
      "i2.8xlarge": { 
       "Arch": "HVM64" 
      }, 
      "d2.xlarge": { 
       "Arch": "HVM64" 
      }, 
      "d2.2xlarge": { 
       "Arch": "HVM64" 
      }, 
      "d2.4xlarge": { 
       "Arch": "HVM64" 
      }, 
      "d2.8xlarge": { 
       "Arch": "HVM64" 
      }, 
      "hi1.4xlarge": { 
       "Arch": "HVM64" 
      }, 
      "hs1.8xlarge": { 
       "Arch": "HVM64" 
      }, 
      "cr1.8xlarge": { 
       "Arch": "HVM64" 
      }, 
      "cc2.8xlarge": { 
       "Arch": "HVM64" 
      } 
     }, 
     "AWSRegionArch2AMI": { 
      "us-east-1": { 
       "PV64": "ami-2a69aa47", 
       "HVM64": "ami-6869aa05", 
       "HVMG2": "ami-1f12e965" 
      }, 
      "us-west-2": { 
       "PV64": "ami-7f77b31f", 
       "HVM64": "ami-7172b611", 
       "HVMG2": "ami-5c9b6124" 
      }, 
      "us-west-1": { 
       "PV64": "ami-a2490dc2", 
       "HVM64": "ami-31490d51", 
       "HVMG2": "ami-7291a112" 
      }, 
      "eu-west-1": { 
       "PV64": "ami-4cdd453f", 
       "HVM64": "ami-f9dd458a", 
       "HVMG2": "ami-b411c5cd" 
      }, 
      "eu-west-2": { 
       "PV64": "NOT_SUPPORTED", 
       "HVM64": "ami-886369ec", 
       "HVMG2": "NOT_SUPPORTED" 
      }, 
      "eu-central-1": { 
       "PV64": "ami-6527cf0a", 
       "HVM64": "ami-ea26ce85", 
       "HVMG2": "ami-be40f2d1" 
      }, 
      "ap-northeast-1": { 
       "PV64": "ami-3e42b65f", 
       "HVM64": "ami-374db956", 
       "HVMG2": "ami-3efd2c58" 
      }, 
      "ap-northeast-2": { 
       "PV64": "NOT_SUPPORTED", 
       "HVM64": "ami-2b408b45", 
       "HVMG2": "NOT_SUPPORTED" 
      }, 
      "ap-southeast-1": { 
       "PV64": "ami-df9e4cbc", 
       "HVM64": "ami-a59b49c6", 
       "HVMG2": "ami-3e91ed5d" 
      }, 
      "ap-southeast-2": { 
       "PV64": "ami-63351d00", 
       "HVM64": "ami-dc361ebf", 
       "HVMG2": "ami-84a142e6" 
      }, 
      "ap-south-1": { 
       "PV64": "NOT_SUPPORTED", 
       "HVM64": "ami-ffbdd790", 
       "HVMG2": "ami-25ffbe4a" 
      }, 
      "us-east-2": { 
       "PV64": "NOT_SUPPORTED", 
       "HVM64": "ami-f6035893", 
       "HVMG2": "NOT_SUPPORTED" 
      }, 
      "ca-central-1": { 
       "PV64": "NOT_SUPPORTED", 
       "HVM64": "ami-730ebd17", 
       "HVMG2": "NOT_SUPPORTED" 
      }, 
      "sa-east-1": { 
       "PV64": "ami-1ad34676", 
       "HVM64": "ami-6dd04501", 
       "HVMG2": "NOT_SUPPORTED" 
      }, 
      "cn-north-1": { 
       "PV64": "ami-77559f1a", 
       "HVM64": "ami-8e6aa0e3", 
       "HVMG2": "NOT_SUPPORTED" 
      }, 
      "cn-northwest-1": { 
       "PV64": "ami-80707be2", 
       "HVM64": "ami-cb858fa9", 
       "HVMG2": "NOT_SUPPORTED" 
      } 
     } 
    }, 
    "Resources": { 
     "WebServerInstance": { 
      "Type": "AWS::EC2::Instance", 
      "Properties": { 
       "ImageId": { 
        "Fn::FindInMap": [ 
         "AWSRegionArch2AMI", 
         { 
          "Ref": "AWS::Region" 
         }, 
         { 
          "Fn::FindInMap": [ 
           "AWSInstanceType2Arch", 
           { 
            "Ref": "InstanceType" 
           }, 
           "Arch" 
          ] 
         } 
        ] 
       }, 
       "InstanceType": { 
        "Ref": "InstanceType" 
       } 
      } 
     } 
    } 
} 

을 우분투 비슷한 일을 할 수있는 방법 16.04? 더 쉬운 방법이 있습니까?

답변

1

Cloudform에서는 Mappings을 통해 조회를 수행 할 수 있습니다. 따라서 어떤 지역에서 작동 할 스크립트를 작성하려면 region과 AMI ID 간의 맵핑을 작성해야합니다.

list of cloud images에서 AMI 목록을 가져올 수 있습니다.

다른 유형의 AMI (16.04가 나열된 각 지역마다 4 가지 AMI가 있음)를 선택할 필요가없는 경우 원하는 유형을지도에 포함 시키거나 여러 값으로 맵을 만들면됩니다 그것이 당신이 필요로하는 것이라면.