-
Notifications
You must be signed in to change notification settings - Fork 3
/
vpc-igw-ec2.json
116 lines (116 loc) · 3.52 KB
/
vpc-igw-ec2.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
{
"Description" : "Create a VPC, an SG, an IGW, an EC2 instance.",
"Parameters" : {
"MyAMI" : {
"Type" : "String",
"Default" : "ami-acc0f0d6",
"Description" : "Web AMI"
}
},
"Resources" : {
"BobVPC" : {
"Type" : "AWS::EC2::VPC",
"Properties" : {
"EnableDnsHostnames" : "True",
"CidrBlock" : "10.10.0.0/16",
"Tags" : [{ "Key" : "Name", "Value" : "MyDevEnvironment"}, { "Key" : "Role", "Value" : "DevNetwork"} ]
}
},
"BobPublicSubnet" : {
"Type" : "AWS::EC2::Subnet",
"Properties" : {
"VpcId" : { "Ref" : "BobVPC"},
"CidrBlock" : "10.10.1.0/24",
"MapPublicIpOnLaunch" : "True",
"Tags" : [{ "Key" : "Name", "Value" : "MyDevEnvironment"}, { "Key" : "Role", "Value" : "DevNetwork"} ]
}
},
"BobPrivateSubnet" : {
"Type" : "AWS::EC2::Subnet",
"Properties" : {
"VpcId" : { "Ref" : "BobVPC"},
"CidrBlock" : "10.10.2.0/24",
"Tags" : [{ "Key" : "Name", "Value" : "MyDevEnvironment"}, { "Key" : "Role", "Value" : "DevNetwork"} ]
}
},
"BobVPCIGW" : {
"Type" : "AWS::EC2::InternetGateway",
"Properties" : {
"Tags" : [{ "Key" : "Name", "Value" : "MyDevEnvironment"}, { "Key" : "Role", "Value" : "DevNetwork"} ]
}
},
"AttachGateway" : {
"Type" : "AWS::EC2::VPCGatewayAttachment",
"Properties" : {
"VpcId" : { "Ref" : "BobVPC"},
"InternetGatewayId" : { "Ref" : "BobVPCIGW"}
}
},
"BobVPCPublicRouteTable" : {
"Type" : "AWS::EC2::RouteTable",
"Properties" : {
"VpcId" : { "Ref" : "BobVPC"},
"Tags" : [ { "Key" : "Name", "Value" : "MyDevEnvironment"} ]
}
},
"BobDefaultRoute" : {
"Type" : "AWS::EC2::Route",
"DependsOn" : [ "BobVPCIGW", "BobVPCPublicRouteTable" ],
"Properties" : {
"RouteTableId" : { "Ref" : "BobVPCPublicRouteTable" },
"DestinationCidrBlock" : "0.0.0.0/0",
"GatewayId" : { "Ref" : "BobVPCIGW" }
}
},
"mySubnetRouteTableAssociation": {
"Type" : "AWS::EC2::SubnetRouteTableAssociation",
"DependsOn" : [ "BobPublicSubnet"],
"Properties" : {
"SubnetId" : { "Ref" : "BobPublicSubnet"},
"RouteTableId" : { "Ref" : "BobVPCPublicRouteTable"}
}
},
"BobWebSecurityGroup" : {
"Type" : "AWS::EC2::SecurityGroup",
"DependsOn" : "BobVPC",
"Properties" : {
"GroupName" : "WEB-DMZ",
"GroupDescription" : "Allow HTTP and SSH",
"VpcId" : { "Ref" : "BobVPC" },
"SecurityGroupIngress" : [{
"IpProtocol" : "tcp",
"FromPort" : "80",
"ToPort" : "80",
"CidrIp" : "0.0.0.0/0"
},
{
"IpProtocol" : "tcp",
"FromPort" : "22",
"ToPort" : "22",
"CidrIp" : "0.0.0.0/0"
}]
}
},
"BobPublicInstance" : {
"Type" : "AWS::EC2::Instance",
"DependsOn" : [ "BobWebSecurityGroup", "BobPublicSubnet" ],
"Properties" : {
"InstanceType" : "t2.micro",
"SubnetId" : { "Ref" : "BobPublicSubnet" },
"ImageId" : { "Ref" : "MyAMI"},
"SecurityGroupIds" : [{ "Ref" : "BobWebSecurityGroup"}],
"KeyName" : "us-east-1-keys"
}
}
},
"Outputs" : {
"ELBName" : {
"Description" : "VPC ID",
"Value" : { "Ref" : "BobVPC" }
},
"InstanceDns" : {
"Description" : "DNS Entry for instance",
"Value" : { "Fn::GetAtt" : "BobPublicInstance.PublicDnsName" }
}
}
}