Upload files to "/"
This commit is contained in:
parent
b0ead18140
commit
b6328c2421
|
@ -0,0 +1,314 @@
|
|||
AWSTemplateFormatVersion: '2010-09-09'
|
||||
Description: Lab7 Task 1 template which builds VPC, supporting resources, a basic networking structure, and some Security groups for use in later tasks.
|
||||
Parameters:
|
||||
VPCCIDR:
|
||||
Description: CIDR Block for VPC
|
||||
Type: String
|
||||
Default: 10.0.0.0/16
|
||||
AllowedValues:
|
||||
- 10.0.0.0/16
|
||||
PublicSubnet1Param:
|
||||
Description: Public Subnet 1
|
||||
Type: String
|
||||
Default: 10.0.0.0/24
|
||||
AllowedValues:
|
||||
- 10.0.0.0/24
|
||||
PublicSubnet2Param:
|
||||
Description: Public Subnet 2
|
||||
Type: String
|
||||
Default: 10.0.1.0/24
|
||||
AllowedValues:
|
||||
- 10.0.1.0/24
|
||||
AppSubnet1Param:
|
||||
Description: App Subnet 1
|
||||
Type: String
|
||||
Default: 10.0.2.0/24
|
||||
AllowedValues:
|
||||
- 10.0.2.0/24
|
||||
AppSubnet2Param:
|
||||
Description: App Subnet 2
|
||||
Type: String
|
||||
Default: 10.0.3.0/24
|
||||
AllowedValues:
|
||||
- 10.0.3.0/24
|
||||
DatabaseSubnet1Param:
|
||||
Description: Private Subnet 1
|
||||
Type: String
|
||||
Default: 10.0.4.0/24
|
||||
AllowedValues:
|
||||
- 10.0.4.0/24
|
||||
DatabaseSubnet2Param:
|
||||
Description: Private Subnet 2
|
||||
Type: String
|
||||
Default: 10.0.5.0/24
|
||||
AllowedValues:
|
||||
- 10.0.5.0/24
|
||||
Resources:
|
||||
LabVPC:
|
||||
Type: AWS::EC2::VPC
|
||||
Properties:
|
||||
CidrBlock: !Ref VPCCIDR
|
||||
EnableDnsSupport: true
|
||||
EnableDnsHostnames: true
|
||||
InstanceTenancy: default
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: LabVPC
|
||||
- Key: Env
|
||||
Value: devlab
|
||||
LabInternetGateway:
|
||||
Type: AWS::EC2::InternetGateway
|
||||
AttachGateway:
|
||||
Type: AWS::EC2::VPCGatewayAttachment
|
||||
Properties:
|
||||
VpcId: !Ref LabVPC
|
||||
InternetGatewayId: !Ref LabInternetGateway
|
||||
NATGateway1:
|
||||
Type: AWS::EC2::NatGateway
|
||||
Properties:
|
||||
AllocationId: !GetAtt ElasticIPAddress1.AllocationId
|
||||
SubnetId: !Ref PublicSubnet1
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: NATGateway1
|
||||
- Key: env
|
||||
Value: devlab
|
||||
ElasticIPAddress1:
|
||||
Type: AWS::EC2::EIP
|
||||
Properties:
|
||||
Domain: vpc
|
||||
Tags:
|
||||
- Key: env
|
||||
Value: devlab
|
||||
NATGateway2:
|
||||
Type: AWS::EC2::NatGateway
|
||||
Properties:
|
||||
AllocationId: !GetAtt ElasticIPAddress2.AllocationId
|
||||
SubnetId: !Ref PublicSubnet2
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: NATGateway2
|
||||
- Key: env
|
||||
Value: devlab
|
||||
ElasticIPAddress2:
|
||||
Type: AWS::EC2::EIP
|
||||
Properties:
|
||||
Domain: vpc
|
||||
Tags:
|
||||
- Key: env
|
||||
Value: devlab
|
||||
PublicSubnet1:
|
||||
Type: AWS::EC2::Subnet
|
||||
Properties:
|
||||
VpcId: !Ref LabVPC
|
||||
CidrBlock: !Ref PublicSubnet1Param
|
||||
MapPublicIpOnLaunch: true
|
||||
AvailabilityZone: !Select
|
||||
- '0'
|
||||
- !GetAZs ''
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: PublicSubnet1
|
||||
PublicSubnet2:
|
||||
Type: AWS::EC2::Subnet
|
||||
Properties:
|
||||
VpcId: !Ref LabVPC
|
||||
CidrBlock: !Ref PublicSubnet2Param
|
||||
MapPublicIpOnLaunch: true
|
||||
AvailabilityZone: !Select
|
||||
- '1'
|
||||
- !GetAZs ''
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: PublicSubnet2
|
||||
AppSubnet1:
|
||||
Type: AWS::EC2::Subnet
|
||||
Properties:
|
||||
VpcId: !Ref LabVPC
|
||||
CidrBlock: !Ref AppSubnet1Param
|
||||
MapPublicIpOnLaunch: false
|
||||
AvailabilityZone: !Select
|
||||
- '0'
|
||||
- !GetAZs ''
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: AppSubnet1
|
||||
AppSubnet2:
|
||||
Type: AWS::EC2::Subnet
|
||||
Properties:
|
||||
VpcId: !Ref LabVPC
|
||||
CidrBlock: !Ref AppSubnet2Param
|
||||
MapPublicIpOnLaunch: false
|
||||
AvailabilityZone: !Select
|
||||
- '1'
|
||||
- !GetAZs ''
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: AppSubnet2
|
||||
DatabaseSubnet1:
|
||||
Type: AWS::EC2::Subnet
|
||||
Properties:
|
||||
VpcId: !Ref LabVPC
|
||||
CidrBlock: !Ref DatabaseSubnet1Param
|
||||
MapPublicIpOnLaunch: false
|
||||
AvailabilityZone: !Select
|
||||
- '0'
|
||||
- !GetAZs ''
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: DatabaseSubnet1
|
||||
DatabaseSubnet2:
|
||||
Type: AWS::EC2::Subnet
|
||||
Properties:
|
||||
VpcId: !Ref LabVPC
|
||||
CidrBlock: !Ref DatabaseSubnet2Param
|
||||
MapPublicIpOnLaunch: false
|
||||
AvailabilityZone: !Select
|
||||
- '1'
|
||||
- !GetAZs ''
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: DatabaseSubnet2
|
||||
PublicRouteTable:
|
||||
Type: AWS::EC2::RouteTable
|
||||
Properties:
|
||||
VpcId: !Ref LabVPC
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: PublicRouteTable
|
||||
PrivateRouteTableAZ1:
|
||||
Type: AWS::EC2::RouteTable
|
||||
Properties:
|
||||
VpcId: !Ref LabVPC
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: PrivateRouteTableAZ1
|
||||
PrivateRouteTableAZ2:
|
||||
Type: AWS::EC2::RouteTable
|
||||
Properties:
|
||||
VpcId: !Ref LabVPC
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: PrivateRouteTableAZ2
|
||||
PublicRoute:
|
||||
Type: AWS::EC2::Route
|
||||
Properties:
|
||||
RouteTableId: !Ref PublicRouteTable
|
||||
DestinationCidrBlock: 0.0.0.0/0
|
||||
GatewayId: !Ref LabInternetGateway
|
||||
PrivateRouteAZ1:
|
||||
Type: AWS::EC2::Route
|
||||
Properties:
|
||||
RouteTableId: !Ref PrivateRouteTableAZ1
|
||||
DestinationCidrBlock: 0.0.0.0/0
|
||||
NatGatewayId: !Ref NATGateway1
|
||||
PrivateRouteAZ2:
|
||||
Type: AWS::EC2::Route
|
||||
Properties:
|
||||
RouteTableId: !Ref PrivateRouteTableAZ2
|
||||
DestinationCidrBlock: 0.0.0.0/0
|
||||
NatGatewayId: !Ref NATGateway2
|
||||
PublicSubnet1RouteTableAssociation:
|
||||
Type: AWS::EC2::SubnetRouteTableAssociation
|
||||
Properties:
|
||||
SubnetId: !Ref PublicSubnet1
|
||||
RouteTableId: !Ref PublicRouteTable
|
||||
PublicSubnet2RouteTableAssociation:
|
||||
Type: AWS::EC2::SubnetRouteTableAssociation
|
||||
Properties:
|
||||
SubnetId: !Ref PublicSubnet2
|
||||
RouteTableId: !Ref PublicRouteTable
|
||||
AppSubnet1RouteTableAssociation:
|
||||
Type: AWS::EC2::SubnetRouteTableAssociation
|
||||
Properties:
|
||||
SubnetId: !Ref AppSubnet1
|
||||
RouteTableId: !Ref PrivateRouteTableAZ1
|
||||
AppSubnet2RouteTableAssociation:
|
||||
Type: AWS::EC2::SubnetRouteTableAssociation
|
||||
Properties:
|
||||
SubnetId: !Ref AppSubnet2
|
||||
RouteTableId: !Ref PrivateRouteTableAZ2
|
||||
DatabaseSubnet1RouteTableAssociation:
|
||||
Type: AWS::EC2::SubnetRouteTableAssociation
|
||||
Properties:
|
||||
SubnetId: !Ref DatabaseSubnet1
|
||||
RouteTableId: !Ref PrivateRouteTableAZ1
|
||||
DatabaseSubnet2RouteTableAssociation:
|
||||
Type: AWS::EC2::SubnetRouteTableAssociation
|
||||
Properties:
|
||||
SubnetId: !Ref DatabaseSubnet2
|
||||
RouteTableId: !Ref PrivateRouteTableAZ2
|
||||
AppInstanceSecurityGroup:
|
||||
Type: AWS::EC2::SecurityGroup
|
||||
Properties:
|
||||
GroupDescription: Security Group allowing HTTP traffic for lab instances
|
||||
VpcId: !Ref LabVPC
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: AppInstanceSecurityGroup
|
||||
SecurityGroupIngress:
|
||||
- IpProtocol: tcp
|
||||
FromPort: 80
|
||||
ToPort: 80
|
||||
CidrIp: 0.0.0.0/0
|
||||
RDSSecurityGroup:
|
||||
Type: AWS::EC2::SecurityGroup
|
||||
Properties:
|
||||
GroupDescription: Security Group allowing RDS instances to have internet traffic
|
||||
VpcId: !Ref LabVPC
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: RDSSecurityGroup
|
||||
EFSMountTargetSecurityGroup:
|
||||
Type: AWS::EC2::SecurityGroup
|
||||
Properties:
|
||||
GroupDescription: Security Group allowing traffic between EFS Mount Targets and Amazon EC2 instances
|
||||
VpcId: !Ref LabVPC
|
||||
Tags:
|
||||
- Key: Name
|
||||
Value: EFSMountTargetSecurityGroup
|
||||
SecurityGroupIngress:
|
||||
- IpProtocol: tcp
|
||||
SourceSecurityGroupId: !Ref AppInstanceSecurityGroup
|
||||
FromPort: 80
|
||||
ToPort: 80
|
||||
Outputs:
|
||||
Region:
|
||||
Description: Lab Region
|
||||
Value: !Ref AWS::Region
|
||||
DatabaseSubnet1CIDR:
|
||||
Description: CIDR block for the DB Subnet in AZ a
|
||||
Value: !Ref DatabaseSubnet1Param
|
||||
DatabaseSubnet2CIDR:
|
||||
Description: CIDR block for the DB Subnet in AZ b
|
||||
Value: !Ref DatabaseSubnet2Param
|
||||
DatabaseSubnet1ID:
|
||||
Description: The Subnet ID for the DB Subnet in AZ a
|
||||
Value: !Ref DatabaseSubnet1
|
||||
Export:
|
||||
Name: DatabaseSubnet1ID
|
||||
DatabaseSubnet2ID:
|
||||
Description: The Subnet ID for the DB Subnet in AZ b
|
||||
Value: !Ref DatabaseSubnet2
|
||||
Export:
|
||||
Name: DatabaseSubnet2ID
|
||||
AppInstanceSecurityGroupID:
|
||||
Description: The Security Group ID for the Lab Instance Security Group
|
||||
Value: !Ref AppInstanceSecurityGroup
|
||||
Export:
|
||||
Name: AppInstanceSecurityGroupID
|
||||
EFSMountTargetSecurityGroupID:
|
||||
Description: The Security Group ID for the Lab EFS Mount Target
|
||||
Value: !Ref EFSMountTargetSecurityGroup
|
||||
Export:
|
||||
Name: EFSMountTargetSecurityGroupID
|
||||
RDSSecurityGroupID:
|
||||
Description: The Security Group ID for the Lab RDS cluster
|
||||
Value: !Ref RDSSecurityGroup
|
||||
Export:
|
||||
Name: RDSSecurityGroupID
|
||||
VPCID:
|
||||
Description: The VPC ID for the lab
|
||||
Value: !Ref LabVPC
|
||||
Export:
|
||||
Name: VPCID
|
Loading…
Reference in New Issue