Class AWS::ELB::AvailabilityZoneCollection
In: lib/aws/elb/availability_zone_collection.rb
Parent: Object

A collection that help maanage the availability zones for a load balancer.

  load_balancer = AWS::ELB.new.load_balancers['my-load-balancer']

  zones = load_balancer.availability_zones

  # adding zones
  zones.enable('us-east-1b', 'us-east-1c')

  # removing zones
  zones.disable('us-east-1b')

  # enumerating enabled zones
  zones.each do |zone|
    puts zone.name
  end

Methods

_each_item   disable   enable   new  

Included Modules

Core::Collection::Simple

Attributes

load_balancer  [R]  @return [LoadBalancer] Returns the load balancer this list describes.

Public Class methods

@param [LoadBalancer] The load balancer this list of availability

  zones belongs to.

Public Instance methods

Removes the specified EC2 availability zones from the set of configured availability zones for the load balancer.

  load_balancer.availability_zones.disable("us-east-1a", "us-east-1b")

You can also pass {EC2::AvailabilityZone} objects:

  # disable all availabilty zones
  zones = AWS::EC2.new.availability_zones.to_a
  load_balancer.availability_zones.disable(zones)

There must be at least one availability zone registered with a load balancer at all times. A client cannot remove all the availability zones from a load balancer. Once an availability zone is removed, all the instances registered with the load balancer that are in the removed availability zone go into the out of service state.

Upon availability zone removal, the load balancer attempts to equally balance the traffic among its remaining usable availability zones. Trying to remove an availability zone that was not associated with the load balancer does nothing.

@param [String,EC2::AvailabilityZone] availability_zones One or more

  availability zone names (strings) or objects {EC2::AvailabilityZone}.

@return [nil]

Adds one or more EC2 Availability Zones to the load balancer.

  load_balancer.availability_zones.enable("us-east-1a", "us-east-1b")

You can also pass {EC2::AvailabilityZone} objects:

  # enable all availabilty zones for this region
  zones = AWS::EC2.new.availability_zones.to_a
  load_balancer.availability_zones.enable(zones)

The load balancer evenly distributes requests across all its registered availability zones that contain instances. As a result, the client must ensure that its load balancer is appropriately scaled for each registered Availability Zone.

@param [String,EC2::AvailabilityZone] availability_zones One or more

  availability zone names (strings) or objects {EC2::AvailabilityZone}.

@return [nil]

Protected Instance methods

[Validate]