Last active
October 4, 2022 20:20
-
-
Save sestok/4e705b7aae798d6fd092244f9bbf6a6d to your computer and use it in GitHub Desktop.
This file contains 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" | |
Resources: | |
VPC: | |
Type: AWS::EC2::VPC | |
Properties: | |
CidrBlock: 10.0.0.0/16 | |
EnableDnsHostnames: true | |
Tags: | |
- Key: Name | |
Value: !Sub 'VPC - ${AWS::StackName}' | |
InternetGateway: | |
Type: AWS::EC2::InternetGateway | |
Properties: | |
Tags: | |
- Key: Name | |
Value: !Sub 'IGW - ${AWS::StackName}' | |
AttachGateway: | |
Type: AWS::EC2::VPCGatewayAttachment | |
Properties: | |
VpcId: !Ref VPC | |
InternetGatewayId: !Ref InternetGateway | |
PublicSubnet1: | |
Type: AWS::EC2::Subnet | |
Properties: | |
VpcId: !Ref VPC | |
CidrBlock: 10.0.0.0/24 | |
MapPublicIpOnLaunch: true | |
AvailabilityZone: !Select | |
- 0 | |
- !GetAZs | |
Ref: 'AWS::Region' | |
Tags: | |
- Key: Name | |
Value: !Sub 'Public Subnet 1 - ${AWS::StackName}' | |
PublicSubnet2: | |
Type: AWS::EC2::Subnet | |
Properties: | |
VpcId: !Ref VPC | |
CidrBlock: 10.0.1.0/24 | |
MapPublicIpOnLaunch: true | |
AvailabilityZone: !Select | |
- 1 | |
- !GetAZs | |
Ref: 'AWS::Region' | |
Tags: | |
- Key: Name | |
Value: !Sub 'Public Subnet 2 - ${AWS::StackName}' | |
PrivateSubnet1: | |
Type: AWS::EC2::Subnet | |
Properties: | |
VpcId: !Ref VPC | |
CidrBlock: 10.0.2.0/24 | |
MapPublicIpOnLaunch: false | |
AvailabilityZone: !Select | |
- 0 | |
- !GetAZs | |
Ref: 'AWS::Region' | |
Tags: | |
- Key: Name | |
Value: !Sub 'Private Subnet 1 - ${AWS::StackName}' | |
PrivateSubnet2: | |
Type: AWS::EC2::Subnet | |
Properties: | |
VpcId: !Ref VPC | |
CidrBlock: 10.0.3.0/24 | |
MapPublicIpOnLaunch: false | |
AvailabilityZone: !Select | |
- 1 | |
- !GetAZs | |
Ref: 'AWS::Region' | |
Tags: | |
- Key: Name | |
Value: !Sub 'Private Subnet 2 - ${AWS::StackName}' | |
NatGateway1EIP: | |
Type: AWS::EC2::EIP | |
DependsOn: AttachGateway | |
Properties: | |
Domain: vpc | |
NatGateway2EIP: | |
Type: AWS::EC2::EIP | |
DependsOn: AttachGateway | |
Properties: | |
Domain: vpc | |
NatGateway1: | |
Type: AWS::EC2::NatGateway | |
Properties: | |
AllocationId: !GetAtt NatGateway1EIP.AllocationId | |
SubnetId: !Ref PublicSubnet1 | |
NatGateway2: | |
Type: AWS::EC2::NatGateway | |
Properties: | |
AllocationId: !GetAtt NatGateway2EIP.AllocationId | |
SubnetId: !Ref PublicSubnet2 | |
PublicRouteTable: | |
Type: AWS::EC2::RouteTable | |
Properties: | |
VpcId: !Ref VPC | |
Tags: | |
- Key: Name | |
Value: !Sub 'Public Route Table - ${AWS::StackName}' | |
PublicRouteTableEntry: | |
Type: AWS::EC2::Route | |
DependsOn: AttachGateway | |
Properties: | |
RouteTableId: !Ref PublicRouteTable | |
DestinationCidrBlock: 0.0.0.0/0 | |
GatewayId: !Ref InternetGateway | |
PublicRouteTableSubnetAssociation1: | |
Type: AWS::EC2::SubnetRouteTableAssociation | |
Properties: | |
SubnetId: !Ref PublicSubnet1 | |
RouteTableId: !Ref PublicRouteTable | |
PublicRouteTableSubnetAssociation2: | |
Type: AWS::EC2::SubnetRouteTableAssociation | |
Properties: | |
SubnetId: !Ref PublicSubnet2 | |
RouteTableId: !Ref PublicRouteTable | |
PrivateRouteTable1: | |
Type: AWS::EC2::RouteTable | |
Properties: | |
VpcId: !Ref VPC | |
Tags: | |
- Key: Name | |
Value: !Sub 'Private Route Table 1 - ${AWS::StackName}' | |
DefaultPrivateRoute1: | |
Type: AWS::EC2::Route | |
Properties: | |
RouteTableId: !Ref PrivateRouteTable1 | |
DestinationCidrBlock: 0.0.0.0/0 | |
NatGatewayId: !Ref NatGateway1 | |
PrivateSubnet1RouteTableAssociation: | |
Type: AWS::EC2::SubnetRouteTableAssociation | |
Properties: | |
RouteTableId: !Ref PrivateRouteTable1 | |
SubnetId: !Ref PrivateSubnet1 | |
PrivateRouteTable2: | |
Type: AWS::EC2::RouteTable | |
Properties: | |
VpcId: !Ref VPC | |
Tags: | |
- Key: Name | |
Value: !Sub 'Private Route Table 2 - ${AWS::StackName}' | |
DefaultPrivateRoute2: | |
Type: AWS::EC2::Route | |
Properties: | |
RouteTableId: !Ref PrivateRouteTable2 | |
DestinationCidrBlock: 0.0.0.0/0 | |
NatGatewayId: !Ref NatGateway2 | |
PrivateSubnet2RouteTableAssociation: | |
Type: AWS::EC2::SubnetRouteTableAssociation | |
Properties: | |
RouteTableId: !Ref PrivateRouteTable2 | |
SubnetId: !Ref PrivateSubnet2 | |
Outputs: | |
CIDRVPC: | |
Value: !GetAtt VPC.CidrBlock | |
PublicSubnet1: | |
Value: !Ref PublicSubnet1 | |
PublicSubnet2: | |
Value: !Ref PublicSubnet2 | |
PrivateSubnet1: | |
Value: !Ref PrivateSubnet1 | |
PrivateSubnet2: | |
Value: !Ref PrivateSubnet2 | |
VPC: | |
Value: !Ref VPC |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment