Example usage for com.amazonaws.services.elasticloadbalancing.model CreateLoadBalancerRequest setAvailabilityZones

List of usage examples for com.amazonaws.services.elasticloadbalancing.model CreateLoadBalancerRequest setAvailabilityZones

Introduction

In this page you can find the example usage for com.amazonaws.services.elasticloadbalancing.model CreateLoadBalancerRequest setAvailabilityZones.

Prototype


public void setAvailabilityZones(java.util.Collection<String> availabilityZones) 

Source Link

Document

One or more Availability Zones from the same region as the load balancer.

Usage

From source file:com.kpbird.aws.Main.java

public void createElasticLoadBalancing() {
    try {/*w  ww.j a va  2s . c  o m*/
        AmazonElasticLoadBalancingClient aebc = new AmazonElasticLoadBalancingClient(credentials);
        aebc.setEndpoint(endPoint);
        aebc.setRegion(region);

        String instanceid = Util.getInstanceId(InstanceName, credentials, endPoint, region);
        String azone = Util.getAvailabilityZone(instanceid, credentials, endPoint, region);

        CreateLoadBalancerRequest cbr = new CreateLoadBalancerRequest();
        cbr.setLoadBalancerName(elbName);

        ArrayList<Listener> arrListener = new ArrayList<Listener>();
        arrListener.add(new Listener().withInstancePort(ListenerInstancePort)
                .withInstanceProtocol(ListenerInstanceProtocol).withLoadBalancerPort(ListenerPort)
                .withProtocol(ListenerProtocol));
        cbr.setListeners(arrListener);

        ArrayList<String> arrAvailabilityZone = new ArrayList<String>();
        arrAvailabilityZone.add(azone);
        cbr.setAvailabilityZones(arrAvailabilityZone);

        CreateLoadBalancerResult cbresult = aebc.createLoadBalancer(cbr);
        log.Info("DNS Name " + cbresult.getDNSName());

        // wait for process complete

        ConfigureHealthCheckRequest chcr = new ConfigureHealthCheckRequest();
        chcr.setLoadBalancerName(elbName);
        HealthCheck healthCK = new HealthCheck();
        healthCK.withHealthyThreshold(HealthyThreshold);
        healthCK.withInterval(HealthInterval);
        healthCK.withTarget(HealthTarget);
        healthCK.withTimeout(HealthTimeout);
        healthCK.withUnhealthyThreshold(HealthUnhealthyThreshold);
        chcr.setHealthCheck(healthCK);

        aebc.configureHealthCheck(chcr);

        // wait for process complete         

        RegisterInstancesWithLoadBalancerRequest riwbr = new RegisterInstancesWithLoadBalancerRequest();
        riwbr.setLoadBalancerName(elbName);

        ArrayList<com.amazonaws.services.elasticloadbalancing.model.Instance> arrInstances = new ArrayList<com.amazonaws.services.elasticloadbalancing.model.Instance>();
        com.amazonaws.services.elasticloadbalancing.model.Instance i = new com.amazonaws.services.elasticloadbalancing.model.Instance(
                instanceid);
        arrInstances.add(i);
        riwbr.setInstances(arrInstances);

        RegisterInstancesWithLoadBalancerResult riwbresult = aebc.registerInstancesWithLoadBalancer(riwbr);

    } catch (Exception e) {
        e.printStackTrace();
    }

}

From source file:com.swap.aws.elb.client.AWSHelper.java

License:Apache License

/**
 * Creates a load balancer and returns its DNS name. Useful when a new
 * cluster is added./*from  ww w . jav  a 2  s  . c o  m*/
 * 
 * @param name
 * @param listeners
 * @return DNS name of newly created load balancer
 */
public String createLoadBalancer(String name, List<Listener> listeners) {
    try {
        CreateLoadBalancerRequest createLoadBalancerRequest = new CreateLoadBalancerRequest(name);

        createLoadBalancerRequest.setListeners(listeners);

        Set<String> availabilityZones = new HashSet<String>();
        availabilityZones.add(availabilityZone);

        createLoadBalancerRequest.setAvailabilityZones(availabilityZones);

        AmazonElasticLoadBalancingClient lbClient = new AmazonElasticLoadBalancingClient(awsCredentials,
                clientConfiguration);

        lbClient.setEndpoint("elasticloadbalancing." + this.region + ".amazonaws.com");

        CreateLoadBalancerResult clbResult = lbClient.createLoadBalancer(createLoadBalancerRequest);

        System.out.println("Created load balancer : " + clbResult.getDNSName());

        return clbResult.getDNSName();
    } catch (Exception e) {
        log.error("Could not create load balancer : " + name + ".");
        e.printStackTrace();
        return null;
    }
}

From source file:org.apache.stratos.aws.extension.AWSHelper.java

License:Apache License

/**
 * Creates a load balancer and returns its DNS name. Useful when a new
 * cluster is added.//  w w w .  j  av  a2  s  .c o  m
 *
 * @param name      of the load balancer to be created
 * @param listeners to be attached to the load balancer
 * @param region    in which the load balancer needs to be created
 * @return DNS name of newly created load balancer
 * @throws LoadBalancerExtensionException
 */
public String createLoadBalancer(String name, List<Listener> listeners, String region,
        Set<String> availabilityZones, boolean inVPC) throws LoadBalancerExtensionException {

    log.info("Creating load balancer " + name);

    CreateLoadBalancerRequest createLoadBalancerRequest = new CreateLoadBalancerRequest(name);

    createLoadBalancerRequest.setListeners(listeners);

    // don't need this now since we are anyway updating zone according to the member
    //      Set<String> availabilityZones = new HashSet<String>();
    //      availabilityZones.add(getAvailabilityZoneFromRegion(region));
    //
    //      createLoadBalancerRequest.setAvailabilityZones(availabilityZones);

    try {
        if (inVPC) {

            List<String> securityGroups = new ArrayList<String>();
            if (!vpcIds.isEmpty()) {
                for (String vpcId : vpcIds) {
                    String securityGroupId = getSecurityGroupIdForRegion(region, vpcId);
                    securityGroups.add(securityGroupId);
                }
            } else {
                String securityGroupId = getSecurityGroupIdForRegion(region, null);
                securityGroups.add(securityGroupId);
            }

            createLoadBalancerRequest.setSecurityGroups(securityGroups);

            // set subnet ids
            if (!getSubnetIds().isEmpty()) {
                createLoadBalancerRequest.setSubnets(subnetIds);
            }

            // set scheme to 'internal' if specified
            if (getLbScheme() != null && getLbScheme().equals(Constants.LB_SCHEME_INTERNAL)) {
                createLoadBalancerRequest.setScheme(getLbScheme());
            }
        } else {
            // set initial availability zones
            createLoadBalancerRequest.setAvailabilityZones(availabilityZones);
        }

        elbClient.setEndpoint(String.format(Constants.ELB_ENDPOINT_URL_FORMAT, region));

        CreateLoadBalancerResult clbResult = elbClient.createLoadBalancer(createLoadBalancerRequest);

        return clbResult.getDNSName();

    } catch (AmazonClientException e) {
        String errorMsg = "Could not create load balancer " + name;
        log.error(errorMsg, e);
        throw new LoadBalancerExtensionException(errorMsg, e);
    }
}