# http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sample-templates-services-us-west-2.html#w1ab2c21c45c15c15 # Amazon EC2 instance in a security group Creates an Amazon EC2 instance in an Amazon EC2 security group. --- AWSTemplateFormatVersion: '2010-09-09' Description: 'AWS CloudFormation Sample Template EC2InstanceWithSecurityGroupSample: Create an Amazon EC2 instance running the Amazon Linux AMI. The AMI is chosen based on the region in which the stack is run. This example creates an EC2 security group for the instance to give you SSH access.' 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. InstanceType: Description: Example EC2 instance 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 ConstraintDescription: must be a valid EC2 instance type. SSHLocation: Description: The IP address range that can be used to SSH to the EC2 instances Type: String MinLength: '9' MaxLength: '18' Default: 0.0.0.0/0 AllowedPattern: "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})" ConstraintDescription: must be a valid IP CIDR range of the form x.x.x.x/x. 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 AWSInstanceType2NATArch: t1.micro: Arch: NATPV64 t2.nano: Arch: NATHVM64 t2.micro: Arch: NATHVM64 t2.small: Arch: NATHVM64 t2.medium: Arch: NATHVM64 t2.large: Arch: NATHVM64 m1.small: Arch: NATPV64 m1.medium: Arch: NATPV64 m1.large: Arch: NATPV64 m1.xlarge: Arch: NATPV64 AWSRegionArch2AMI: us-east-1: PV64: ami-2a69aa47 HVM64: ami-6869aa05 HVMG2: ami-61e27177 us-west-2: PV64: ami-7f77b31f HVM64: ami-7172b611 HVMG2: ami-60aa3700 us-west-1: PV64: ami-a2490dc2 HVM64: ami-31490d51 HVMG2: ami-4b694d2b eu-west-1: PV64: ami-4cdd453f HVM64: ami-f9dd458a HVMG2: ami-2955524f Resources: EC2Instance: Type: AWS::EC2::Instance Properties: InstanceType: Ref: InstanceType SecurityGroups: - Ref: InstanceSecurityGroup KeyName: Ref: KeyName ImageId: Fn::FindInMap: - AWSRegionArch2AMI - Ref: AWS::Region - Fn::FindInMap: - AWSInstanceType2Arch - Ref: InstanceType - Arch InstanceSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Enable SSH access via port 22 SecurityGroupIngress: - IpProtocol: tcp FromPort: '22' ToPort: '22' CidrIp: Ref: SSHLocation Outputs: InstanceId: Description: InstanceId of the newly created EC2 instance Value: Ref: EC2Instance AZ: Description: Availability Zone of the newly created EC2 instance Value: Fn::GetAtt: - EC2Instance - AvailabilityZone PublicDNS: Description: Public DNSName of the newly created EC2 instance Value: Fn::GetAtt: - EC2Instance - PublicDnsName PublicIP: Description: Public IP address of the newly created EC2 instance Value: Fn::GetAtt: - EC2Instance - PublicIp