我是Cloud Formation的新手
我想通过云形成模板从自定义ami启动ec2实例。 怎么做?
答案 0 :(得分:2)
http://www.tothenew.com/blog/launching-an-aws-ec2-instance-using-cloudformation-template/我真的用Google搜索了你的问题。
答案 1 :(得分:0)
它的完成方式与使用社区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复制到要在其中使用的区域。
来源: Copying an AMI
答案 2 :(得分:0)
以下选项可以选择不仅仅是ami-id。希望能帮助到你! 在Mappings下找到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]