Accounts:
VPCs come in following T-shirt sizes:
Micro: /23 - 32/subnet
Small: /22 - 64/subnet
Medium: /21 - 128/subnet
Large: /20 - 256/subnet
XLarge: /19 - 512/subnet
*Please note: AWS reserves five IP addresses per subnet
Below displays Large VPC size:
CloudFormation template, still to be done:
- add parameter section
- wherever VPC/subnet CIDR is hardcoded change to input parameter:
- Old: "CidrBlock": "10.22.2.0/24"
- New: "CidrBlock": { "Ref": "web1CIDR" }
{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "vpc0a20ebcd5ad0afcc3": { "Type": "AWS::EC2::VPC", "Properties": { "CidrBlock": "10.22.0.0/20", "InstanceTenancy": "default", "EnableDnsSupport": "true", "EnableDnsHostnames": "false", "Tags": [ { "Key": "Name", "Value": "SampleVPC" } ] } }, "subnet08211208971298906": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "10.22.2.0/24", "AvailabilityZone": "ap-southeast-2a", "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "Web-1" } ] } }, "subnet0e0ed5fb7f7c29273": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "10.22.12.0/24", "AvailabilityZone": "ap-southeast-2c", "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "Web-3" } ] } }, "subnet0e57ed3564c6ee0b7": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "10.22.10.0/24", "AvailabilityZone": "ap-southeast-2c", "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "Public-3" } ] } }, "subnet0e62c34a812b74226": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "10.22.0.0/24", "AvailabilityZone": "ap-southeast-2a", "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "Public-1" } ] } }, "subnet0453eee2fa31e4b2e": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "10.22.8.0/24", "AvailabilityZone": "ap-southeast-2b", "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "App-2" } ] } }, "subnet0b0d8faf6e6beae2d": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "10.22.1.0/24", "AvailabilityZone": "ap-southeast-2a", "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "NAT-1" } ] } }, "subnet0f2da790711ffbb3b": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "10.22.5.0/24", "AvailabilityZone": "ap-southeast-2b", "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "Public-2" } ] } }, "subnet0f88525d49526c302": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "10.22.13.0/24", "AvailabilityZone": "ap-southeast-2c", "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "App-3" } ] } }, "subnet0a234a67484d465ac": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "10.22.14.0/24", "AvailabilityZone": "ap-southeast-2c", "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "Data-3" } ] } }, "subnet0763e658bc3536b59": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "10.22.9.0/24", "AvailabilityZone": "ap-southeast-2b", "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "Data-2" } ] } }, "subnet09a772953c709d0a6": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "10.22.6.0/24", "AvailabilityZone": "ap-southeast-2b", "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "NAT-2" } ] } }, "subnet07a3ad9ebce841b87": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "10.22.4.0/24", "AvailabilityZone": "ap-southeast-2a", "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "Data-1" } ] } }, "subnet0f4b780fdca433da5": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "10.22.7.0/24", "AvailabilityZone": "ap-southeast-2b", "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "Web-2" } ] } }, "subnet05e6fe319d522ec7e": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "10.22.3.0/24", "AvailabilityZone": "ap-southeast-2a", "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "App-1" } ] } }, "subnet0737753cb795b3dc6": { "Type": "AWS::EC2::Subnet", "Properties": { "CidrBlock": "10.22.11.0/24", "AvailabilityZone": "ap-southeast-2c", "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "NAT-3" } ] } }, "igw0356f970a2bc6cc06": { "Type": "AWS::EC2::InternetGateway", "Properties": { "Tags": [ { "Key": "Name", "Value": "ZIGW" } ] } }, "doptb2f3b2d5": { "Type": "AWS::EC2::DHCPOptions", "Properties": { "DomainName": "ap-southeast-2.compute.internal", "DomainNameServers": [ "AmazonProvidedDNS" ] } }, "acl0046ab3d9eaec62da": { "Type": "AWS::EC2::NetworkAcl", "Properties": { "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" } } }, "rtb07d6510351805bf28": { "Type": "AWS::EC2::RouteTable", "Properties": { "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "ZVPC-AZ2" } ] } }, "rtb03d3594b759f0d423": { "Type": "AWS::EC2::RouteTable", "Properties": { "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "ZVPC-AZ3" } ] } }, "rtb017a472d2d8d61ce5": { "Type": "AWS::EC2::RouteTable", "Properties": { "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "ZVPC-Public" } ] } }, "rtb0d46463a6ab971e4f": { "Type": "AWS::EC2::RouteTable", "Properties": { "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "Tags": [ { "Key": "Name", "Value": "ZVPC-AZ1" } ] } }, "rtb0944f43d86c016a02": { "Type": "AWS::EC2::RouteTable", "Properties": { "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" } } }, "acl1": { "Type": "AWS::EC2::NetworkAclEntry", "Properties": { "CidrBlock": "0.0.0.0/0", "Egress": "true", "Protocol": "-1", "RuleAction": "allow", "RuleNumber": "100", "NetworkAclId": { "Ref": "acl0046ab3d9eaec62da" } } }, "acl2": { "Type": "AWS::EC2::NetworkAclEntry", "Properties": { "CidrBlock": "0.0.0.0/0", "Protocol": "-1", "RuleAction": "allow", "RuleNumber": "100", "NetworkAclId": { "Ref": "acl0046ab3d9eaec62da" } } }, "subnetacl1": { "Type": "AWS::EC2::SubnetNetworkAclAssociation", "Properties": { "NetworkAclId": { "Ref": "acl0046ab3d9eaec62da" }, "SubnetId": { "Ref": "subnet0453eee2fa31e4b2e" } } }, "subnetacl2": { "Type": "AWS::EC2::SubnetNetworkAclAssociation", "Properties": { "NetworkAclId": { "Ref": "acl0046ab3d9eaec62da" }, "SubnetId": { "Ref": "subnet09a772953c709d0a6" } } }, "subnetacl3": { "Type": "AWS::EC2::SubnetNetworkAclAssociation", "Properties": { "NetworkAclId": { "Ref": "acl0046ab3d9eaec62da" }, "SubnetId": { "Ref": "subnet0737753cb795b3dc6" } } }, "subnetacl4": { "Type": "AWS::EC2::SubnetNetworkAclAssociation", "Properties": { "NetworkAclId": { "Ref": "acl0046ab3d9eaec62da" }, "SubnetId": { "Ref": "subnet0a234a67484d465ac" } } }, "subnetacl5": { "Type": "AWS::EC2::SubnetNetworkAclAssociation", "Properties": { "NetworkAclId": { "Ref": "acl0046ab3d9eaec62da" }, "SubnetId": { "Ref": "subnet0f4b780fdca433da5" } } }, "subnetacl6": { "Type": "AWS::EC2::SubnetNetworkAclAssociation", "Properties": { "NetworkAclId": { "Ref": "acl0046ab3d9eaec62da" }, "SubnetId": { "Ref": "subnet08211208971298906" } } }, "subnetacl7": { "Type": "AWS::EC2::SubnetNetworkAclAssociation", "Properties": { "NetworkAclId": { "Ref": "acl0046ab3d9eaec62da" }, "SubnetId": { "Ref": "subnet07a3ad9ebce841b87" } } }, "subnetacl8": { "Type": "AWS::EC2::SubnetNetworkAclAssociation", "Properties": { "NetworkAclId": { "Ref": "acl0046ab3d9eaec62da" }, "SubnetId": { "Ref": "subnet0b0d8faf6e6beae2d" } } }, "subnetacl9": { "Type": "AWS::EC2::SubnetNetworkAclAssociation", "Properties": { "NetworkAclId": { "Ref": "acl0046ab3d9eaec62da" }, "SubnetId": { "Ref": "subnet05e6fe319d522ec7e" } } }, "subnetacl10": { "Type": "AWS::EC2::SubnetNetworkAclAssociation", "Properties": { "NetworkAclId": { "Ref": "acl0046ab3d9eaec62da" }, "SubnetId": { "Ref": "subnet0f2da790711ffbb3b" } } }, "subnetacl11": { "Type": "AWS::EC2::SubnetNetworkAclAssociation", "Properties": { "NetworkAclId": { "Ref": "acl0046ab3d9eaec62da" }, "SubnetId": { "Ref": "subnet0e57ed3564c6ee0b7" } } }, "subnetacl12": { "Type": "AWS::EC2::SubnetNetworkAclAssociation", "Properties": { "NetworkAclId": { "Ref": "acl0046ab3d9eaec62da" }, "SubnetId": { "Ref": "subnet0763e658bc3536b59" } } }, "subnetacl13": { "Type": "AWS::EC2::SubnetNetworkAclAssociation", "Properties": { "NetworkAclId": { "Ref": "acl0046ab3d9eaec62da" }, "SubnetId": { "Ref": "subnet0e62c34a812b74226" } } }, "subnetacl14": { "Type": "AWS::EC2::SubnetNetworkAclAssociation", "Properties": { "NetworkAclId": { "Ref": "acl0046ab3d9eaec62da" }, "SubnetId": { "Ref": "subnet0f88525d49526c302" } } }, "subnetacl15": { "Type": "AWS::EC2::SubnetNetworkAclAssociation", "Properties": { "NetworkAclId": { "Ref": "acl0046ab3d9eaec62da" }, "SubnetId": { "Ref": "subnet0e0ed5fb7f7c29273" } } }, "gw1": { "Type": "AWS::EC2::VPCGatewayAttachment", "Properties": { "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "InternetGatewayId": { "Ref": "igw0356f970a2bc6cc06" } } }, "subnetroute1": { "Type": "AWS::EC2::SubnetRouteTableAssociation", "Properties": { "RouteTableId": { "Ref": "rtb07d6510351805bf28" }, "SubnetId": { "Ref": "subnet09a772953c709d0a6" } } }, "subnetroute2": { "Type": "AWS::EC2::SubnetRouteTableAssociation", "Properties": { "RouteTableId": { "Ref": "rtb03d3594b759f0d423" }, "SubnetId": { "Ref": "subnet0737753cb795b3dc6" } } }, "subnetroute3": { "Type": "AWS::EC2::SubnetRouteTableAssociation", "Properties": { "RouteTableId": { "Ref": "rtb017a472d2d8d61ce5" }, "SubnetId": { "Ref": "subnet0e62c34a812b74226" } } }, "subnetroute4": { "Type": "AWS::EC2::SubnetRouteTableAssociation", "Properties": { "RouteTableId": { "Ref": "rtb017a472d2d8d61ce5" }, "SubnetId": { "Ref": "subnet0f2da790711ffbb3b" } } }, "subnetroute5": { "Type": "AWS::EC2::SubnetRouteTableAssociation", "Properties": { "RouteTableId": { "Ref": "rtb017a472d2d8d61ce5" }, "SubnetId": { "Ref": "subnet0e57ed3564c6ee0b7" } } }, "subnetroute6": { "Type": "AWS::EC2::SubnetRouteTableAssociation", "Properties": { "RouteTableId": { "Ref": "rtb0d46463a6ab971e4f" }, "SubnetId": { "Ref": "subnet0b0d8faf6e6beae2d" } } }, "subnetroute7": { "Type": "AWS::EC2::SubnetRouteTableAssociation", "Properties": { "RouteTableId": { "Ref": "rtb0944f43d86c016a02" }, "SubnetId": { "Ref": "subnet0453eee2fa31e4b2e" } } }, "subnetroute8": { "Type": "AWS::EC2::SubnetRouteTableAssociation", "Properties": { "RouteTableId": { "Ref": "rtb0944f43d86c016a02" }, "SubnetId": { "Ref": "subnet0e0ed5fb7f7c29273" } } }, "subnetroute9": { "Type": "AWS::EC2::SubnetRouteTableAssociation", "Properties": { "RouteTableId": { "Ref": "rtb0944f43d86c016a02" }, "SubnetId": { "Ref": "subnet0a234a67484d465ac" } } }, "subnetroute10": { "Type": "AWS::EC2::SubnetRouteTableAssociation", "Properties": { "RouteTableId": { "Ref": "rtb0944f43d86c016a02" }, "SubnetId": { "Ref": "subnet08211208971298906" } } }, "subnetroute11": { "Type": "AWS::EC2::SubnetRouteTableAssociation", "Properties": { "RouteTableId": { "Ref": "rtb0944f43d86c016a02" }, "SubnetId": { "Ref": "subnet05e6fe319d522ec7e" } } }, "subnetroute12": { "Type": "AWS::EC2::SubnetRouteTableAssociation", "Properties": { "RouteTableId": { "Ref": "rtb0944f43d86c016a02" }, "SubnetId": { "Ref": "subnet0763e658bc3536b59" } } }, "subnetroute13": { "Type": "AWS::EC2::SubnetRouteTableAssociation", "Properties": { "RouteTableId": { "Ref": "rtb0944f43d86c016a02" }, "SubnetId": { "Ref": "subnet0f4b780fdca433da5" } } }, "subnetroute14": { "Type": "AWS::EC2::SubnetRouteTableAssociation", "Properties": { "RouteTableId": { "Ref": "rtb0944f43d86c016a02" }, "SubnetId": { "Ref": "subnet07a3ad9ebce841b87" } } }, "subnetroute16": { "Type": "AWS::EC2::SubnetRouteTableAssociation", "Properties": { "RouteTableId": { "Ref": "rtb0944f43d86c016a02" }, "SubnetId": { "Ref": "subnet0f88525d49526c302" } } }, "route1": { "Type": "AWS::EC2::Route", "Properties": { "DestinationCidrBlock": "0.0.0.0/0", "RouteTableId": { "Ref": "rtb07d6510351805bf28" } } }, "route2": { "Type": "AWS::EC2::Route", "Properties": { "DestinationCidrBlock": "0.0.0.0/0", "RouteTableId": { "Ref": "rtb03d3594b759f0d423" } } }, "route3": { "Type": "AWS::EC2::Route", "Properties": { "DestinationCidrBlock": "0.0.0.0/0", "RouteTableId": { "Ref": "rtb017a472d2d8d61ce5" }, "GatewayId": { "Ref": "igw0356f970a2bc6cc06" } }, "DependsOn": "gw1" }, "route4": { "Type": "AWS::EC2::Route", "Properties": { "DestinationCidrBlock": "0.0.0.0/0", "RouteTableId": { "Ref": "rtb0d46463a6ab971e4f" } } }, "dchpassoc1": { "Type": "AWS::EC2::VPCDHCPOptionsAssociation", "Properties": { "VpcId": { "Ref": "vpc0a20ebcd5ad0afcc3" }, "DhcpOptionsId": { "Ref": "doptb2f3b2d5" } } } }, "Description": "Zoran's VPC pattern template" }
https://github.com/keithsharp/cloudformation-templates/blob/master/vpc-template.yaml
No comments:
Post a Comment