AWSTemplateFormatVersion: '2010-09-09' Description: "Template creates a Network Load Balancer in 2 AZs with EIPs listening\ \ on TCP port 80. There are no registered targets these would either be EC2 instance\ \ IDs added to the targets property of the target group or defined under the autoscaling\ \ group resources " Parameters: VPC: Type: List Subnet1: Description: ID of the Subnet the instance should be launched in, this will link the instance to the same VPC. Type: List Subnet2: Description: ID of the Subnet the instance should be launched in, this will link the instance to the same VPC. Type: List ELBType: Type: String Default: network ELBIpAddressType: Type: String AllowedValues: - ipv4 - dualstack Default: ipv4 Resources: EIP1: Type: AWS::EC2::EIP Properties: Domain: VPC EIP2: Type: AWS::EC2::EIP Properties: Domain: VPC loadBalancer: DependsOn: - EIP2 - EIP1 Type: AWS::ElasticLoadBalancingV2::LoadBalancer Properties: SubnetMappings: - AllocationId: !GetAtt 'EIP1.AllocationId' SubnetId: !Select - '0' - !Ref 'Subnet1' - AllocationId: !GetAtt 'EIP2.AllocationId' SubnetId: !Select - '0' - !Ref 'Subnet2' Type: !Ref 'ELBType' IpAddressType: !Ref 'ELBIpAddressType' TargetGroup: Type: AWS::ElasticLoadBalancingV2::TargetGroup Properties: Name: dask-scheduler-tg1 Port: 8787 Protocol: TCP TargetType: 'ip' TargetGroupAttributes: - Key: deregistration_delay.timeout_seconds Value: '300' VpcId: !Select - '0' - !Ref 'VPC' Listener: Type: AWS::ElasticLoadBalancingV2::Listener Properties: DefaultActions: - Type: forward TargetGroupArn: !Ref 'TargetGroup' LoadBalancerArn: !Ref 'loadBalancer' Port: '80' Protocol: TCP