AWS Elastic Load Balancing V2 Deployment with CloudFormation
Jump to navigation
Jump to search
External
Internal
Resource Types
AWS::ElasticLoadBalancingV2::LoadBalancer
Resources: ALoadBalancer: Type: AWS::ElasticLoadBalancingV2::LoadBalancer Properties: Name: blue Scheme: 'internet-facing'|'internal' Type: 'application'|'network' IpAddressType: 'ipv4' LoadBalancerAttributes: - Key: 'access_logs.s3.enabled' Value: true|false - Key: 'access_logs.s3.bucket' Value: ... - Key: 'access_logs.s3.prefix' Value: ... Subnets: - blue-subnet-id - red-subnet-id SubnetMappings: - ... SecurityGroups: - some-security-group-for-application-load-balancer
Create an Application Load Balancer
Resources:
InternalALB:
Type: AWS::ElasticLoadBalancingV2::LoadBalancer
Properties:
Name: !Sub ${EnvironmentName}-alb
Scheme: 'internal'
Type: 'application'
IpAddressType: 'ipv4'
LoadBalancerAttributes:
- Key: access_logs.s3.enabled
Value: false
Subnets:
- !Ref BlueSubnet
- !Ref RedSubnet
SecurityGroups:
- !Ref InternalALBSecurityGroup
Create a Network Load Balancer
AWS::ElasticLoadBalancingV2::TargetGroup
Network Load Balancer TargetGroup
Resources: TargetGroup: Type: AWS::ElasticLoadBalancingV2::TargetGroup Properties: Name: !Ref ProjectID VpcId: !Ref VPCId Protocol: TCP Port: !Ref Port TargetType: ip HealthCheckProtocol: TCP HealthCheckIntervalSeconds: 10 HealthCheckTimeoutSeconds: 10 HealthyThresholdCount: 3 UnhealthyThresholdCount: 3
Application Load Balancer TargetGroup
Resources: TargetGroup: Type: AWS::ElasticLoadBalancingV2::TargetGroup Properties: Name: !Ref ProjectID VpcId: !Ref VPCId Protocol: HTTP Port: !Ref Port TargetType: ip HealthCheckProtocol: HTTP HealthCheckIntervalSeconds: 60 HealthCheckTimeoutSeconds: 5 HealthyThresholdCount: 2 UnhealthyThresholdCount: 10 HealthCheckPath: '/actuator/health'
AWS::ElasticLoadBalancingV2::Listener
Network Load Balancer Listener
Resources: LoadBalancerListener: Type: AWS::ElasticLoadBalancingV2::Listener Properties: LoadBalancerArn: !Ref LoadBalancerArn Port: !Ref NetworkLoadBalancerPort Protocol: TCP DefaultActions: - TargetGroupArn: !Ref TargetGroup Type: 'forward'
Application Load Balancer Listener
Resources: LoadBalancerListener: Type: AWS::ElasticLoadBalancingV2::Listener Properties: LoadBalancerArn: !Ref ApplicationkLoadBalancerArn Port: !Ref LoadBalancerPort Protocol: HTTP DefaultActions: - TargetGroupArn: !Ref TargetGroup Type: 'forward'