AWS Elastic Load Balancing Operations: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
 
(58 intermediate revisions by the same user not shown)
Line 5: Line 5:
* [[AWS Elastic Load Balancing#Subjects|AWS Elastic Load Balancing]]
* [[AWS Elastic Load Balancing#Subjects|AWS Elastic Load Balancing]]


=Create a Network Load Balancer=
=Load Balancer Operations=


Go to Amazon EC2 console -> Load Balancers -> Create Load Balancer -> Network Load Balancer.
==Describe Load Balancers==


==Basic Configuration==
aws [--region ca-central-1 ...] elbv2 describe-load-balancers


Name: playground-internal-lb. See [[AWS_Elastic_Load_Balancing_Concepts#Load_Balancer_Name|Load Balancer Name]].
==Elastic Load Balancing V2 Deployment with CloudFormation==


Scheme: internal/internet-facing: internal.
{{Internal|AWS Elastic Load Balancing V2 Deployment with CloudFormation|Elastic Load Balancing V2 Deployment with CloudFormation}}


==Listeners==
==Create a Network Load Balancer==


There's a default tcp:80 listener.
* [[AWS Elastic Load Balancing Operations Create a Network Load Balancer with Amazon Console|Create a Network Load Balancer with Amazon Console]]


==Availability Zones==
==Test a Network Load Balancer==


Allows specifying the VPC and subnets within the VPC.
curl http://playground-nlb-85d74951c7b728b3.elb.us-west-2.amazonaws.com:10001/amazons


==Security Settings==
==Create an Application Load Balancer==
* [[AWS_Elastic_Load_Balancing_V2_Deployment_with_CloudFormation#Create_an_Application_Load_Balancer|Create an Application Load Balancer with CloudFormation]]


<font color=darkgray>Return here.</font>
==Application Load Balancer GetAtt Attributes==


==Configure Routing==
{{External|[https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html GetAtt]}}


If this load balancer is created to service ECS FARGATE containers that have not been defined yet, that is fine, the target groups will be created during the [[Amazon_ECS_Operations#Load_Balancing|ECS Service creation process]].
* DNSName


===Target Group===
==Connecting Internet-Facing Load Balancer to Private IP Address Targets==


Target Group: New target group
{{Internal|AWS Elastic Load Balancing Connecting Internet-Facing Load Balancer to Private IP Address Targets|Connecting Internet-Facing Load Balancer to Private IP Address Targets}}


Name: something
=Register a Target with a Target Group in Command Line=


Target type: Instance
aws elbv2 register-targets --target-group-arn arn:aws:elasticloadbalancing:us-west-2:77777777777:targetgroup/themyscira/4d66315292d681f9 --targets Id=10.7.1.84 Id=10.7.1.151


Protocol: TCP
=Listener Operations=


Port: 10001
aws [--region ...] elbv2 describe-listeners <--load-balancer-arn ... | --listener-arns ...>


===Health Checks===
aws --region ca-central-1  elbv2 describe-listeners --listener-arns arn:aws:elasticloadbalancing:ca-central-1:777777777777:listener/app/infinity-test-alb/ac8ae6a4de687154/4c3e44faee30b5d2


<font color=darkgray>Return here.</font>
=Target Groups Operations=


==Register Targets==
<syntaxhighlight lang='yaml'>
Resources:
  ...
  TargetGroup:
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
    #
    # DependsOn is important, I've seen race conditions with the load balancer
    #
    DependsOn: ApplicationLoadBalancer
    Properties:
      Name: !Sub ${Color}-themyscira-tg
      VpcId: !Ref VPC
      Protocol: HTTP
      Port: !Ref ApplicationPort
      TargetType: ip
      HealthCheckProtocol: HTTP
      HealthCheckIntervalSeconds: 60
      HealthCheckTimeoutSeconds: 10
      HealthyThresholdCount: 3
      UnhealthyThresholdCount: 3
      HealthCheckPath: '/actuator/health'
</syntaxhighlight>


===Registered Targets===
=Troubleshooting=


===Instances===
==Application Load Balancer Troubleshooting==
 
{{External|[https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-troubleshooting.html Troubleshoot Your Application Load Balancers]}}
<font color=darkgray>If the load balancer is created before the ECS deployments, how do I select those?</font>
 
=Create an Application Load Balancer=

Latest revision as of 20:56, 1 May 2019

External

Internal

Load Balancer Operations

Describe Load Balancers

aws [--region ca-central-1 ...] elbv2 describe-load-balancers

Elastic Load Balancing V2 Deployment with CloudFormation

Elastic Load Balancing V2 Deployment with CloudFormation

Create a Network Load Balancer

Test a Network Load Balancer

curl http://playground-nlb-85d74951c7b728b3.elb.us-west-2.amazonaws.com:10001/amazons

Create an Application Load Balancer

Application Load Balancer GetAtt Attributes

GetAtt
  • DNSName

Connecting Internet-Facing Load Balancer to Private IP Address Targets

Connecting Internet-Facing Load Balancer to Private IP Address Targets

Register a Target with a Target Group in Command Line

aws elbv2 register-targets --target-group-arn arn:aws:elasticloadbalancing:us-west-2:77777777777:targetgroup/themyscira/4d66315292d681f9 --targets Id=10.7.1.84 Id=10.7.1.151

Listener Operations

aws [--region ...] elbv2 describe-listeners <--load-balancer-arn ... | --listener-arns ...>
aws --region ca-central-1  elbv2 describe-listeners --listener-arns arn:aws:elasticloadbalancing:ca-central-1:777777777777:listener/app/infinity-test-alb/ac8ae6a4de687154/4c3e44faee30b5d2

Target Groups Operations

Resources:
  ...
  TargetGroup:
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
    #
    # DependsOn is important, I've seen race conditions with the load balancer
    #
    DependsOn: ApplicationLoadBalancer
    Properties:
      Name: !Sub ${Color}-themyscira-tg
      VpcId: !Ref VPC
      Protocol: HTTP
      Port: !Ref ApplicationPort
      TargetType: ip
      HealthCheckProtocol: HTTP
      HealthCheckIntervalSeconds: 60
      HealthCheckTimeoutSeconds: 10
      HealthyThresholdCount: 3
      UnhealthyThresholdCount: 3
      HealthCheckPath: '/actuator/health'

Troubleshooting

Application Load Balancer Troubleshooting

Troubleshoot Your Application Load Balancers