locals { vpc_common_tags = { Terraform = "true" Source = "vpcstudio" } subnet_routes = { "us1" = { "private_company" = ["10.10.0.0/21", "10.10.16.0/21", "10.10.32.0/21"] "intra_infra" = ["10.10.8.0/22", "10.10.24.0/22", "10.10.40.0/22"] "public" = ["10.10.12.0/23", "10.10.28.0/23", "10.10.44.0/23"] } "us2" = { "private_company" = ["10.10.64.0/21", "10.10.80.0/21", "10.10.96.0/21"] "intra_infra" = ["10.10.72.0/22", "10.10.88.0/22", "10.10.104.0/22"] "public" = ["10.10.76.0/23", "10.10.92.0/23", "10.10.108.0/23"] } "sa" = { "private_company" = ["10.10.128.0/21", "10.10.144.0/21", "10.10.160.0/21"] "intra_infra" = ["10.10.136.0/22", "10.10.152.0/22", "10.10.168.0/22"] "public" = ["10.10.140.0/23", "10.10.156.0/23", "10.10.172.0/23"] } "eu" = { "private_company" = ["10.10.192.0/21", "10.10.208.0/21", "10.10.224.0/21"] "intra_infra" = ["10.10.200.0/22", "10.10.216.0/22", "10.10.232.0/22"] "public" = ["10.10.204.0/23", "10.10.220.0/23", "10.10.236.0/23"] } "staging" = { "private_company" = ["10.11.0.0/21", "10.11.16.0/21", "10.11.32.0/21"] "intra_infra" = ["10.11.8.0/22", "10.11.24.0/22", "10.11.40.0/22"] "public" = ["10.11.12.0/23", "10.11.28.0/23", "10.11.44.0/23"] } "dev" = { "private_company" = ["10.11.64.0/21", "10.11.80.0/21", "10.11.96.0/21"] "intra_infra" = ["10.11.72.0/22", "10.11.88.0/22", "10.11.104.0/22"] "public" = ["10.11.76.0/23", "10.11.92.0/23", "10.11.108.0/23"] } } } module "vpc-us1" { source = "terraform-aws-modules/vpc/aws" name = "us1" cidr = "10.10.0.0/18" azs = ["us-west-2a", "us-west-2b", "us-west-2c"] private_subnets = concat(local.subnet_routes["us1"]["private_company"]) public_subnets = concat(local.subnet_routes["us1"]["public"]) intra_subnets = concat(local.subnet_routes["us1"]["intra_infra"]) enable_nat_gateway = true enable_vpn_gateway = true tags = local.vpc_common_tags } module "vpc-us2" { source = "terraform-aws-modules/vpc/aws" name = "us2" cidr = "10.10.64.0/18" azs = ["us-east-2a", "us-east-2b", "us-east-2c"] private_subnets = concat(local.subnet_routes["us2"]["private_company"]) public_subnets = concat(local.subnet_routes["us2"]["public"]) intra_subnets = concat(local.subnet_routes["us2"]["intra_infra"]) enable_nat_gateway = true enable_vpn_gateway = true tags = local.vpc_common_tags } module "vpc-sa" { source = "terraform-aws-modules/vpc/aws" name = "sa" cidr = "10.10.128.0/18" azs = ["sa-east-1a", "sa-east-1b", "sa-east-1c"] private_subnets = concat(local.subnet_routes["sa"]["private_company"]) public_subnets = concat(local.subnet_routes["sa"]["public"]) intra_subnets = concat(local.subnet_routes["sa"]["intra_infra"]) enable_nat_gateway = true enable_vpn_gateway = true tags = local.vpc_common_tags } module "vpc-eu" { source = "terraform-aws-modules/vpc/aws" name = "eu" cidr = "10.10.192.0/18" azs = ["eu-north-1a", "eu-north-1b", "eu-north-1c"] private_subnets = concat(local.subnet_routes["eu"]["private_company"]) public_subnets = concat(local.subnet_routes["eu"]["public"]) intra_subnets = concat(local.subnet_routes["eu"]["intra_infra"]) enable_nat_gateway = true enable_vpn_gateway = true tags = local.vpc_common_tags } module "vpc-staging" { source = "terraform-aws-modules/vpc/aws" name = "staging" cidr = "10.11.0.0/18" azs = ["us-west-2a", "us-west-2b", "us-west-2c"] private_subnets = concat(local.subnet_routes["staging"]["private_company"]) public_subnets = concat(local.subnet_routes["staging"]["public"]) intra_subnets = concat(local.subnet_routes["staging"]["intra_infra"]) enable_nat_gateway = true enable_vpn_gateway = true tags = local.vpc_common_tags } module "vpc-dev" { source = "terraform-aws-modules/vpc/aws" name = "dev" cidr = "10.11.64.0/18" azs = ["us-east-2a", "us-east-2b", "us-east-2c"] private_subnets = concat(local.subnet_routes["dev"]["private_company"]) public_subnets = concat(local.subnet_routes["dev"]["public"]) intra_subnets = concat(local.subnet_routes["dev"]["intra_infra"]) enable_nat_gateway = true enable_vpn_gateway = true tags = local.vpc_common_tags }
import * as awsx from "@pulumi/awsx"; const vpc_common_tags = { "Terraform": "true", "Source": "vpcstudio", }; const vpcs: { [index: string]: awsx.ec2.Vpc } = {}; vpcs["us1"] = new awsx.ec2.Vpc("us1", { cidrBlock: "10.10.0.0/18", numberOfAvailabilityZones: "all", subnets: [ { type: "private", name: "private_company", location: {cidrBlock: "10.10.0.0/21", availabilityZone: "us-west-2a"}, tags: vpc_common_tags, }, { type: "private", name: "private_company", location: {cidrBlock: "10.10.16.0/21", availabilityZone: "us-west-2b"}, tags: vpc_common_tags, }, { type: "private", name: "private_company", location: {cidrBlock: "10.10.32.0/21", availabilityZone: "us-west-2c"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.10.12.0/23", availabilityZone: "us-west-2a"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.10.28.0/23", availabilityZone: "us-west-2b"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.10.44.0/23", availabilityZone: "us-west-2c"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.10.8.0/22", availabilityZone: "us-west-2a"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.10.24.0/22", availabilityZone: "us-west-2b"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.10.40.0/22", availabilityZone: "us-west-2c"}, tags: vpc_common_tags, }, ], tags: vpc_common_tags, }); vpcs["us2"] = new awsx.ec2.Vpc("us2", { cidrBlock: "10.10.64.0/18", numberOfAvailabilityZones: "all", subnets: [ { type: "private", name: "private_company", location: {cidrBlock: "10.10.64.0/21", availabilityZone: "us-east-2a"}, tags: vpc_common_tags, }, { type: "private", name: "private_company", location: {cidrBlock: "10.10.80.0/21", availabilityZone: "us-east-2b"}, tags: vpc_common_tags, }, { type: "private", name: "private_company", location: {cidrBlock: "10.10.96.0/21", availabilityZone: "us-east-2c"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.10.76.0/23", availabilityZone: "us-east-2a"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.10.92.0/23", availabilityZone: "us-east-2b"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.10.108.0/23", availabilityZone: "us-east-2c"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.10.72.0/22", availabilityZone: "us-east-2a"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.10.88.0/22", availabilityZone: "us-east-2b"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.10.104.0/22", availabilityZone: "us-east-2c"}, tags: vpc_common_tags, }, ], tags: vpc_common_tags, }); vpcs["sa"] = new awsx.ec2.Vpc("sa", { cidrBlock: "10.10.128.0/18", numberOfAvailabilityZones: "all", subnets: [ { type: "private", name: "private_company", location: {cidrBlock: "10.10.128.0/21", availabilityZone: "sa-east-1a"}, tags: vpc_common_tags, }, { type: "private", name: "private_company", location: {cidrBlock: "10.10.144.0/21", availabilityZone: "sa-east-1b"}, tags: vpc_common_tags, }, { type: "private", name: "private_company", location: {cidrBlock: "10.10.160.0/21", availabilityZone: "sa-east-1c"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.10.140.0/23", availabilityZone: "sa-east-1a"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.10.156.0/23", availabilityZone: "sa-east-1b"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.10.172.0/23", availabilityZone: "sa-east-1c"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.10.136.0/22", availabilityZone: "sa-east-1a"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.10.152.0/22", availabilityZone: "sa-east-1b"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.10.168.0/22", availabilityZone: "sa-east-1c"}, tags: vpc_common_tags, }, ], tags: vpc_common_tags, }); vpcs["eu"] = new awsx.ec2.Vpc("eu", { cidrBlock: "10.10.192.0/18", numberOfAvailabilityZones: "all", subnets: [ { type: "private", name: "private_company", location: {cidrBlock: "10.10.192.0/21", availabilityZone: "eu-north-1a"}, tags: vpc_common_tags, }, { type: "private", name: "private_company", location: {cidrBlock: "10.10.208.0/21", availabilityZone: "eu-north-1b"}, tags: vpc_common_tags, }, { type: "private", name: "private_company", location: {cidrBlock: "10.10.224.0/21", availabilityZone: "eu-north-1c"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.10.204.0/23", availabilityZone: "eu-north-1a"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.10.220.0/23", availabilityZone: "eu-north-1b"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.10.236.0/23", availabilityZone: "eu-north-1c"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.10.200.0/22", availabilityZone: "eu-north-1a"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.10.216.0/22", availabilityZone: "eu-north-1b"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.10.232.0/22", availabilityZone: "eu-north-1c"}, tags: vpc_common_tags, }, ], tags: vpc_common_tags, }); vpcs["staging"] = new awsx.ec2.Vpc("staging", { cidrBlock: "10.11.0.0/18", numberOfAvailabilityZones: "all", subnets: [ { type: "private", name: "private_company", location: {cidrBlock: "10.11.0.0/21", availabilityZone: "us-west-2a"}, tags: vpc_common_tags, }, { type: "private", name: "private_company", location: {cidrBlock: "10.11.16.0/21", availabilityZone: "us-west-2b"}, tags: vpc_common_tags, }, { type: "private", name: "private_company", location: {cidrBlock: "10.11.32.0/21", availabilityZone: "us-west-2c"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.11.12.0/23", availabilityZone: "us-west-2a"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.11.28.0/23", availabilityZone: "us-west-2b"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.11.44.0/23", availabilityZone: "us-west-2c"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.11.8.0/22", availabilityZone: "us-west-2a"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.11.24.0/22", availabilityZone: "us-west-2b"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.11.40.0/22", availabilityZone: "us-west-2c"}, tags: vpc_common_tags, }, ], tags: vpc_common_tags, }); vpcs["dev"] = new awsx.ec2.Vpc("dev", { cidrBlock: "10.11.64.0/18", numberOfAvailabilityZones: "all", subnets: [ { type: "private", name: "private_company", location: {cidrBlock: "10.11.64.0/21", availabilityZone: "us-east-2a"}, tags: vpc_common_tags, }, { type: "private", name: "private_company", location: {cidrBlock: "10.11.80.0/21", availabilityZone: "us-east-2b"}, tags: vpc_common_tags, }, { type: "private", name: "private_company", location: {cidrBlock: "10.11.96.0/21", availabilityZone: "us-east-2c"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.11.76.0/23", availabilityZone: "us-east-2a"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.11.92.0/23", availabilityZone: "us-east-2b"}, tags: vpc_common_tags, }, { type: "public", name: "public", location: {cidrBlock: "10.11.108.0/23", availabilityZone: "us-east-2c"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.11.72.0/22", availabilityZone: "us-east-2a"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.11.88.0/22", availabilityZone: "us-east-2b"}, tags: vpc_common_tags, }, { type: "isolated", name: "intra_infra", location: {cidrBlock: "10.11.104.0/22", availabilityZone: "us-east-2c"}, tags: vpc_common_tags, }, ], tags: vpc_common_tags, }); export {vpcs};
[ { "name": "us1", "region": "us-west-2", "cidr": "10.10.0.0/18", "zones": [ { "name": "a", "zone": "us-west-2a", "cidr": "10.10.0.0/20", "subnets": [ { "name": "private_company", "cidr": "10.10.0.0/21" }, { "name": "intra_infra", "cidr": "10.10.8.0/22" }, { "name": "public", "cidr": "10.10.12.0/23" } ], "reserved_cidrs": [ { "cidr": "10.10.14.0/23" } ] }, { "name": "b", "zone": "us-west-2b", "cidr": "10.10.16.0/20", "subnets": [ { "name": "private_company", "cidr": "10.10.16.0/21" }, { "name": "intra_infra", "cidr": "10.10.24.0/22" }, { "name": "public", "cidr": "10.10.28.0/23" } ], "reserved_cidrs": [ { "cidr": "10.10.30.0/23" } ] }, { "name": "c", "zone": "us-west-2c", "cidr": "10.10.32.0/20", "subnets": [ { "name": "private_company", "cidr": "10.10.32.0/21" }, { "name": "intra_infra", "cidr": "10.10.40.0/22" }, { "name": "public", "cidr": "10.10.44.0/23" } ], "reserved_cidrs": [ { "cidr": "10.10.46.0/23" } ] } ], "reserved_cidrs": [ { "cidr": "10.10.48.0/20" } ] }, { "name": "us2", "region": "us-east-2", "cidr": "10.10.64.0/18", "zones": [ { "name": "a", "zone": "us-east-2a", "cidr": "10.10.64.0/20", "subnets": [ { "name": "private_company", "cidr": "10.10.64.0/21" }, { "name": "intra_infra", "cidr": "10.10.72.0/22" }, { "name": "public", "cidr": "10.10.76.0/23" } ], "reserved_cidrs": [ { "cidr": "10.10.78.0/23" } ] }, { "name": "b", "zone": "us-east-2b", "cidr": "10.10.80.0/20", "subnets": [ { "name": "private_company", "cidr": "10.10.80.0/21" }, { "name": "intra_infra", "cidr": "10.10.88.0/22" }, { "name": "public", "cidr": "10.10.92.0/23" } ], "reserved_cidrs": [ { "cidr": "10.10.94.0/23" } ] }, { "name": "c", "zone": "us-east-2c", "cidr": "10.10.96.0/20", "subnets": [ { "name": "private_company", "cidr": "10.10.96.0/21" }, { "name": "intra_infra", "cidr": "10.10.104.0/22" }, { "name": "public", "cidr": "10.10.108.0/23" } ], "reserved_cidrs": [ { "cidr": "10.10.110.0/23" } ] } ], "reserved_cidrs": [ { "cidr": "10.10.112.0/20" } ] }, { "name": "sa", "region": "sa-east-1", "cidr": "10.10.128.0/18", "zones": [ { "name": "a", "zone": "sa-east-1a", "cidr": "10.10.128.0/20", "subnets": [ { "name": "private_company", "cidr": "10.10.128.0/21" }, { "name": "intra_infra", "cidr": "10.10.136.0/22" }, { "name": "public", "cidr": "10.10.140.0/23" } ], "reserved_cidrs": [ { "cidr": "10.10.142.0/23" } ] }, { "name": "b", "zone": "sa-east-1b", "cidr": "10.10.144.0/20", "subnets": [ { "name": "private_company", "cidr": "10.10.144.0/21" }, { "name": "intra_infra", "cidr": "10.10.152.0/22" }, { "name": "public", "cidr": "10.10.156.0/23" } ], "reserved_cidrs": [ { "cidr": "10.10.158.0/23" } ] }, { "name": "c", "zone": "sa-east-1c", "cidr": "10.10.160.0/20", "subnets": [ { "name": "private_company", "cidr": "10.10.160.0/21" }, { "name": "intra_infra", "cidr": "10.10.168.0/22" }, { "name": "public", "cidr": "10.10.172.0/23" } ], "reserved_cidrs": [ { "cidr": "10.10.174.0/23" } ] } ], "reserved_cidrs": [ { "cidr": "10.10.176.0/20" } ] }, { "name": "eu", "region": "eu-north-1", "cidr": "10.10.192.0/18", "zones": [ { "name": "a", "zone": "eu-north-1a", "cidr": "10.10.192.0/20", "subnets": [ { "name": "private_company", "cidr": "10.10.192.0/21" }, { "name": "intra_infra", "cidr": "10.10.200.0/22" }, { "name": "public", "cidr": "10.10.204.0/23" } ], "reserved_cidrs": [ { "cidr": "10.10.206.0/23" } ] }, { "name": "b", "zone": "eu-north-1b", "cidr": "10.10.208.0/20", "subnets": [ { "name": "private_company", "cidr": "10.10.208.0/21" }, { "name": "intra_infra", "cidr": "10.10.216.0/22" }, { "name": "public", "cidr": "10.10.220.0/23" } ], "reserved_cidrs": [ { "cidr": "10.10.222.0/23" } ] }, { "name": "c", "zone": "eu-north-1c", "cidr": "10.10.224.0/20", "subnets": [ { "name": "private_company", "cidr": "10.10.224.0/21" }, { "name": "intra_infra", "cidr": "10.10.232.0/22" }, { "name": "public", "cidr": "10.10.236.0/23" } ], "reserved_cidrs": [ { "cidr": "10.10.238.0/23" } ] } ], "reserved_cidrs": [ { "cidr": "10.10.240.0/20" } ] }, { "name": "staging", "region": "us-west-2", "cidr": "10.11.0.0/18", "zones": [ { "name": "a", "zone": "us-west-2a", "cidr": "10.11.0.0/20", "subnets": [ { "name": "private_company", "cidr": "10.11.0.0/21" }, { "name": "intra_infra", "cidr": "10.11.8.0/22" }, { "name": "public", "cidr": "10.11.12.0/23" } ], "reserved_cidrs": [ { "cidr": "10.11.14.0/23" } ] }, { "name": "b", "zone": "us-west-2b", "cidr": "10.11.16.0/20", "subnets": [ { "name": "private_company", "cidr": "10.11.16.0/21" }, { "name": "intra_infra", "cidr": "10.11.24.0/22" }, { "name": "public", "cidr": "10.11.28.0/23" } ], "reserved_cidrs": [ { "cidr": "10.11.30.0/23" } ] }, { "name": "c", "zone": "us-west-2c", "cidr": "10.11.32.0/20", "subnets": [ { "name": "private_company", "cidr": "10.11.32.0/21" }, { "name": "intra_infra", "cidr": "10.11.40.0/22" }, { "name": "public", "cidr": "10.11.44.0/23" } ], "reserved_cidrs": [ { "cidr": "10.11.46.0/23" } ] } ], "reserved_cidrs": [ { "cidr": "10.11.48.0/20" } ] }, { "name": "dev", "region": "us-east-2", "cidr": "10.11.64.0/18", "zones": [ { "name": "a", "zone": "us-east-2a", "cidr": "10.11.64.0/20", "subnets": [ { "name": "private_company", "cidr": "10.11.64.0/21" }, { "name": "intra_infra", "cidr": "10.11.72.0/22" }, { "name": "public", "cidr": "10.11.76.0/23" } ], "reserved_cidrs": [ { "cidr": "10.11.78.0/23" } ] }, { "name": "b", "zone": "us-east-2b", "cidr": "10.11.80.0/20", "subnets": [ { "name": "private_company", "cidr": "10.11.80.0/21" }, { "name": "intra_infra", "cidr": "10.11.88.0/22" }, { "name": "public", "cidr": "10.11.92.0/23" } ], "reserved_cidrs": [ { "cidr": "10.11.94.0/23" } ] }, { "name": "c", "zone": "us-east-2c", "cidr": "10.11.96.0/20", "subnets": [ { "name": "private_company", "cidr": "10.11.96.0/21" }, { "name": "intra_infra", "cidr": "10.11.104.0/22" }, { "name": "public", "cidr": "10.11.108.0/23" } ], "reserved_cidrs": [ { "cidr": "10.11.110.0/23" } ] } ], "reserved_cidrs": [ { "cidr": "10.11.112.0/20" } ] } ]
Built by houqp without your favorite JS framework