Skip to content
GitHubXDiscordRSS

LoadBalancer

Learn how to create, update, and manage AWS ElasticLoadBalancing LoadBalancers using Alchemy Cloud Control.

The LoadBalancer resource lets you manage AWS ElasticLoadBalancing LoadBalancers and their configuration settings.

Create a basic load balancer with required properties and common optional settings such as access logging and security groups.

import AWS from "alchemy/aws/control";
const basicLoadBalancer = await AWS.ElasticLoadBalancing.LoadBalancer("basic-load-balancer", {
LoadBalancerName: "my-load-balancer",
Listeners: [{
LoadBalancerPort: 80,
InstancePort: 80,
Protocol: "HTTP"
}],
AvailabilityZones: ["us-west-2a", "us-west-2b"],
SecurityGroups: ["sg-0123456789abcdef0"],
Subnets: ["subnet-0123456789abcdef0", "subnet-abcdef0123456789"]
});

Configure a load balancer with advanced settings including connection draining, health checks, and sticky sessions.

const advancedLoadBalancer = await AWS.ElasticLoadBalancing.LoadBalancer("advanced-load-balancer", {
LoadBalancerName: "my-advanced-load-balancer",
Listeners: [{
LoadBalancerPort: 80,
InstancePort: 80,
Protocol: "HTTP"
}],
HealthCheck: {
Target: "HTTP:80/",
Interval: 30,
Timeout: 5,
HealthyThreshold: 2,
UnhealthyThreshold: 2
},
ConnectionDrainingPolicy: {
Enabled: true,
Timeout: 300
},
AppCookieStickinessPolicy: [{
PolicyName: "my-app-cookie-policy",
CookieName: "app_cookie"
}],
AvailabilityZones: ["us-west-2a", "us-west-2b"],
SecurityGroups: ["sg-0123456789abcdef0"],
Subnets: ["subnet-0123456789abcdef0", "subnet-abcdef0123456789"]
});

Define custom policies for your load balancer for more granular control.

const customPolicyLoadBalancer = await AWS.ElasticLoadBalancing.LoadBalancer("custom-policy-load-balancer", {
LoadBalancerName: "my-custom-policy-load-balancer",
Listeners: [{
LoadBalancerPort: 443,
InstancePort: 80,
Protocol: "HTTPS",
SSLCertificateId: "arn:aws:acm:us-west-2:123456789012:certificate/abcd1234-5678-90ef-ghij-klmnopqrstuv"
}],
Policies: [{
PolicyName: "my-iam-policy",
PolicyType: "CookieStickiness",
PolicyAttributes: [{
Name: "CookieName",
Value: "my_cookie"
}]
}],
AvailabilityZones: ["us-west-2a", "us-west-2b"],
SecurityGroups: ["sg-0123456789abcdef0"],
Subnets: ["subnet-0123456789abcdef0", "subnet-abcdef0123456789"]
});

Create a load balancer with cross-zone load balancing enabled for better traffic distribution.

const crossZoneLoadBalancer = await AWS.ElasticLoadBalancing.LoadBalancer("cross-zone-load-balancer", {
LoadBalancerName: "my-cross-zone-load-balancer",
Listeners: [{
LoadBalancerPort: 80,
InstancePort: 80,
Protocol: "HTTP"
}],
CrossZone: true,
AvailabilityZones: ["us-west-2a", "us-west-2b"],
SecurityGroups: ["sg-0123456789abcdef0"],
Subnets: ["subnet-0123456789abcdef0", "subnet-abcdef0123456789"]
});