繁体   English   中英

如何通过云形成模板从自定义AMI运行ec2实例

[英]How to run an ec2 instance from a custom ami through cloud formation template

我是云形成的新手

我想通过云形成模板从自定义ami启动ec2实例。 这个怎么做?

与使用社区AMI的方式相同。 只需将自定义AMI的ID传递到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

以下提供的选项不仅可以选择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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM