Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Parameters:
- EnvironmentName:
- Description: An environment name that will be prefixed to resource names
- Type: String
- VpcCIDR:
- Description: Please enter the IP range (CIDR notation) for this VPC
- Type: String
- Default: 10.0.0.0/16
- PublicSubnet1CIDR:
- Description: Please enter the IP range (CIDR notation) for the public subnet in the first Availability Zone
- Type: String
- Default: 10.0.0.0/18
- PrivateSubnet1CIDR:
- Description: Please enter the IP range (CIDR notation) for the private subnet in the first Availability Zone
- Type: String
- Default: 10.0.128.0/18
- PublicSubnet2CIDR:
- Description: Please enter the IP range (CIDR notation) for the public subnet in the second Availability Zone
- Type: String
- Default: 10.0.64.0/18
- PrivateSubnet2CIDR:
- Description: Please enter the IP range (CIDR notation) for the private subnet in the second Availability Zone
- Type: String
- Default: 10.0.192.0/18
- Resources:
- VPC:
- Type: AWS::EC2::VPC
- Properties:
- CidrBlock: !Ref VpcCIDR
- EnableDnsHostnames: true
- EnableDnsSupport: true
- InstanceTenancy: default
- Tags:
- - Key: Name
- Value: !Sub ${EnvironmentName} VPC
- PublicSubnet1:
- Type: AWS::EC2::Subnet
- Properties:
- VpcId: !Ref VPC
- AvailabilityZone:
- Fn::Select:
- - 0
- - Fn::GetAZs: ''
- CidrBlock: !Ref PublicSubnet1CIDR
- MapPublicIpOnLaunch: true
- Tags:
- - Key: Name
- Value: !Sub ${EnvironmentName} Public Subnet (AZ1)
- PrivateSubnet1:
- Type: AWS::EC2::Subnet
- Properties:
- VpcId: !Ref VPC
- AvailabilityZone:
- Fn::Select:
- - 0
- - Fn::GetAZs: ''
- CidrBlock: !Ref PrivateSubnet1CIDR
- MapPublicIpOnLaunch: false
- Tags:
- - Key: Name
- Value: !Sub ${EnvironmentName} Private Subnet (AZ1)
- PublicSubnet2:
- Type: AWS::EC2::Subnet
- Properties:
- VpcId: !Ref VPC
- AvailabilityZone:
- Fn::Select:
- - 1
- - Fn::GetAZs: ''
- CidrBlock: !Ref PublicSubnet2CIDR
- MapPublicIpOnLaunch: true
- Tags:
- - Key: Name
- Value: !Sub ${EnvironmentName} Public Subnet (AZ2)
- PrivateSubnet2:
- Type: AWS::EC2::Subnet
- Properties:
- VpcId: !Ref VPC
- AvailabilityZone:
- Fn::Select:
- - 1
- - Fn::GetAZs: ''
- CidrBlock: !Ref PrivateSubnet2CIDR
- MapPublicIpOnLaunch: false
- Tags:
- - Key: Name
- Value: !Sub ${EnvironmentName} Private Subnet (AZ2)
- InternetGateway:
- Type: AWS::EC2::InternetGateway
- Properties:
- Tags:
- - Key: Name
- Value: !Sub ${EnvironmentName} Internet Gateway
- VPCToInternetGateway:
- Type: AWS::EC2::VPCGatewayAttachment
- Properties:
- VpcId: !Ref VPC
- InternetGatewayId: !Ref InternetGateway
- PublicRouteTable:
- Type: AWS::EC2::RouteTable
- Properties:
- VpcId: !Ref VPC
- Tags:
- - Key: Network
- Value: Public
- - Key: Name
- Value: !Sub ${EnvironmentName} Public Route Table
- PublicRoute:
- Type: AWS::EC2::Route
- DependsOn: VPCToInternetGateway
- Properties:
- RouteTableId: !Ref PublicRouteTable
- DestinationCidrBlock: 0.0.0.0/0
- GatewayId: !Ref InternetGateway
- PublicSubnet1RouteTableAssociation:
- Type: AWS::EC2::SubnetRouteTableAssociation
- Properties:
- SubnetId: !Ref PublicSubnet1
- RouteTableId: !Ref PublicRouteTable
- PublicSubnet2RouteTableAssociation:
- Type: AWS::EC2::SubnetRouteTableAssociation
- Properties:
- SubnetId: !Ref PublicSubnet2
- RouteTableId: !Ref PublicRouteTable
- NatPublicEIP:
- Type: AWS::EC2::EIP
- DependsOn: VPCToInternetGateway
- Properties:
- Domain: vpc
- NatGateway:
- Type: AWS::EC2::NatGateway
- DependsOn: NatPublicEIP
- Properties:
- AllocationId: !GetAtt NatPublicEIP.AllocationId
- SubnetId: !Ref PublicSubnet1
- PrivateRouteTable:
- Type: AWS::EC2::RouteTable
- Properties:
- VpcId: !Ref VPC
- Tags:
- - Key: Network
- Value: Private
- - Key: Name
- Value: !Sub ${EnvironmentName} Private Route Table
- PrivateRoute:
- Type: AWS::EC2::Route
- Properties:
- RouteTableId: !Ref PrivateRouteTable
- DestinationCidrBlock: 0.0.0.0/0
- NatGatewayId: !Ref NatGateway
- PrivateSubnet1RouteTableAssociation:
- Type: AWS::EC2::SubnetRouteTableAssociation
- Properties:
- SubnetId: !Ref PrivateSubnet1
- RouteTableId: !Ref PrivateRouteTable
- PrivateSubnet2RouteTableAssociation:
- Type: AWS::EC2::SubnetRouteTableAssociation
- Properties:
- SubnetId: !Ref PrivateSubnet2
- RouteTableId: !Ref PrivateRouteTable
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement