AWS Elastic Load Balancing V2 Deployment with CloudFormation: Difference between revisions
Jump to navigation
Jump to search
Line 37: | Line 37: | ||
===Create an Application Load Balancer=== | ===Create an Application Load Balancer=== | ||
<syntaxhighlight lang='yaml'> | |||
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 | |||
</syntaxhighlight> | |||
===Create a Network Load Balancer=== | ===Create a Network Load Balancer=== |
Revision as of 07:30, 3 April 2019
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'