Как запустить экземпляр ec2 из настраиваемого ami через шаблон формирования облака

Я новичок в Cloud Formation

Я хочу запустить экземпляр ec2 из настраиваемого ami через шаблон формирования облака. Как это сделать?


person vish    schedule 29.06.2017    source источник


Ответы (2)


Это делается так же, как и в случае с AMI сообщества. Просто передайте идентификатор вашего пользовательского AMI свойству ImageId.

Пример:

"Ec2Instance" : {
  "Type" : "AWS::EC2::Instance",
  "Properties" : {
    "ImageId" : "<Cusom_AMI_ID>",
    "KeyName" : { "Ref" : "KeyName" },
    "NetworkInterfaces": [ {
      "AssociatePublicIpAddress": "true",
      "DeviceIndex": "0",
      "GroupSet": [{ "Ref" : "myVPCEC2SecurityGroup" }],
      "SubnetId": { "Ref" : "PublicSubnet" }
    } ]
  }
}

Однако все AMI зависят от региона. Если вы хотите использовать этот пользовательский интерфейс в нескольких регионах, вам необходимо скопировать этот пользовательский AMI в те регионы, в которых вы хотите его использовать.

Источник: Копирование AMI

person Sathed    schedule 29.06.2017

Ниже приведены варианты выбора не только ami-id. Надеюсь, это поможет! Найдите часть ami-id в разделе Сопоставления.

AWSTemplateFormatVersion: '2010-09-09'
Metadata: 
  License: Apache-2.0
Parameters:
  KeyName:
    Description: Name of an existing EC2 KeyPair to enable SSH access to the instance
    Type: AWS::EC2::KeyPair::KeyName
    ConstraintDescription: must be the name of an existing EC2 KeyPair.
    Default: <keypairname>
  InstanceType:
    Description: WebServer EC2 instance type
    Type: String
    Default: t2.micro
    AllowedValues: [t1.micro, t2.nano, t2.micro, t2.small, t2.medium]
    ConstraintDescription: Must be a valid EC2 instance type.

  VPC:
    Description: Select VPC.
    Type: AWS::EC2::VPC::Id
    Default: <vpc-id>
  Subnet:
    Description: Private Subnet to Deploy Docker MFA.
    Type: AWS::EC2::Subnet::Id
    Default: <subnet-id>

  AccessSecurityGroup:
    Description: Security Group That Allows Instance to Instance Access.
    Type: AWS::EC2::SecurityGroup::Id
    Default: <securitygroup-id>

Mappings:
  RegionMap:
    eu-central-1:
      AMI: <ami-id>

Resources:
  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: !Ref 'InstanceType'
      KeyName: !Ref 'KeyName'
      Tags:
      - Key: Name
        Value: My-Instance
      ImageId: 
        Fn::FindInMap:
        - RegionMap
        - Ref: AWS::Region
        - AMI
      NetworkInterfaces:
      - GroupSet:
        - Ref: AccessSecurityGroup
        AssociatePublicIpAddress: 'true'
        DeviceIndex: '0'
        DeleteOnTermination: 'true'
        SubnetId:
          Ref: Subnet
Outputs:
  InstanceId:
    Description: InstanceId of the newly created EC2 instance
    Value: !Ref 'EC2Instance'
  AZ:
    Description: Availability Zone of the newly created EC2 instance
    Value: !GetAtt [EC2Instance, AvailabilityZone]
  PublicDNS:
    Description: Public DNSName of the newly created EC2 instance
    Value: !GetAtt [EC2Instance, PublicDnsName]
  PublicIP:
    Description: Public IP address of the newly created EC2 instance
    Value: !GetAtt [EC2Instance, PublicIp]
person Vineeth    schedule 30.06.2017