-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvpc.tf
More file actions
executable file
·54 lines (45 loc) · 1.29 KB
/
vpc.tf
File metadata and controls
executable file
·54 lines (45 loc) · 1.29 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
locals {
cidr = "10.0.0.0/16"
region = "us-east-2"
azs = [
"${local.region}a",
"${local.region}b",
"${local.region}c",
]
num_azs = length(local.azs)
num_bits_needed_for_azs = ceil(log(local.num_azs, 2))
private_cidr = cidrsubnet(local.cidr, 1, 0)
private_subnets = [
for i in range(local.num_azs) : cidrsubnet(local.private_cidr, local.num_bits_needed_for_azs, i)
]
public_cidr = cidrsubnet(local.cidr, 1, 1)
public_subnets = [
for i in range(local.num_azs) : cidrsubnet(local.public_cidr, local.num_bits_needed_for_azs, i)
]
}
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "4.0.2"
name = "aw_dev_vpc"
cidr = local.cidr
azs = local.azs
private_subnets = local.private_subnets
public_subnets = local.public_subnets
enable_nat_gateway = true
single_nat_gateway = true
enable_vpn_gateway = false
map_public_ip_on_launch = true
}
module "vpc_endpoints" {
source = "terraform-aws-modules/vpc/aws//modules/vpc-endpoints"
version = "4.0.2"
vpc_id = module.vpc.vpc_id
endpoints = {
s3 = {
service = "s3"
service_type = "Gateway"
tags = { Name = "s3-vpc-endpoint" }
route_table_ids = module.vpc.private_route_table_ids
},
}
}