mirror of
https://github.com/DOI-DO/j40-cejst-2.git
synced 2025-02-23 10:04:18 -08:00
131 lines
No EOL
3.4 KiB
YAML
131 lines
No EOL
3.4 KiB
YAML
Resources:
|
||
Justice40VPC:
|
||
Type: AWS::EC2::VPC
|
||
Properties:
|
||
EnableDnsSupport: true
|
||
EnableDnsHostnames: true
|
||
CidrBlock: '10.0.0.0/16'
|
||
Tags:
|
||
- Key: Stage
|
||
Value: ${self:provider.stage}
|
||
- Key: Name
|
||
Value: ${self:provider.stage}-vpc
|
||
|
||
PublicSubnet:
|
||
Type: AWS::EC2::Subnet
|
||
Properties:
|
||
AvailabilityZone: us-east-1a
|
||
VpcId: !Ref Justice40VPC
|
||
CidrBlock: '10.0.1.0/24'
|
||
MapPublicIpOnLaunch: true
|
||
Tags:
|
||
- Key: Stage
|
||
Value: ${self:provider.stage}
|
||
- Key: Name
|
||
Value: ${self:provider.stage}-vpc-public-subnet
|
||
|
||
PrivateSubnet:
|
||
Type: AWS::EC2::Subnet
|
||
Properties:
|
||
AvailabilityZone: us-east-1a
|
||
VpcId: !Ref Justice40VPC
|
||
CidrBlock: '10.0.2.0/24'
|
||
MapPublicIpOnLaunch: false
|
||
Tags:
|
||
- Key: Stage
|
||
Value: ${self:provider.stage}
|
||
- Key: Name
|
||
Value: ${self:provider.stage}-vpc-private-subnet
|
||
|
||
# Create an Internet Gateway for the public subnet and a NAT gateway for
|
||
# the private subnet
|
||
InternetGateway:
|
||
Type: AWS::EC2::InternetGateway
|
||
Properties:
|
||
Tags:
|
||
- Key: Stage
|
||
Value: ${self:provider.stage}
|
||
- Key: Name
|
||
Value: ${self:provider.stage}-vpc-internet-gateway
|
||
|
||
GatewayAttachement:
|
||
Type: AWS::EC2::VPCGatewayAttachment
|
||
Properties:
|
||
VpcId: !Ref Justice40VPC
|
||
InternetGatewayId: !Ref InternetGateway
|
||
|
||
PublicRouteTable:
|
||
Type: AWS::EC2::RouteTable
|
||
Properties:
|
||
VpcId: !Ref Justice40VPC
|
||
Tags:
|
||
- Key: Stage
|
||
Value: ${self:provider.stage}
|
||
- Key: Name
|
||
Value: ${self:provider.stage}-vpc-public-route-table-internet-gateway
|
||
|
||
PublicRoute:
|
||
Type: AWS::EC2::Route
|
||
DependsOn: GatewayAttachement
|
||
Properties:
|
||
RouteTableId: !Ref PublicRouteTable
|
||
DestinationCidrBlock: '0.0.0.0/0'
|
||
GatewayId: !Ref InternetGateway
|
||
|
||
PublicSubnetRouteTableAssociation:
|
||
Type: AWS::EC2::SubnetRouteTableAssociation
|
||
Properties:
|
||
SubnetId: !Ref PublicSubnet
|
||
RouteTableId: !Ref PublicRouteTable
|
||
|
||
# NAT gateway
|
||
NatGateway:
|
||
Type: AWS::EC2::NatGateway
|
||
DependsOn:
|
||
- GatewayAttachement
|
||
Properties:
|
||
AllocationId:
|
||
Fn::GetAtt: [ EIP, AllocationId ]
|
||
SubnetId: !Ref PublicSubnet
|
||
Tags:
|
||
- Key: Stage
|
||
Value: ${self:provider.stage}
|
||
- Key: Name
|
||
Value: ${self:provider.stage}-vpc-nat-gateway
|
||
|
||
EIP:
|
||
Type: AWS::EC2::EIP
|
||
DependsOn:
|
||
- GatewayAttachement
|
||
Properties:
|
||
Domain: vpc
|
||
Tags:
|
||
- Key: Stage
|
||
Value: ${self:provider.stage}
|
||
- Key: Name
|
||
Value: ${self:provider.stage}-vpc-eip-nat-gateway
|
||
|
||
PrivateRouteTableNATGateway:
|
||
Type: AWS::EC2::RouteTable
|
||
Properties:
|
||
VpcId: !Ref Justice40VPC
|
||
Tags:
|
||
- Key: Stage
|
||
Value: ${self:provider.stage}
|
||
- Key: Name
|
||
Value: ${self:provider.stage}-vpc-private-route-table-nat-gateway
|
||
|
||
PrivateRouteNATGateway:
|
||
Type: AWS::EC2::Route
|
||
DependsOn:
|
||
- GatewayAttachement
|
||
Properties:
|
||
RouteTableId: !Ref PrivateRouteTableNATGateway
|
||
DestinationCidrBlock: '0.0.0.0/0'
|
||
NatGatewayId: !Ref NatGateway
|
||
|
||
PrivateSubnetNATGatewayRouteTableAssociation:
|
||
Type: AWS::EC2::SubnetRouteTableAssociation
|
||
Properties:
|
||
SubnetId: !Ref PrivateSubnet
|
||
RouteTableId: !Ref PrivateRouteTableNATGateway |