Created
February 11, 2019 12:42
-
-
Save w-/c756c672504e45e2b09c6e729bbf8c48 to your computer and use it in GitHub Desktop.
Cloudformation for a VPC with 2 public subnets
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
AWSTemplateFormatVersion: 2010-09-09 | |
Description: W Workshop VPC example. | |
Resources: | |
VPC: | |
Type: AWS::EC2::VPC | |
Properties: | |
CidrBlock: 10.0.0.0/16 | |
EnableDnsHostnames: true | |
Tags: | |
- Key: Name | |
Value: W Workshop VPC | |
InternetGateway: | |
Type: AWS::EC2::InternetGateway | |
Properties: | |
Tags: | |
- Key: Name | |
Value: W Workshop Internet Gateway | |
AttachGateway: | |
Type: AWS::EC2::VPCGatewayAttachment | |
Properties: | |
VpcId: !Ref VPC | |
InternetGatewayId: !Ref InternetGateway | |
PublicSubnet1: | |
Type: AWS::EC2::Subnet | |
Properties: | |
VpcId: !Ref VPC | |
CidrBlock: 10.0.1.0/24 | |
AvailabilityZone: !Select | |
- '0' | |
- !GetAZs '' | |
Tags: | |
- Key: Name | |
Value: Public Subnet 1 | |
PublicSubnet2: | |
Type: AWS::EC2::Subnet | |
Properties: | |
VpcId: !Ref VPC | |
CidrBlock: 10.0.2.0/24 | |
AvailabilityZone: !Select | |
- '1' | |
- !GetAZs '' | |
Tags: | |
- Key: Name | |
Value: Public Subnet 2 | |
PrivateSubnet1: | |
Type: AWS::EC2::Subnet | |
Properties: | |
VpcId: !Ref VPC | |
CidrBlock: 10.0.3.0/24 | |
AvailabilityZone: !Select | |
- '0' | |
- !GetAZs '' | |
Tags: | |
- Key: Name | |
Value: Private Subnet 1 | |
PrivateSubnet2: | |
Type: AWS::EC2::Subnet | |
Properties: | |
VpcId: !Ref VPC | |
CidrBlock: 10.0.4.0/24 | |
AvailabilityZone: !Select | |
- '1' | |
- !GetAZs '' | |
Tags: | |
- Key: Name | |
Value: Private Subnet 2 | |
DBSubnet1: | |
Type: AWS::EC2::Subnet | |
Properties: | |
VpcId: !Ref VPC | |
CidrBlock: 10.0.5.0/24 | |
AvailabilityZone: !Select | |
- '0' | |
- !GetAZs '' | |
Tags: | |
- Key: Name | |
Value: DB Subnet 1 | |
DBSubnet2: | |
Type: AWS::EC2::Subnet | |
Properties: | |
VpcId: !Ref VPC | |
CidrBlock: 10.0.6.0/24 | |
AvailabilityZone: !Select | |
- '1' | |
- !GetAZs '' | |
Tags: | |
- Key: Name | |
Value: DB Subnet 2 | |
PublicRouteTable: | |
Type: AWS::EC2::RouteTable | |
Properties: | |
VpcId: !Ref VPC | |
Tags: | |
- Key: Name | |
Value: Public Route Table | |
PublicRoute: | |
Type: AWS::EC2::Route | |
Properties: | |
RouteTableId: !Ref PublicRouteTable | |
DestinationCidrBlock: 0.0.0.0/0 | |
GatewayId: !Ref InternetGateway | |
PublicSubnetRouteTableAssociation1: | |
Type: AWS::EC2::SubnetRouteTableAssociation | |
Properties: | |
SubnetId: !Ref PublicSubnet1 | |
RouteTableId: !Ref PublicRouteTable | |
PublicSubnetRouteTableAssociation2: | |
Type: AWS::EC2::SubnetRouteTableAssociation | |
Properties: | |
SubnetId: !Ref PublicSubnet2 | |
RouteTableId: !Ref PublicRouteTable | |
PrivateRouteTable: | |
Type: AWS::EC2::RouteTable | |
Properties: | |
VpcId: !Ref VPC | |
Tags: | |
- Key: Name | |
Value: Private Route Table | |
PrivateSubnetRouteTableAssociation1: | |
Type: AWS::EC2::SubnetRouteTableAssociation | |
Properties: | |
SubnetId: !Ref PrivateSubnet1 | |
RouteTableId: !Ref PrivateRouteTable | |
PrivateSubnetRouteTableAssociation2: | |
Type: AWS::EC2::SubnetRouteTableAssociation | |
Properties: | |
SubnetId: !Ref PrivateSubnet2 | |
RouteTableId: !Ref PrivateRouteTable | |
DBSubnetRouteTableAssociation1: | |
Type: AWS::EC2::SubnetRouteTableAssociation | |
Properties: | |
SubnetId: !Ref DBSubnet1 | |
RouteTableId: !Ref PrivateRouteTable | |
DBSubnetRouteTableAssociation2: | |
Type: AWS::EC2::SubnetRouteTableAssociation | |
Properties: | |
SubnetId: !Ref DBSubnet2 | |
RouteTableId: !Ref PrivateRouteTable | |
NATInstanceSecurityGroup: | |
Type: AWS::EC2::SecurityGroup | |
Properties: | |
GroupDescription: W Workshop NAT Security Group | |
VpcId: | |
Ref: !Ref VPC | |
SecurityGroupIngress: | |
- IpProtocol: tcp | |
FromPort: 80 | |
ToPort: 80 | |
CidrIp: 10.0.1.0/24 | |
- IpProtocol: tcp | |
FromPort: 443 | |
ToPort: 443 | |
CidrIp: 10.0.1.0/24 | |
- IpProtocol: tcp | |
FromPort: 80 | |
ToPort: 80 | |
CidrIp: 10.0.2.0/24 | |
- IpProtocol: tcp | |
FromPort: 443 | |
ToPort: 443 | |
CidrIp: 10.0.2.0/24 | |
- IpProtocol: tcp | |
FromPort: 22 | |
ToPort: 22 | |
CidrIp: 0.0.0.0/0 | |
Description: SSH For ALL | |
SecurityGroupEgress: | |
- IpProtocol: tcp | |
FromPort: 80 | |
ToPort: 80 | |
CidrIp: 0.0.0.0/0 | |
- IpProtocol: tcp | |
FromPort: 443 | |
ToPort: 443 | |
CidrIp: 0.0.0.0/0 | |
Outputs: | |
VPC: | |
Description: VPC | |
Value: !Ref VPC | |
AZ1: | |
Description: Availability Zone 1 | |
Value: !GetAtt | |
- PublicSubnet1 | |
- AvailabilityZone | |
AZ2: | |
Description: Availability Zone 2 | |
Value: !GetAtt | |
- PublicSubnet2 | |
- AvailabilityZone |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment