· 4 years ago · Jun 20, 2021, 12:54 AM
1# This stack will create a two-tier VPC with Elastic IP
2
3provider:
4 aws:
5 access_key: '${var.aws_access_key}'
6 secret_key: '${var.aws_secret_key}'
7resource:
8 aws_vpc:
9 main:
10 cidr_block: 10.0.0.0/16
11 instance_tenancy: "default"
12 tags:
13 Name: 'Koding-VPC'
14
15 aws_subnet:
16 subnet1:
17 vpc_id: '${aws_vpc.main.id}'
18 availability_zone: 'eu-west-1a'
19 cidr_block: 10.0.10.0/24
20 tags:
21 Name: 'Koding-VPC-10.0.10.0'
22 subnet2:
23 vpc_id: '${aws_vpc.main.id}'
24 availability_zone: 'eu-west-1b'
25 cidr_block: 10.0.20.0/24
26 tags:
27 Name: 'Koding-VPC-10.0.20.0'
28 subnet3:
29 vpc_id: '${aws_vpc.main.id}'
30 availability_zone: 'eu-west-1c'
31 cidr_block: 10.0.30.0/24
32 tags:
33 Name: 'Koding-VPC-10.0.30.0'
34
35 aws_internet_gateway:
36 internet_gw:
37 vpc_id: '${aws_vpc.main.id}'
38 tags:
39 Name: 'Koding-VPC-internet-gateway'
40
41 aws_route_table:
42 internet_rtable:
43 vpc_id: '${aws_vpc.main.id}'
44 route:
45 cidr_block: 0.0.0.0/0
46 gateway_id: '${aws_internet_gateway.internet_gw.id}'
47 tags:
48 Name: 'Koding-VPC-route-table'
49
50 aws_route_table_association:
51 subnet1_associate:
52 subnet_id: '${aws_subnet.subnet1.id}'
53 route_table_id: '${aws_route_table.internet_rtable.id}'
54 subnet2_associate:
55 subnet_id: '${aws_subnet.subnet2.id}'
56 route_table_id: '${aws_route_table.internet_rtable.id}'
57 subnet3_associate:
58 subnet_id: '${aws_subnet.subnet3.id}'
59 route_table_id: '${aws_route_table.internet_rtable.id}'
60
61 aws_security_group:
62 security_group:
63 name: 'Koding-VPC-sg'
64 description: 'Koding VPC allowed traffic'
65 vpc_id: '${aws_vpc.main.id}'
66 tags:
67 Name: 'Koding-allowed-traffic'
68 ingress:
69 - from_port: 22
70 to_port: 22
71 protocol: tcp
72 cidr_blocks:
73 - 0.0.0.0/0
74 - from_port: 80
75 to_port: 80
76 protocol: tcp
77 cidr_blocks:
78 - 0.0.0.0/0
79 - from_port: 56789
80 to_port: 56789
81 protocol: tcp
82 cidr_blocks:
83 - 0.0.0.0/0
84 egress:
85 - from_port: 0
86 to_port: 65535
87 protocol: tcp
88 cidr_blocks:
89 - 0.0.0.0/0
90 aws_eip:
91 team-web-server_eip:
92 instance: '${aws_instance.team-web-server.id}'
93 vpc: true
94 db_master_eip:
95 instance: '${aws_instance.db-master.id}'
96 vpc: true
97 db_slave_eip:
98 instance: '${aws_instance.db-slave.id}'
99 vpc: true
100
101 aws_instance:
102 team-web-server:
103 instance_type: t2.micro
104 subnet_id: '${aws_subnet.subnet1.id}'
105 depends_on: ['aws_internet_gateway.internet_gw']
106 vpc_security_group_ids:
107 - '${aws_security_group.security_group.id}'
108 ami: ''
109 tags:
110 Name: 'alpha-webserver-${var.koding_user_username}-${var.koding_group_slug}'
111
112 db-master:
113 instance_type: t2.micro
114 subnet_id: '${aws_subnet.subnet2.id}'
115 depends_on: ['aws_internet_gateway.internet_gw']
116 vpc_security_group_ids:
117 - '${aws_security_group.security_group.id}'
118 ami: ''
119 tags:
120 Name: 'DB-master-${var.koding_user_username}-${var.koding_group_slug}'
121
122 db-slave:
123 instance_type: t2.micro
124 subnet_id: '${aws_subnet.subnet3.id}'
125 depends_on: ['aws_internet_gateway.internet_gw']
126 vpc_security_group_ids:
127 - '${aws_security_group.security_group.id}'
128 ami: ''
129 tags:
130 Name: 'DB-slave-${var.koding_user_username}-${var.