v2.1.0
Multiple subnets per AZ. Named subnets @aknysh (#174)
what
- Allow provisioning multiple subnets per AZ (the number of subnets per AZ is specified in the
subnets_per_az_count
variable). Ifsubnets_per_az_count
is set to1
(default), it's backwards compatible with the previous functionality (one subnet of each type, private and public, per AZ) - Allow named subnets (specified in the
subnets_per_az_names
variable)
why
- Multiple subnets per AZ are useful in many cases:
- In a VPC, provision a dedicated subnet for services, backend and database
- For AWS Network Firewall, a dedicated subnet in each AZ is required. When a Transit Gateway is used, we provision
tgw
subnet andfirewall
subnets in each AZ
- Named subnets are useful to easily find particular subnets IDs and route table IDs (both public and private) from the module outputs, e.g. to find all subnets and route tables for
tgw
,firewall
,database
,services
,backend
, etc.
test
Using the following settings:
availability_zones = ["us-east-2a", "us-east-2b"]
subnets_per_az_count = 3
subnets_per_az_names = ["services", "backend", "db"]
The outputs:
az_private_route_table_ids_map = {
"us-east-2a" = [
"rtb-05cbce79950652f38",
"rtb-03a545f25ef6ce3f9",
"rtb-0ef8d1698f424e77b",
]
"us-east-2b" = [
"rtb-076348138f550ebab",
"rtb-0bd3baf8916948c3f",
"rtb-01533922e675db6b6",
]
}
az_private_subnets_map = {
"us-east-2a" = [
"subnet-02c63d0c0c2f84bf5",
"subnet-0393680d8ea3dd70f",
"subnet-0a7c4b117b2105a69",
]
"us-east-2b" = [
"subnet-0f6d042c659cc1346",
"subnet-06764c7316567eacc",
"subnet-074fd7ad2b902bec2",
]
}
az_public_route_table_ids_map = {
"us-east-2a" = [
"rtb-0046629cc751e775d",
"rtb-0046629cc751e775d",
"rtb-0046629cc751e775d",
]
"us-east-2b" = [
"rtb-0046629cc751e775d",
"rtb-0046629cc751e775d",
"rtb-0046629cc751e775d",
]
}
az_public_subnets_map = {
"us-east-2a" = [
"subnet-05647fc1f31a30896",
"subnet-03e27e41e0b818080",
"subnet-04e5d57b1e2035c7c",
]
"us-east-2b" = [
"subnet-01cc440339718014e",
"subnet-00155e6b64925ba51",
"subnet-0a326693cfee8e68d",
]
}
named_private_route_table_ids_map = {
"backend" = tolist([
"rtb-03a545f25ef6ce3f9",
"rtb-0bd3baf8916948c3f",
])
"db" = tolist([
"rtb-0ef8d1698f424e77b",
"rtb-01533922e675db6b6",
])
"services" = tolist([
"rtb-05cbce79950652f38",
"rtb-076348138f550ebab",
])
}
named_private_subnets_map = {
"backend" = tolist([
"subnet-0393680d8ea3dd70f",
"subnet-06764c7316567eacc",
])
"db" = tolist([
"subnet-0a7c4b117b2105a69",
"subnet-074fd7ad2b902bec2",
])
"services" = tolist([
"subnet-02c63d0c0c2f84bf5",
"subnet-0f6d042c659cc1346",
])
}
named_private_subnets_stats_map = {
"backend" = [
{
"az" = "us-east-2a"
"route_table_id" = "rtb-03a545f25ef6ce3f9"
"subnet_id" = "subnet-0393680d8ea3dd70f"
},
{
"az" = "us-east-2b"
"route_table_id" = "rtb-0bd3baf8916948c3f"
"subnet_id" = "subnet-06764c7316567eacc"
},
]
"db" = [
{
"az" = "us-east-2a"
"route_table_id" = "rtb-0ef8d1698f424e77b"
"subnet_id" = "subnet-0a7c4b117b2105a69"
},
{
"az" = "us-east-2b"
"route_table_id" = "rtb-01533922e675db6b6"
"subnet_id" = "subnet-074fd7ad2b902bec2"
},
]
"services" = [
{
"az" = "us-east-2a"
"route_table_id" = "rtb-05cbce79950652f38"
"subnet_id" = "subnet-02c63d0c0c2f84bf5"
},
{
"az" = "us-east-2b"
"route_table_id" = "rtb-076348138f550ebab"
"subnet_id" = "subnet-0f6d042c659cc1346"
},
]
}
named_public_route_table_ids_map = {
"backend" = tolist([
"rtb-0046629cc751e775d",
"rtb-0046629cc751e775d",
])
"db" = tolist([
"rtb-0046629cc751e775d",
"rtb-0046629cc751e775d",
])
"services" = tolist([
"rtb-0046629cc751e775d",
"rtb-0046629cc751e775d",
])
}
named_public_subnets_map = {
"backend" = tolist([
"subnet-03e27e41e0b818080",
"subnet-00155e6b64925ba51",
])
"db" = tolist([
"subnet-04e5d57b1e2035c7c",
"subnet-0a326693cfee8e68d",
])
"services" = tolist([
"subnet-05647fc1f31a30896",
"subnet-01cc440339718014e",
])
}
named_public_subnets_stats_map = {
"backend" = [
{
"az" = "us-east-2a"
"route_table_id" = "rtb-0046629cc751e775d"
"subnet_id" = "subnet-03e27e41e0b818080"
},
{
"az" = "us-east-2b"
"route_table_id" = "rtb-0046629cc751e775d"
"subnet_id" = "subnet-00155e6b64925ba51"
},
]
"db" = [
{
"az" = "us-east-2a"
"route_table_id" = "rtb-0046629cc751e775d"
"subnet_id" = "subnet-04e5d57b1e2035c7c"
},
{
"az" = "us-east-2b"
"route_table_id" = "rtb-0046629cc751e775d"
"subnet_id" = "subnet-0a326693cfee8e68d"
},
]
"services" = [
{
"az" = "us-east-2a"
"route_table_id" = "rtb-0046629cc751e775d"
"subnet_id" = "subnet-05647fc1f31a30896"
},
{
"az" = "us-east-2b"
"route_table_id" = "rtb-0046629cc751e775d"
"subnet_id" = "subnet-01cc440339718014e"
},
]
}
private_route_table_ids = [
"rtb-05cbce79950652f38",
"rtb-03a545f25ef6ce3f9",
"rtb-0ef8d1698f424e77b",
"rtb-076348138f550ebab",
"rtb-0bd3baf8916948c3f",
"rtb-01533922e675db6b6",
]
private_subnet_cidrs = tolist([
"172.16.0.0/21",
"172.16.8.0/21",
"172.16.16.0/21",
"172.16.24.0/21",
"172.16.32.0/21",
"172.16.40.0/21",
])
public_subnet_cidrs = tolist([
"172.16.72.0/21",
"172.16.80.0/21",
"172.16.88.0/21",
"172.16.96.0/21",
"172.16.104.0/21",
"172.16.112.0/21",
])