So i have an entire stack which creates autoscalling, VPC and ELB(classic) im trying to replace that with an Application load balancer and i have given the template bit below.
so the error im facing is
TargetGroup1 CREATE_FAILED
Target type 'alb' is not supported for target groups with HTTP protocol (Service: AmazonElasticLoadBalancing; Status Code: 400; Error Code: InvalidConfigurationRequest; Request ID: 29cdf7fd-5b12-4ef6-b812-baee840038ff; Proxy: null)
in 'AWS::ElasticLoadBalancingV2::TargetGroup' I had changed Protocol: HTTP to Protocol: tcp as seen in console config for type alb
Note: StackALB created, ALBlistener not created yet
Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
Properties:
Name: StackALB
Scheme: internet-facing
SecurityGroups:
- !Ref InstanceSecurityGroup
Subnets:
- !Ref PublicSubnet0
- !Ref PrivateSubnet0
Type: application
Metadata:
'AWS::CloudFormation::Designer':
id: 421548e4-192c-4a89-b236-41eb956dc7f3
TargetGroup1:
Type: 'AWS::ElasticLoadBalancingV2::TargetGroup'
Properties:
TargetType: alb
Targets:
- Id: !Ref StackALB
Port: 80
Protocol: HTTP
VpcId: !Ref VPC
Metadata:
'AWS::CloudFormation::Designer':
id: 3517f34b-2be3-49d1-a3b6-8db672475be2
ALBlistener:
Type: 'AWS::ElasticLoadBalancingV2::Listener'
Properties:
DefaultActions:
- Type: forward
ForwardConfig:
TargetGroups:
- TargetGroupArn: !Ref TargetGroup1
Weight: 1
LoadBalancerArn: !Ref StackALB
Port: 80
Protocol: HTTP
Metadata:
'AWS::CloudFormation::Designer':
id: d0c17083-9c13-48c2-8e13-948b2a096e71
entire template for ref
AWSTemplateFormatVersion: 2010-09-09
Metadata:
License: Apache-2.0
'AWS::CloudFormation::Designer':
9b07d92a-36f9-4ca7-b4f9-40753f1378b0:
size:
width: 60
height: 60
position:
x: 670
'y': 270
z: 2
parent: 702fe9ac-3a89-4063-a715-aaea1b5400fd
embeds: []
10cee608-9eec-488a-8b24-b541623d0fe1:
size:
width: 60
height: 60
position:
x: 730
'y': 660
z: 1
embeds: []
f0410b0f-a2df-48b6-9788-39a256d08eae:
size:
width: 150
height: 150
position:
x: 60
'y': 660
z: 1
embeds: []
702fe9ac-3a89-4063-a715-aaea1b5400fd:
size:
width: 240
height: 240
position:
x: 570
'y': 120
z: 1
embeds:
- 9b07d92a-36f9-4ca7-b4f9-40753f1378b0
- 58ad94a5-9d1f-4e1f-ae00-b9069c760c77
a3c175b4-faf1-4eac-9242-941a6a932a70:
size:
width: 150
height: 150
position:
x: 660
'y': 90
z: 1
embeds: []
db29192c-fd22-4c87-94b1-d1e41208d236:
size:
width: 60
height: 60
position:
x: 770
'y': 540
z: 1
embeds: []
925feb40-cd97-4e4e-b56f-87b10aabc2ab:
size:
width: 60
height: 60
position:
x: 320
'y': 620
z: 1
embeds: []
608b0bd0-06e9-4c6a-91f3-129e176fa8ff:
size:
width: 240
height: 240
position:
x: 880
'y': 510
z: 1
embeds:
- 05eb18d9-0497-41c1-8c12-edf0a9caed16
7e0c544e-910b-4641-a19c-68ee82898135:
source:
id: f0410b0f-a2df-48b6-9788-39a256d08eae
target:
id: 10cee608-9eec-488a-8b24-b541623d0fe1
z: 1
05eb18d9-0497-41c1-8c12-edf0a9caed16:
size:
width: 60
height: 60
position:
x: 910
'y': 570
z: 2
parent: 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
embeds: []
isassociatedwith:
- 10cee608-9eec-488a-8b24-b541623d0fe1
iscontainedinside:
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
- 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
dependson:
- 7e0c544e-910b-4641-a19c-68ee82898135
e0179fd8-f057-4e90-8a5f-a446819a41d4:
size:
width: 150
height: 150
position:
x: 480
'y': 390
z: 1
embeds: []
5f524e69-2fcb-4c51-a191-e6c5f3df3e34:
size:
width: 150
height: 150
position:
x: 210
'y': 390
z: 1
embeds: []
52a67d2e-df44-4440-b3ef-4afe0984de88:
source:
id: a3c175b4-faf1-4eac-9242-941a6a932a70
target:
id: 5f524e69-2fcb-4c51-a191-e6c5f3df3e34
z: 1
3f2064e8-d473-4556-b09f-952c8da429e6:
size:
width: 240
height: 240
position:
x: 300
'y': 60
z: 1
embeds:
- c1ff09b0-2e8e-4521-8154-3b94b5a600f8
ae8384a4-37c1-4865-8b97-2745a3a8b3e1:
size:
width: 60
height: 60
position:
x: 510
'y': 660
z: 1
embeds: []
58ad94a5-9d1f-4e1f-ae00-b9069c760c77:
size:
width: 60
height: 60
position:
x: 600
'y': 180
z: 2
parent: 702fe9ac-3a89-4063-a715-aaea1b5400fd
embeds: []
isassociatedwith:
- ae8384a4-37c1-4865-8b97-2745a3a8b3e1
iscontainedinside:
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
- 702fe9ac-3a89-4063-a715-aaea1b5400fd
04996b8c-bca2-4427-84e1-a7a83896a064:
source:
id: a3c175b4-faf1-4eac-9242-941a6a932a70
target:
id: 3f2064e8-d473-4556-b09f-952c8da429e6
z: 1
abf07dea-ed6c-4cf6-9a5b-f0f9c7c2a786:
size:
width: 60
height: 60
position:
x: 970
'y': 100
z: 1
embeds: []
ce9c0357-7785-4df9-8a35-90a70b25503c:
size:
width: 60
height: 60
position:
x: 840
'y': 210
z: 1
embeds: []
d34ee484-081e-4e35-9cf3-3b17666df818:
size:
width: 60
height: 60
position:
x: 840
'y': 330
z: 1
embeds: []
iscontainedinside:
- f0410b0f-a2df-48b6-9788-39a256d08eae
e5ce1987-9fc2-4413-9f04-eeacb78bdffc:
size:
width: 60
height: 60
position:
x: 1050
'y': 270
z: 1
embeds: []
84837bdc-620c-4ff2-8efb-2bf7173a7096:
size:
width: 60
height: 60
position:
x: 920
'y': 410
z: 1
embeds: []
isassociatedwith:
- e5ce1987-9fc2-4413-9f04-eeacb78bdffc
- 4b12ea4b-e211-4f55-a823-4da7113ce154
iscontainedinside:
- e0179fd8-f057-4e90-8a5f-a446819a41d4
dependson:
- f0410b0f-a2df-48b6-9788-39a256d08eae
c1ff09b0-2e8e-4521-8154-3b94b5a600f8:
size:
width: 60
height: 60
position:
x: 330
'y': 120
z: 2
parent: 3f2064e8-d473-4556-b09f-952c8da429e6
embeds: []
iscontainedinside:
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
- 3f2064e8-d473-4556-b09f-952c8da429e6
44f9157c-7abe-48e1-b19a-9b5066a87acb:
size:
width: 60
height: 60
position:
x: -20
'y': 170
z: 0
embeds: []
421548e4-192c-4a89-b236-41eb956dc7f3:
size:
width: 60
height: 60
position:
x: 180
'y': 230
z: 0
embeds: []
isassociatedwith:
- d34ee484-081e-4e35-9cf3-3b17666df818
iscontainedinside:
- 5f524e69-2fcb-4c51-a191-e6c5f3df3e34
- 5f524e69-2fcb-4c51-a191-e6c5f3df3e34
- e0179fd8-f057-4e90-8a5f-a446819a41d4
- 3f2064e8-d473-4556-b09f-952c8da429e6
3517f34b-2be3-49d1-a3b6-8db672475be2:
size:
width: 60
height: 60
position:
x: 30
'y': 430
z: 0
embeds: []
iscontainedinside:
- f0410b0f-a2df-48b6-9788-39a256d08eae
dependson:
- d0c17083-9c13-48c2-8e13-948b2a096e71
d0c17083-9c13-48c2-8e13-948b2a096e71:
size:
width: 60
height: 60
position:
x: 30
'y': 300
z: 0
embeds: []
Description: 'entire VPC and EC2,ELB config'
Parameters:
InstanceType:
Description: WebServer EC2 instance type
Type: String
Default: t2.micro
AllowedValues:
- t1.micro
- t2.nano
- t2.micro
- t2.small
- t2.medium
- t2.large
- m1.small
- m1.medium
- m1.large
- m1.xlarge
- m2.xlarge
- m2.2xlarge
- m2.4xlarge
- m3.medium
- m3.large
- m3.xlarge
- m3.2xlarge
- m4.large
- m4.xlarge
- m4.2xlarge
- m4.4xlarge
- m4.10xlarge
- c1.medium
- c1.xlarge
- c3.large
- c3.xlarge
- c3.2xlarge
- c3.4xlarge
- c3.8xlarge
- c4.large
- c4.xlarge
- c4.2xlarge
- c4.4xlarge
- c4.8xlarge
- g2.2xlarge
- g2.8xlarge
- r3.large
- r3.xlarge
- r3.2xlarge
- r3.4xlarge
- r3.8xlarge
- i2.xlarge
- i2.2xlarge
- i2.4xlarge
- i2.8xlarge
- d2.xlarge
- d2.2xlarge
- d2.4xlarge
- d2.8xlarge
- hi1.4xlarge
- hs1.8xlarge
- cr1.8xlarge
- cc2.8xlarge
- cg1.4xlarge
ConstraintDescription: must be a valid EC2 instance type.
KeyName:
Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
Type: 'AWS::EC2::KeyPair::KeyName'
ConstraintDescription: must be the name of an existing EC2 KeyPair.
SSHLocation:
Description: The IP address range that can be used to SSH to the EC2 instances
Type: String
MinLength: '9'
MaxLength: '18'
Default: 0.0.0.0/0
AllowedPattern: '(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/(\d{1,2})'
ConstraintDescription: must be a valid IP CIDR range of the form x.x.x.x/x.
VPCName:
Description: The name of the VPC being created.
Type: String
Default: VPC Public and Private with NAT
Mappings:
##removed for char limit(used wordpress ami##
Resources:
VPC:
Type: 'AWS::EC2::VPC'
Properties:
EnableDnsSupport: 'true'
EnableDnsHostnames: 'true'
CidrBlock: !FindInMap
- SubnetConfig
- VPC
- CIDR
Tags:
- Key: Application
Value: !Ref 'AWS::StackName'
- Key: Network
Value: Public
- Key: Name
Value: !Ref VPCName
Metadata:
'AWS::CloudFormation::Designer':
id: f0410b0f-a2df-48b6-9788-39a256d08eae
PublicSubnet0:
Type: 'AWS::EC2::Subnet'
Properties:
VpcId: !Ref VPC
AvailabilityZone: us-east-1b
CidrBlock: !FindInMap
- SubnetConfig
- Public0
- CIDR
MapPublicIpOnLaunch: 'true'
Tags:
- Key: Application
Value: !Ref 'AWS::StackName'
- Key: Network
Value: Public
- Key: Name
Value: !Join
- ''
- - !Ref VPCName
- '-public-'
- !Select
- 0
- !FindInMap
- AZRegions
- !Ref 'AWS::Region'
- AZs
Metadata:
'AWS::CloudFormation::Designer':
id: 3f2064e8-d473-4556-b09f-952c8da429e6
PublicSubnet1:
Type: 'AWS::EC2::Subnet'
Properties:
VpcId: !Ref VPC
AvailabilityZone: us-east-1b
CidrBlock: !FindInMap
- SubnetConfig
- Public1
- CIDR
MapPublicIpOnLaunch: 'true'
Tags:
- Key: Application
Value: !Ref 'AWS::StackName'
- Key: Network
Value: Public
- Key: Name
Value: !Join
- ''
- - !Ref VPCName
- '-public-'
- !Select
- 1
- !FindInMap
- AZRegions
- !Ref 'AWS::Region'
- AZs
Metadata:
'AWS::CloudFormation::Designer':
id: 5f524e69-2fcb-4c51-a191-e6c5f3df3e34
PrivateSubnet0:
Type: 'AWS::EC2::Subnet'
Properties:
VpcId: !Ref VPC
AvailabilityZone: us-east-1a
CidrBlock: !FindInMap
- SubnetConfig
- Private0
- CIDR
Tags:
- Key: Application
Value: !Ref 'AWS::StackName'
- Key: Network
Value: Private
- Key: Name
Value: !Join
- ''
- - !Ref VPCName
- '-private-'
- !Select
- 0
- !FindInMap
- AZRegions
- !Ref 'AWS::Region'
- AZs
Metadata:
'AWS::CloudFormation::Designer':
id: e0179fd8-f057-4e90-8a5f-a446819a41d4
InternetGateway:
Type: 'AWS::EC2::InternetGateway'
Properties:
Tags:
- Key: Application
Value: !Ref 'AWS::StackName'
- Key: Network
Value: Public
- Key: Name
Value: !Join
- ''
- - !Ref VPCName
- '-IGW'
Metadata:
'AWS::CloudFormation::Designer':
id: 10cee608-9eec-488a-8b24-b541623d0fe1
GatewayToInternet:
Type: 'AWS::EC2::VPCGatewayAttachment'
Properties:
VpcId: !Ref VPC
InternetGatewayId: !Ref InternetGateway
Metadata:
'AWS::CloudFormation::Designer':
id: 7e0c544e-910b-4641-a19c-68ee82898135
PublicRouteTable:
Type: 'AWS::EC2::RouteTable'
Properties:
VpcId: !Ref VPC
Tags:
- Key: Application
Value: !Ref 'AWS::StackName'
- Key: Network
Value: Public
- Key: Name
Value: !Join
- ''
- - !Ref VPCName
- '-public-route-table'
Metadata:
'AWS::CloudFormation::Designer':
id: 608b0bd0-06e9-4c6a-91f3-129e176fa8ff
PublicRoute:
Type: 'AWS::EC2::Route'
DependsOn: GatewayToInternet
Properties:
RouteTableId: !Ref PublicRouteTable
DestinationCidrBlock: 0.0.0.0/0
GatewayId: !Ref InternetGateway
Metadata:
'AWS::CloudFormation::Designer':
id: 05eb18d9-0497-41c1-8c12-edf0a9caed16
PublicSubnetRouteTableAssociation0:
Type: 'AWS::EC2::SubnetRouteTableAssociation'
Properties:
SubnetId: !Ref PublicSubnet0
RouteTableId: !Ref PublicRouteTable
PublicSubnetRouteTableAssociation1:
Type: 'AWS::EC2::SubnetRouteTableAssociation'
Properties:
SubnetId: !Ref PublicSubnet1
RouteTableId: !Ref PublicRouteTable
PublicNetworkAcl:
Type: 'AWS::EC2::NetworkAcl'
Properties:
VpcId: !Ref VPC
Tags:
- Key: Application
Value: !Ref 'AWS::StackName'
- Key: Network
Value: Public
- Key: Name
Value: !Join
- ''
- - !Ref VPCName
- '-public-nacl'
Metadata:
'AWS::CloudFormation::Designer':
id: a3c175b4-faf1-4eac-9242-941a6a932a70
InboundHTTPPublicNetworkAclEntry:
Type: 'AWS::EC2::NetworkAclEntry'
Properties:
NetworkAclId: !Ref PublicNetworkAcl
RuleNumber: '100'
Protocol: '-1'
RuleAction: allow
Egress: 'false'
CidrBlock: 0.0.0.0/0
PortRange:
From: '0'
To: '65535'
Metadata:
'AWS::CloudFormation::Designer':
id: 925feb40-cd97-4e4e-b56f-87b10aabc2ab
OutboundPublicNetworkAclEntry:
Type: 'AWS::EC2::NetworkAclEntry'
Properties:
NetworkAclId: !Ref PublicNetworkAcl
RuleNumber: '100'
Protocol: '-1'
RuleAction: allow
Egress: 'true'
CidrBlock: 0.0.0.0/0
PortRange:
From: '0'
To: '65535'
Metadata:
'AWS::CloudFormation::Designer':
id: db29192c-fd22-4c87-94b1-d1e41208d236
PublicSubnetNetworkAclAssociation0:
Type: 'AWS::EC2::SubnetNetworkAclAssociation'
Properties:
SubnetId: !Ref PublicSubnet0
NetworkAclId: !Ref PublicNetworkAcl
Metadata:
'AWS::CloudFormation::Designer':
id: 04996b8c-bca2-4427-84e1-a7a83896a064
PublicSubnetNetworkAclAssociation1:
Type: 'AWS::EC2::SubnetNetworkAclAssociation'
Properties:
SubnetId: !Ref PublicSubnet1
NetworkAclId: !Ref PublicNetworkAcl
Metadata:
'AWS::CloudFormation::Designer':
id: 52a67d2e-df44-4440-b3ef-4afe0984de88
ElasticIP0:
Type: 'AWS::EC2::EIP'
Properties:
Domain: vpc
Metadata:
'AWS::CloudFormation::Designer':
id: 9b07d92a-36f9-4ca7-b4f9-40753f1378b0
NATGateway0:
Type: 'AWS::EC2::NatGateway'
Properties:
AllocationId: !GetAtt
- ElasticIP0
- AllocationId
SubnetId: !Ref PublicSubnet0
Metadata:
'AWS::CloudFormation::Designer':
id: ae8384a4-37c1-4865-8b97-2745a3a8b3e1
PrivateRouteTable0:
Type: 'AWS::EC2::RouteTable'
Properties:
VpcId: !Ref VPC
Tags:
- Key: Name
Value: !Join
- ''
- - !Ref VPCName
- '-private-route-table-0'
Metadata:
'AWS::CloudFormation::Designer':
id: 702fe9ac-3a89-4063-a715-aaea1b5400fd
PrivateRouteToInternet0:
Type: 'AWS::EC2::Route'
Properties:
RouteTableId: !Ref PrivateRouteTable0
DestinationCidrBlock: 0.0.0.0/0
NatGatewayId: !Ref NATGateway0
Metadata:
'AWS::CloudFormation::Designer':
id: 58ad94a5-9d1f-4e1f-ae00-b9069c760c77
PrivateSubnetRouteTableAssociation0:
Type: 'AWS::EC2::SubnetRouteTableAssociation'
Properties:
SubnetId: !Ref PrivateSubnet0
RouteTableId: !Ref PrivateRouteTable0
WebServerGroup:
Type: 'AWS::AutoScaling::AutoScalingGroup'
Properties:
VPCZoneIdentifier:
- !Ref PrivateSubnet0
AvailabilityZones:
- us-east-1a
LaunchConfigurationName: !Ref LaunchConfig
MinSize: '2'
MaxSize: '4'
LoadBalancerNames:
- !Ref StackALB
Metadata:
'AWS::CloudFormation::Designer':
id: 84837bdc-620c-4ff2-8efb-2bf7173a7096
DependsOn:
- VPC
LaunchConfig:
Type: 'AWS::AutoScaling::LaunchConfiguration'
Metadata:
'AWS::CloudFormation::Init':
verify_instance_health:
commands:
ELBHealthCheck:
command: !Sub >-
until [ "$state" == "\"InService\"" ]; do state=$(aws --region
${AWS::Region} elb describe-instance-health --load-balancer-name
${StackALB} --instances $(curl -s
http://169.254.169.254/latest/meta-data/instance-id) --query
InstanceStates[0].State); sleep 10; done
'AWS::CloudFormation::Designer':
id: e5ce1987-9fc2-4413-9f04-eeacb78bdffc
Properties:
KeyName: !Ref KeyName
ImageId: !FindInMap
- AWSRegionArch2AMI
- !Ref 'AWS::Region'
- !FindInMap
- AWSInstanceType2Arch
- !Ref InstanceType
- Arch
InstanceType: !Ref InstanceType
SecurityGroups:
- !Ref InstanceSecurityGroup
IamInstanceProfile: !Ref WebServerInstanceProfile
InstanceSecurityGroup:
Type: 'AWS::EC2::SecurityGroup'
Properties:
GroupDescription: Enable SSH access and HTTP access on the configured port
VpcId: !Ref VPC
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '22'
ToPort: '22'
CidrIp: !Ref SSHLocation
- IpProtocol: tcp
FromPort: '80'
ToPort: '80'
CidrIp: 0.0.0.0/0
Metadata:
'AWS::CloudFormation::Designer':
id: d34ee484-081e-4e35-9cf3-3b17666df818
WebServerInstanceProfile:
Type: 'AWS::IAM::InstanceProfile'
Properties:
Path: /
Roles:
- !Ref DescribeHealthRole
Metadata:
'AWS::CloudFormation::Designer':
id: ce9c0357-7785-4df9-8a35-90a70b25503c
DescribeHealthRole:
Type: 'AWS::IAM::Role'
Properties:
AssumeRolePolicyDocument:
Statement:
- Effect: Allow
Principal:
Service:
- ec2.amazonaws.com
Action:
- 'sts:AssumeRole'
Path: /
Policies:
- PolicyName: describe-instance-health-policy
PolicyDocument:
Statement:
- Effect: Allow
Action:
- 'elasticloadbalancing:DescribeInstanceHealth'
- 'elasticloadbalancing:DeregisterTargets'
- 'elasticloadbalancing:RegisterTargets'
- 'elasticloadbalancing:DeregisterInstancesFromLoadBalancer'
- 'elasticloadbalancing:RegisterInstancesWithLoadBalancer'
- 'ec2:Describe*'
- 'ec2:AuthorizeSecurityGroupIngress'
Resource: '*'
Metadata:
'AWS::CloudFormation::Designer':
id: abf07dea-ed6c-4cf6-9a5b-f0f9c7c2a786
Bastionins:
Type: 'AWS::EC2::Instance'
Properties:
ImageId: ami-052efd3df9dad4825
InstanceType: t2.micro
KeyName: !Ref KeyName
NetworkInterfaces:
- AssociatePublicIpAddress: 'true'
DeviceIndex: '0'
GroupSet:
- !Ref InstanceSecurityGroup
SubnetId: !Ref PublicSubnet0
Metadata:
'AWS::CloudFormation::Designer':
id: c1ff09b0-2e8e-4521-8154-3b94b5a600f8
R53HC46WDD:
Type: 'AWS::Route53::HealthCheck'
Properties:
HealthCheckConfig:
Type: HTTP
FullyQualifiedDomainName: !GetAtt
- StackALB
- DNSName
RequestInterval: '30'
FailureThreshold: '5'
Metadata:
'AWS::CloudFormation::Designer':
id: 44f9157c-7abe-48e1-b19a-9b5066a87acb
StackALB:
Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
Properties:
Name: StackALB
Scheme: internet-facing
SecurityGroups:
- !Ref InstanceSecurityGroup
Subnets:
- !Ref PublicSubnet0
- !Ref PrivateSubnet0
Type: application
Metadata:
'AWS::CloudFormation::Designer':
id: 421548e4-192c-4a89-b236-41eb956dc7f3
TargetGroup1:
Type: 'AWS::ElasticLoadBalancingV2::TargetGroup'
Properties:
TargetType: alb
Targets:
- Id: !Ref StackALB
Port: 80
Protocol: HTTP
VpcId: !Ref VPC
Metadata:
'AWS::CloudFormation::Designer':
id: 3517f34b-2be3-49d1-a3b6-8db672475be2
ALBlistener:
Type: 'AWS::ElasticLoadBalancingV2::Listener'
Properties:
DefaultActions:
- Type: forward
ForwardConfig:
TargetGroups:
- TargetGroupArn: !Ref TargetGroup1
Weight: 1
LoadBalancerArn: !Ref StackALB
Port: 80
Protocol: HTTP
Metadata:
'AWS::CloudFormation::Designer':
id: d0c17083-9c13-48c2-8e13-948b2a096e71
CodePudding user response:
alb
TargetType
is only supported for NLB, not ALB. So you have to change your setup to use NLB if you want to use alb
as target in your target group.