Fragmentos de plantillas de Elastic Load Balancing - AWS CloudFormation

Fragmentos de plantillas de Elastic Load Balancing

Para crear un Equilibrador de carga de aplicación, un Equilibrador de carga de red o un equilibrador de carga de puerta de enlace, utilice los tipos de recursos de V2, que comienzan con AWS::ElasticLoadBalancingV2. Para crear un Equilibrador de carga clásico, use los tipos de recursos que empiezan con AWS::ElasticLoadBalancing.

Recursos de ELBv2

En este ejemplo se define un Equilibrador de carga de aplicación con un oyente HTTP y una acción predeterminada que reenvía el tráfico al grupo de destino. El equilibrador de carga usa la configuración de comprobación de estado predeterminada. El grupo objetivo tiene dos instancias de EC2 registradas.

YAML
Resources: myLoadBalancer: Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer' Properties: Name: my-alb Type: application Scheme: internal Subnets: - !Ref subnet-AZ1 - !Ref subnet-AZ2 SecurityGroups: - !Ref mySecurityGroup myHTTPlistener: Type: 'AWS::ElasticLoadBalancingV2::Listener' Properties: LoadBalancerArn: !Ref myLoadBalancer Protocol: HTTP Port: 80 DefaultActions: - Type: "forward" TargetGroupArn: !Ref myTargetGroup myTargetGroup: Type: 'AWS::ElasticLoadBalancingV2::TargetGroup' Properties: Name: "my-target-group" Protocol: HTTP Port: 80 TargetType: instance VpcId: !Ref myVPC Targets: - Id: !GetAtt Instance1.InstanceId Port: 80 - Id: !GetAtt Instance2.InstanceId Port: 80
JSON
{ "Resources": { "myLoadBalancer": { "Type": "AWS::ElasticLoadBalancingV2::LoadBalancer", "Properties": { "Name": "my-alb", "Type": "application", "Scheme": "internal", "Subnets": [ { "Ref": "subnet-AZ1" }, { "Ref": "subnet-AZ2" } ], "SecurityGroups": [ { "Ref": "mySecurityGroup" } ] } }, "myHTTPlistener": { "Type": "AWS::ElasticLoadBalancingV2::Listener", "Properties": { "LoadBalancerArn": { "Ref": "myLoadBalancer" }, "Protocol": "HTTP", "Port": 80, "DefaultActions": [ { "Type": "forward", "TargetGroupArn": { "Ref": "myTargetGroup" } } ] } }, "myTargetGroup": { "Type": "AWS::ElasticLoadBalancingV2::TargetGroup", "Properties": { "Name": "my-target-group", "Protocol": "HTTP", "Port": 80, "TargetType": "instance", "VpcId": { "Ref": "myVPC" }, "Targets": [ { "Id": { "Fn::GetAtt": [ "Instance1", "InstanceId" ] }, "Port": 80 }, { "Id": { "Fn::GetAtt": [ "Instance2", "InstanceId" ] }, "Port": 80 } ] } } } }

Recursos del Equilibrador de carga clásico

En este ejemplo se define un Equilibrador de carga clásico con un oyente HTTP y sin instancias de EC2 registradas. El equilibrador de carga usa la configuración de comprobación de estado predeterminada.

YAML
myLoadBalancer: Type: 'AWS::ElasticLoadBalancing::LoadBalancer' Properties: AvailabilityZones: - "us-east-1a" Listeners: - LoadBalancerPort: '80' InstancePort: '80' Protocol: HTTP
JSON
"myLoadBalancer" : { "Type" : "AWS::ElasticLoadBalancing::LoadBalancer", "Properties" : { "AvailabilityZones" : [ "us-east-1a" ], "Listeners" : [ { "LoadBalancerPort" : "80", "InstancePort" : "80", "Protocol" : "HTTP" } ] } }

En este ejemplo se define un Equilibrador de carga clásico con un oyente HTTP, dos instancias de EC2 registradas y una configuración de comprobación de estado personalizada.

YAML
myClassicLoadBalancer: Type: 'AWS::ElasticLoadBalancing::LoadBalancer' Properties: AvailabilityZones: - "us-east-1a" Instances: - Ref: Instance1 - Ref: Instance2 Listeners: - LoadBalancerPort: '80' InstancePort: '80' Protocol: HTTP HealthCheck: Target: HTTP:80/ HealthyThreshold: '3' UnhealthyThreshold: '5' Interval: '30' Timeout: '5'
JSON
"myClassicLoadBalancer" : { "Type" : "AWS::ElasticLoadBalancing::LoadBalancer", "Properties" : { "AvailabilityZones" : [ "us-east-1a" ], "Instances" : [ { "Ref" : "Instance1" }, { "Ref" : "Instance2" } ], "Listeners" : [ { "LoadBalancerPort" : "80", "InstancePort" : "80", "Protocol" : "HTTP" } ], "HealthCheck" : { "Target" : "HTTP:80/", "HealthyThreshold" : "3", "UnhealthyThreshold" : "5", "Interval" : "30", "Timeout" : "5" } } }