--- AWSTemplateFormatVersion: '2010-09-09' Description: Demo CloudFormation stack that creates EC2 Instance and a Security Group Parameters: InstanceType: Default: t3.micro Type: String KeyName: Type: String Mappings: AmiMap: ap-northeast-1: Ami: ami-0f9ae750e8274075b ap-northeast-2: Ami: ami-047f7b46bd6dd5d84 ap-south-1: Ami: ami-0889b8a448de4fc44 ap-southeast-1: Ami: ami-0b419c3a4b01d1859 ap-southeast-2: Ami: ami-04481c741a0311bbb ca-central-1: Ami: ami-03338e1f67dae0168 eu-central-1: Ami: ami-09def150731bdbcc2 eu-north-1: Ami: ami-d16fe6af eu-west-1: Ami: ami-07683a44e80cd32c5 eu-west-2: Ami: ami-09ead922c1dad67e4 eu-west-3: Ami: ami-0451ae4fd8dd178f7 sa-east-1: Ami: ami-0669a96e355eac82f us-east-1: Ami: ami-0de53d8956e8dcf80 us-east-2: Ami: ami-02bcbb802e03574ba us-west-1: Ami: ami-0019ef04ac50be30f us-west-2: Ami: ami-061392db613a6357b Resources: Instance: Type: AWS::EC2::Instance Properties: ImageId: Fn::FindInMap: - AmiMap - Ref: AWS::Region - Ami InstanceType: Ref: InstanceType KeyName: Ref: KeyName Monitoring: true SecurityGroupIds: - Fn::GetAtt: - SecurityGroup - GroupId UserData: Fn::Base64: Fn::Sub: - | #!/bin/bash /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource Instance --region ${AWS::Region} - {} SecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: demo security group SecurityGroupIngress: - CidrIp: 0.0.0.0/0 FromPort: 22 IpProtocol: tcp ToPort: 22