LoadBalancer
The LoadBalancer resource lets you manage AWS ElasticLoadBalancing LoadBalancers and their configuration settings.
Minimal Example
Section titled “Minimal Example”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"]});
Advanced Configuration
Section titled “Advanced Configuration”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"]});
Custom Policies
Section titled “Custom Policies”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"]});
Cross-Zone Load Balancing
Section titled “Cross-Zone Load Balancing”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"]});