Skip to content

LoadBalancer ​

The LoadBalancer resource lets you manage AWS Application Load Balancer LoadBalancers and their configuration settings.

Minimal Example ​

Create a basic Application Load Balancer with essential properties including security groups and subnets.

ts
import AWS from "alchemy/aws/control";

const basicLoadBalancer = await AWS.ElasticLoadBalancingV2.LoadBalancer("basicLoadBalancer", {
  name: "my-load-balancer",
  securityGroups: ["sg-0123456789abcdef0"],
  subnets: ["subnet-0123456789abcdef0", "subnet-abcdef0123456789"],
  scheme: "internet-facing"
});

Advanced Configuration ​

Configure a LoadBalancer with advanced features such as attributes and tags for better management.

ts
const advancedLoadBalancer = await AWS.ElasticLoadBalancingV2.LoadBalancer("advancedLoadBalancer", {
  name: "advanced-load-balancer",
  securityGroups: ["sg-0123456789abcdef0"],
  subnets: ["subnet-0123456789abcdef0", "subnet-abcdef0123456789"],
  loadBalancerAttributes: [
    {
      key: "deletion_protection.enabled",
      value: "true"
    },
    {
      key: "access_logs.s3.enabled",
      value: "true"
    }
  ],
  tags: [
    {
      key: "Environment",
      value: "Production"
    },
    {
      key: "Project",
      value: "MyProject"
    }
  ]
});

Custom IP Address Type ​

Create a LoadBalancer specifying a custom IP address type to optimize for specific use cases.

ts
const customIpTypeLoadBalancer = await AWS.ElasticLoadBalancingV2.LoadBalancer("customIpTypeLoadBalancer", {
  name: "custom-ip-type-lb",
  securityGroups: ["sg-0123456789abcdef0"],
  subnets: ["subnet-0123456789abcdef0", "subnet-abcdef0123456789"],
  ipAddressType: "dualstack", // Supports both IPv4 and IPv6
  scheme: "internet-facing"
});

Load Balancer with Minimum Capacity ​

Define a LoadBalancer with a specified minimum capacity to ensure performance under load.

ts
const minCapacityLoadBalancer = await AWS.ElasticLoadBalancingV2.LoadBalancer("minCapacityLoadBalancer", {
  name: "min-capacity-lb",
  securityGroups: ["sg-0123456789abcdef0"],
  subnets: ["subnet-0123456789abcdef0", "subnet-abcdef0123456789"],
  minimumLoadBalancerCapacity: {
    value: 2 // Minimum number of load balancer nodes
  }
});