List of usage examples for com.amazonaws.services.elasticloadbalancing.model CreateLoadBalancerRequest withAvailabilityZones
public CreateLoadBalancerRequest withAvailabilityZones(java.util.Collection<String> availabilityZones)
One or more Availability Zones from the same region as the load balancer.
From source file:com.hazelcast.simulator.provisioner.AwsProvisioner.java
License:Open Source License
String createLoadBalancer(String name) { CreateLoadBalancerRequest request = new CreateLoadBalancerRequest(); request.setLoadBalancerName(name);//from w w w . j a va 2 s. co m request.withAvailabilityZones(elbAvailabilityZones.split(",")); List<Listener> listeners = new ArrayList<Listener>(); listeners.add(new Listener(elbProtocol, elbPortIn, elbPortOut)); request.setListeners(listeners); CreateLoadBalancerResult lbResult = elb.createLoadBalancer(request); appendText(lbResult.getDNSName() + NEW_LINE, elbFile); return request.getLoadBalancerName(); }
From source file:com.urbancode.terraform.tasks.aws.helpers.AWSHelper.java
License:Apache License
/** * Launches a load balancer with the given name, subnets, security groups, and listeners. * NOTE** if you have multiple subnets, each must be in a DIFFERENT availability zone! * you can only have 1 subnet per availability zone * * @param loadBalancerName - must be unique!! * @param subnets/*from w ww . java2 s . c o m*/ * @param secGroups * @param listeners - you can create these locally. holds info on ports/protocols * @param lbClient - AmazonElasticLoadBalancing * @return DNSName - the DNS name of the newly created load balancer * @throws EnvironmentCreationException if load balancer has neither zones nor subnets */ public String launchLoadBalancer(String loadBalancerName, List<String> subnets, List<String> secGroups, List<Listener> listeners, List<String> zones, AmazonElasticLoadBalancing lbClient) throws EnvironmentCreationException { CreateLoadBalancerRequest request = new CreateLoadBalancerRequest().withLoadBalancerName(loadBalancerName); if (subnets != null && !subnets.isEmpty()) { request = request.withSubnets(subnets); } else if (zones != null && !zones.isEmpty()) { request = request.withAvailabilityZones(zones); } else { throw new EnvironmentCreationException( "Must specify either zones or subnets for load balancer " + loadBalancerName); } if (listeners != null && !listeners.isEmpty()) { request = request.withListeners(listeners); } else { throw new EnvironmentCreationException("List of Listeners must not be null!"); } if (secGroups != null && !secGroups.isEmpty()) { request = request.withSecurityGroups(secGroups); } CreateLoadBalancerResult result = lbClient.createLoadBalancer(request); return result.getDNSName(); }
From source file:jp.primecloud.auto.process.aws.AwsLoadBalancerProcess.java
License:Open Source License
public String createLoadBalancer(AwsProcessClient awsProcessClient, Long loadBalancerNo) { AwsLoadBalancer awsLoadBalancer = awsLoadBalancerDao.read(loadBalancerNo); // ??//from ww w. j a v a 2 s . c o m CreateLoadBalancerRequest request = new CreateLoadBalancerRequest(); request.withLoadBalancerName(awsLoadBalancer.getName()); // ? Listener listener = new Listener(); listener.withProtocol("TCP"); listener.withLoadBalancerPort(65535); listener.withInstancePort(65535); request.withListeners(listener); // ?PVC?? if (BooleanUtils.isNotTrue(awsProcessClient.getPlatformAws().getVpc())) { // AvailabilityZones List<AvailabilityZone> availabilityZones = awsCommonProcess.describeAvailabilityZones(awsProcessClient); for (AvailabilityZone availabilityZone : availabilityZones) { request.withAvailabilityZones(availabilityZone.getZoneName()); } } // VPC?? else { // Subnet List<Subnet> subnets = awsCommonProcess.describeSubnetsByVpcId(awsProcessClient, awsProcessClient.getPlatformAws().getVpcId()); if (StringUtils.isNotEmpty(awsLoadBalancer.getSubnetId())) { for (String subnetId : StringUtils.split(awsLoadBalancer.getSubnetId(), ",")) { subnetId = subnetId.trim(); for (Subnet subnet : subnets) { if (StringUtils.equals(subnetId, subnet.getSubnetId())) { request.withSubnets(subnetId); break; } } } } else { // Subnet??????????AvailabilityZone?Subnet? Map<String, String> subnetIdMap = new LinkedHashMap<String, String>(); for (Subnet subnet : subnets) { if (BooleanUtils.isTrue(subnet.getDefaultForAz())) { subnetIdMap.put(subnet.getAvailabilityZone(), subnet.getSubnetId()); continue; } if (!subnetIdMap.containsKey(subnet.getAvailabilityZone())) { subnetIdMap.put(subnet.getAvailabilityZone(), subnet.getSubnetId()); } } request.withSubnets(subnetIdMap.values()); } // SecurytiGroup List<SecurityGroup> securityGroups = awsCommonProcess.describeSecurityGroupsByVpcId(awsProcessClient, awsProcessClient.getPlatformAws().getVpcId()); for (String groupName : StringUtils.split(awsLoadBalancer.getSecurityGroups(), ",")) { groupName = groupName.trim(); for (SecurityGroup securityGroup : securityGroups) { if (StringUtils.equals(groupName, securityGroup.getGroupName())) { request.withSecurityGroups(securityGroup.getGroupId()); break; } } } // Internal if (BooleanUtils.isTrue(awsLoadBalancer.getInternal())) { request.withScheme("internal"); } } // ??? CreateLoadBalancerResult result = awsProcessClient.getElbClient().createLoadBalancer(request); String dnsName = result.getDNSName(); if (log.isInfoEnabled()) { log.info(MessageUtils.getMessage("IPROCESS-200111", awsLoadBalancer.getName())); } // processLogger.debug(null, null, "AwsElbCreate", new Object[] { awsProcessClient.getPlatform().getPlatformName(), awsLoadBalancer.getName() }); // ?? DeleteLoadBalancerListenersRequest request2 = new DeleteLoadBalancerListenersRequest(); request2.withLoadBalancerName(awsLoadBalancer.getName()); request2.withLoadBalancerPorts(65535); awsProcessClient.getElbClient().deleteLoadBalancerListeners(request2); // ? ModifyLoadBalancerAttributesRequest request3 = new ModifyLoadBalancerAttributesRequest(); request3.withLoadBalancerName(awsLoadBalancer.getName()); request3.withLoadBalancerAttributes(new LoadBalancerAttributes() .withCrossZoneLoadBalancing(new CrossZoneLoadBalancing().withEnabled(true))); awsProcessClient.getElbClient().modifyLoadBalancerAttributes(request3); // processLogger.debug(null, null, "AwsCrossZoneEnabled", new Object[] { awsProcessClient.getPlatform().getPlatformName(), awsLoadBalancer.getName() }); // awsLoadBalancer = awsLoadBalancerDao.read(loadBalancerNo); awsLoadBalancer.setDnsName(dnsName); awsLoadBalancerDao.update(awsLoadBalancer); return dnsName; }