Package software.amazon.awscdk.services.elasticloadbalancing


package software.amazon.awscdk.services.elasticloadbalancing

Amazon Elastic Load Balancing Construct Library

The aws-cdk-lib/aws-elasticloadbalancing package provides constructs for configuring classic load balancers.

Configuring a Load Balancer

Load balancers send traffic to one or more AutoScalingGroups. Create a load balancer, set up listeners and a health check, and supply the fleet(s) you want to load balance to in the targets property. If you want the load balancer to be accessible from the internet, set internetFacing: true.

 IVpc vpc;
 
 AutoScalingGroup myAutoScalingGroup;
 
 LoadBalancer lb = LoadBalancer.Builder.create(this, "LB")
         .vpc(vpc)
         .internetFacing(true)
         .healthCheck(HealthCheck.builder()
                 .port(80)
                 .build())
         .build();
 lb.addTarget(myAutoScalingGroup);
 lb.addListener(LoadBalancerListener.builder()
         .externalPort(80)
         .build());
 

The load balancer allows all connections by default. If you want to change that, pass the allowConnectionsFrom property while setting up the listener:

 SecurityGroup mySecurityGroup;
 LoadBalancer lb;
 
 lb.addListener(LoadBalancerListener.builder()
         .externalPort(80)
         .allowConnectionsFrom(List.of(mySecurityGroup))
         .build());
 

Adding Ec2 Instance as a target for the load balancer

You can add an EC2 instance to the load balancer by calling using new InstanceTarget as the argument to addTarget():

 IVpc vpc;
 
 LoadBalancer lb = LoadBalancer.Builder.create(this, "LB")
         .vpc(vpc)
         .internetFacing(true)
         .build();
 
 // instance to add as the target for load balancer.
 Instance instance = Instance.Builder.create(this, "targetInstance")
         .vpc(vpc)
         .instanceType(InstanceType.of(InstanceClass.BURSTABLE2, InstanceSize.MICRO))
         .machineImage(AmazonLinuxImage.Builder.create().generation(AmazonLinuxGeneration.AMAZON_LINUX_2).build())
         .build();
 lb.addTarget(new InstanceTarget(instance));