-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvpcfinal.yml
More file actions
153 lines (149 loc) · 3.81 KB
/
vpcfinal.yml
File metadata and controls
153 lines (149 loc) · 3.81 KB
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
---
AWSTemplateFormatVersion: '2010-09-09'
Description: 'Master stack: PathToMasterStackFile'
Parameters:
pemkey:
Type: AWS::EC2::KeyPair::KeyName
Description: select your pem key
cidr:
Type: String
Default: 10.0.0.0/16
subnetcount:
Type: String
Default: "4"
subnetmask:
Type: String
Default: "8"
Resources:
#creating a vpc
myVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: !Ref cidr
EnableDnsSupport: true
EnableDnsHostnames: true
Tags:
- Key: Name
Value: Kawasaki-Dev-VPC
#creating subnets
pubsubnet1:
Type: AWS::EC2::Subnet
Properties:
AvailabilityZone: !Select
- 0
- !GetAZs ""
MapPublicIpOnLaunch: true
VpcId: !Ref myVPC
CidrBlock: !Select [0, !Cidr [!Ref cidr, !Ref subnetcount, !Ref subnetmask]]
Tags:
- Key: Name
Value: Kawasaki-Dev-PubSub1
pubsubnet2:
Type: AWS::EC2::Subnet
Properties:
AvailabilityZone: !Select
- 1
- !GetAZs ""
MapPublicIpOnLaunch: true
VpcId: !Ref myVPC
CidrBlock: !Select [1, !Cidr [!Ref cidr, !Ref subnetcount, !Ref subnetmask]]
Tags:
- Key: Name
Value: Kawasaki-Dev-PubSub2
privsubnet1:
Type: AWS::EC2::Subnet
Properties:
AvailabilityZone: !Select
- 0
- !GetAZs ""
MapPublicIpOnLaunch: true
VpcId: !Ref myVPC
CidrBlock: !Select [2, !Cidr [!Ref cidr, !Ref subnetcount, !Ref subnetmask]]
Tags:
- Key: Name
Value: Kawasaki-Dev-PrivSub1
privsubnet2:
Type: AWS::EC2::Subnet
Properties:
AvailabilityZone: !Select
- 1
- !GetAZs ""
MapPublicIpOnLaunch: true
VpcId: !Ref myVPC
CidrBlock: !Select [3, !Cidr [!Ref cidr, !Ref subnetcount, !Ref subnetmask]]
Tags:
- Key: Name
Value: Kawasaki-Dev-PrivSub
#creating route tables
publicrouteTable:
Type: AWS::EC2::RouteTable
Properties:
VpcId: !Ref myVPC
Tags:
- Key: Name
Value: Kawasaki-PublicrouteTable
privaterouteTable:
Type: AWS::EC2::RouteTable
Properties:
VpcId: !Ref myVPC
Tags:
- Key: Name
Value: Kawasaki-PrivaterouteTable
#creating route table association
pubrouteTableAssoc1:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref pubsubnet1
RouteTableId: !Ref publicrouteTable
pubrouteTableAssoc2:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref pubsubnet2
RouteTableId: !Ref publicrouteTable
privrouteTableAssoc1:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref privsubnet1
RouteTableId: !Ref privaterouteTable
privrouteTableAssoc2:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref privsubnet2
RouteTableId: !Ref privaterouteTable
#creating an internet gateway
igwName:
Type: AWS::EC2::InternetGateway
Properties:
Tags:
- Key: Name
Value: IGWName-Kawasaki
AttachGateway:
Type: AWS::EC2::VPCGatewayAttachment
Properties:
VpcId: !Ref myVPC
InternetGatewayId: !Ref igwName
#attaching igw
igwroute:
Type: AWS::EC2::Route
Properties:
RouteTableId: !Ref publicrouteTable
DestinationCidrBlock: 0.0.0.0/0
GatewayId: !Ref igwName
#creating Eip gateway
eip:
Type: AWS::EC2::EIP
Properties:
Domain: !Ref myVPC
#creating nat gateway
natID:
Type: "AWS::EC2::NatGateway"
Properties:
AllocationId: !GetAtt 'eip.AllocationId' #required
SubnetId: !Ref pubsubnet1 #required
#attacing nat gateway
natroute:
Type: AWS::EC2::Route
Properties:
RouteTableId: !Ref privaterouteTable
DestinationCidrBlock: 0.0.0.0/0
NatGatewayId: !Ref natID