List of usage examples for com.amazonaws.services.ec2.model RunInstancesRequest setImageId
public void setImageId(String imageId)
The ID of the AMI.
From source file:advanced.Requests.java
License:Open Source License
public void launchOnDemand() { //============================================================================================// //====================================== Launch an On-Demand Instance ========================// //====================================== If we Didn't Get a Spot Instance ====================// //============================================================================================// // Setup the request for 1 x t1.micro using the same security group and // AMI id as the Spot request. RunInstancesRequest runInstancesRequest = new RunInstancesRequest(); runInstancesRequest.setInstanceType(instanceType); runInstancesRequest.setImageId(amiID); runInstancesRequest.setMinCount(Integer.valueOf(1)); runInstancesRequest.setMaxCount(Integer.valueOf(1)); // Add the security group to the request. ArrayList<String> securityGroups = new ArrayList<String>(); securityGroups.add(securityGroup);/*from w ww .j a va 2 s . c o m*/ runInstancesRequest.setSecurityGroups(securityGroups); // Launch the instance. RunInstancesResult runResult = ec2.runInstances(runInstancesRequest); // Add the instance id into the instance id list, so we can potentially later // terminate that list. for (Instance instance : runResult.getReservation().getInstances()) { System.out.println("Launched On-Demand Instace: " + instance.getInstanceId()); instanceIds.add(instance.getInstanceId()); } }
From source file:au.edu.unsw.cse.soc.federatedcloud.deployers.aws.ec2.redmine.RedmineEC2DeploymentWrapper.java
License:Open Source License
@Override public void deployResource(CloudResourceDescription description) throws Exception { //Reading the credentials Properties properties = new Properties(); properties.load(this.getClass().getResourceAsStream("/AwsCredentials.properties")); String accessKey = properties.getProperty("accessKey"); String secretKey = properties.getProperty("secretKey-NULL"); AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey); AmazonEC2Client cleint = new AmazonEC2Client(credentials); RunInstancesRequest request = new RunInstancesRequest(); request.setImageId("ami-0b420162"); RunInstancesResult response = cleint.runInstances(request); return;//from ww w . ja va 2 s . c o m response.getReservation().getInstances().get(0).getInstanceId(); }
From source file:com.hpcloud.daas.ec2.AwsConsoleApp.java
License:Open Source License
public static void CreateNewInstance(String imageId, String instanceType, List<String> securityGroups, String userData) {//from ww w .j a va 2 s. c o m try { RunInstancesRequest crir = new RunInstancesRequest(); crir.setImageId(imageId); crir.setInstanceType(instanceType); crir.setSecurityGroups(securityGroups); crir.setKeyName("hpdefault"); if (userData != null) { crir.setUserData(userData); } RunInstancesResult result = ec2.runInstances(crir); System.out.println(result); String instanceId = null; List<Instance> instances = result.getReservation().getInstances(); for (Instance instance : instances) { instanceId = instance.getInstanceId(); } // HACKHACK sleep for 5 seconds so the private ip gets assigned System.out.println("Sleeping for 5 to wait for the private ip"); try { Thread.sleep(5000); } catch (InterruptedException ignore) { ignore.printStackTrace(); } String publicIp = assignPublicIp(instanceId); System.out.println("Public IP: " + publicIp); System.out.println("Instance State: " + getInstanceState(instanceId)); } catch (AmazonServiceException ase) { System.out.println("Caught Exception: " + ase.getMessage()); System.out.println("Reponse Status Code: " + ase.getStatusCode()); System.out.println("Error Code: " + ase.getErrorCode()); System.out.println("Request ID: " + ase.getRequestId()); } }
From source file:com.liferay.amazontools.AMIBuilder.java
License:Open Source License
protected void start() { RunInstancesRequest runInstancesRequest = new RunInstancesRequest(); String availabilityZone = properties.getProperty("availability.zone"); if (!isZoneAvailable(availabilityZone)) { throw new RuntimeException("Unavailable zone " + availabilityZone); }/* w ww.jav a 2s.c om*/ String imageId = properties.getProperty("image.id"); if (imageId == null) { imageId = getImageId(properties.getProperty("image.name")); } runInstancesRequest.setImageId(imageId); runInstancesRequest.setInstanceType(properties.getProperty("instance.type")); runInstancesRequest.setKeyName(properties.getProperty("key.name")); runInstancesRequest.setMaxCount(1); runInstancesRequest.setMinCount(1); Placement placement = new Placement(); placement.setAvailabilityZone(availabilityZone); runInstancesRequest.setPlacement(placement); List<String> securityGroupsIds = new ArrayList<String>(); securityGroupsIds.add(properties.getProperty("security.group.id")); runInstancesRequest.setSecurityGroupIds(securityGroupsIds); RunInstancesResult runInstancesResult = amazonEC2Client.runInstances(runInstancesRequest); Reservation reservation = runInstancesResult.getReservation(); List<Instance> instances = reservation.getInstances(); if (instances.isEmpty()) { throw new RuntimeException("Unable to create instances"); } Instance instance = instances.get(0); _instanceId = instance.getInstanceId(); _publicIpAddress = instance.getPublicIpAddress(); StringBuilder sb = new StringBuilder(13); sb.append("{imageId="); sb.append(instance.getImageId()); sb.append(", instanceId="); sb.append(_instanceId); sb.append(", instanceType="); sb.append(instance.getInstanceType()); sb.append(", keyName="); sb.append(instance.getKeyName()); sb.append(", reservationId="); sb.append(reservation.getReservationId()); sb.append(", state="); InstanceState instanceState = instance.getState(); sb.append(instanceState.getName()); sb.append("}"); System.out.println("Starting instance " + sb.toString()); boolean running = false; for (int i = 0; i < 6; i++) { sleep(30); instance = getRunningInstance(_instanceId); if (instance != null) { _publicIpAddress = instance.getPublicIpAddress(); running = true; sb = new StringBuilder(7); sb.append("{instanceId="); sb.append(_instanceId); sb.append(", publicIpAddress="); sb.append(_publicIpAddress); sb.append(", stat="); instanceState = instance.getState(); sb.append(instanceState.getName()); sb.append("}"); System.out.println("Started instance " + sb.toString()); break; } } if (!running) { throw new RuntimeException("Unable to start instance " + _instanceId); } }
From source file:com.norbl.cbp.ppe.Ec2Wrangler.java
License:Open Source License
/** This version of <tt>launchInstances()</tt> gets all * parameters from method arguments. /*from w ww. ja v a 2s . co m*/ * * @param instanceType * @param imageID * @param availabilityZone * @param minInstances * @param maxInstances * @param keyName * @param securityGroupName * @param networkName * @param userData * @return * @throws MissingParamsException * @throws ImproperParamException */ public String launchInstances(InstanceType instanceType, String imageID, String availabilityZone, int minInstances, int maxInstances, String keyName, String securityGroupName, String networkName, String userData) throws MissingParamsException, ImproperParamException { if ((minInstances < 1) || (maxInstances < minInstances)) throw new ImproperParamException("instances min=" + minInstances + " max=" + maxInstances); RunInstancesRequest req = new RunInstancesRequest(); req.setInstanceType(instanceType); req.setImageId(imageID); if (Ec2Location.isValidAvailablityZone(ec2Client, availabilityZone)) setAvailabilityZone(req, availabilityZone); // else any zone will do, so don't set it. req.setMinCount(minInstances); req.setMaxCount(maxInstances); req.setKeyName(keyName); List<String> sgs = new ArrayList<String>(); sgs.add(securityGroupName); req.setSecurityGroups(sgs); req.setUserData(Base64.encodeBase64String(userData.getBytes())); String networkID = NiM.createNetworkID(); NetworkInfo ni = new NetworkInfo(networkID, networkName); NiM.register(ni); ni.setState(NetworkInfo.State.pending); if (isHVM(imageID)) setupClusterPlacementGroup(req); RunInstancesResult rr = ec2Client.runInstances(req); NiM.update(this); // Update the network info waitForAllInstancesToBeRunning(rr); tagInstances(getInstanceIDs(rr), networkID, networkName); NiM.update(getInstancesAllListed()); // Update the network info return (networkID); }
From source file:com.pinterest.arcee.aws.EC2HostInfoDAOImpl.java
License:Apache License
@Override public List<HostBean> launchEC2Instances(GroupBean groupBean, int instanceCnt, String subnet) throws Exception { RunInstancesRequest request = new RunInstancesRequest(); request.setImageId(groupBean.getImage_id()); request.setInstanceType(groupBean.getInstance_type()); request.setKeyName("ops"); request.setSecurityGroupIds(Arrays.asList(groupBean.getSecurity_group())); request.setSubnetId(subnet);// w w w . j a v a 2 s . c o m request.setUserData(groupBean.getUser_data()); IamInstanceProfileSpecification iamRole = new IamInstanceProfileSpecification(); iamRole.setArn(groupBean.getIam_role()); request.setIamInstanceProfile(iamRole); request.setMinCount(instanceCnt); request.setMaxCount(instanceCnt); List<HostBean> newHosts = new ArrayList<>(); try { RunInstancesResult result = ec2Client.runInstances(request); List<Instance> instances = result.getReservation().getInstances(); LOG.info("Launch instances {}", instances.toString()); for (Instance instance : instances) { HostBean host = new HostBean(); host.setHost_name(instance.getInstanceId()); host.setHost_id(instance.getInstanceId()); host.setIp(instance.getPrivateIpAddress()); host.setGroup_name(groupBean.getGroup_name()); host.setState(HostState.PROVISIONED); host.setCreate_date(instance.getLaunchTime().getTime()); host.setLast_update(instance.getLaunchTime().getTime()); newHosts.add(host); } } catch (AmazonClientException ex) { LOG.error(String.format("Failed to call aws runInstances when launching host %s", newHosts.toString()), ex); throw new DeployInternalException( String.format("Failed to call aws runInstances when launching host %s", newHosts.toString()), ex); } return newHosts; }
From source file:elasticity.services.AmazonService.java
License:Open Source License
/** * Runs a VM instance on an EC2 compatible cloud. * /* w w w .jav a2s . com*/ * @return The IP of the started instance. */ public String runInstance() throws Exception { logger.log(Level.INFO, "Running new instance.."); //Prepares the run request. RunInstancesRequest runInstancesRequest = new RunInstancesRequest(); runInstancesRequest.setImageId(awsImageId); runInstancesRequest.setKeyName(awsKeypair); runInstancesRequest.setSecurityGroups(Collections.singleton(awsSecurityGroup)); runInstancesRequest.setInstanceType(awsInstanceType); runInstancesRequest.setMaxCount(1); runInstancesRequest.setMinCount(1); //Executes the run request. String instanceId = ""; //Will be changed eventually. boolean done = false; while (!done) { try { RunInstancesResult runInstancesResult = ec2.runInstances(runInstancesRequest); instanceId = runInstancesResult.getReservation().getInstances().get(0).getInstanceId(); done = true; } catch (Exception e) { logger.log(Level.INFO, "Error while sending RunInstanceRequest, retrying in 1s..."); e.printStackTrace(System.out); Thread.sleep(1000); } } logger.log(Level.INFO, "Sent RunInstanceRequest successfully.."); //Waits for the instance to be "running". String instanceIp = ""; //Will be changed eventually. done = false; while (!done) { try { Thread.sleep(1000); DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest(); describeInstancesRequest.withInstanceIds(instanceId); DescribeInstancesResult describeInstancesResult = ec2.describeInstances(describeInstancesRequest); Instance instance = describeInstancesResult.getReservations().get(0).getInstances().get(0); logger.log(Level.INFO, "Current instance state: " + instance.getState().getName() + ".."); if (instance.getState().getName().equals("running")) { instanceIp = instance.getPrivateIpAddress(); ip2id.put(instanceIp, instanceId); done = true; } } catch (Exception e) { logger.log(Level.INFO, "Failed to get instance description, retrying.."); } } logger.log(Level.INFO, "Instance ran with IP: " + instanceIp + "."); return instanceIp; }
From source file:jp.aws.test.ec2.EC2Instance.java
License:Apache License
/** * EC2/* w w w . ja v a 2s . com*/ * * @param imageId * @param min * @param max * @param instanceType * @param keyPairName * @param availabilityZone * @param securityGroups * @return Vector<Instance> * @throws Exception */ public Vector<Instance> launchEC2Instances(String imageId, int min, int max, String instanceType, String keyPairName, String availabilityZone, Collection<String> securityGroups, String additionalInfo, String userData) throws Exception { Vector<Instance> newInstances = new Vector<Instance>(); if (min <= 0 || max <= 0 || min > max) { return newInstances; } RunInstancesRequest request = new RunInstancesRequest(); request.setImageId(imageId); request.setInstanceType(instanceType); request.setMinCount(min); request.setMaxCount(max); Placement p = new Placement(); if (availabilityZone.toLowerCase().equals("any")) availabilityZone = ""; // ?????? p.setAvailabilityZone(availabilityZone); request.setPlacement(p); request.setSecurityGroups(securityGroups); request.setKeyName(keyPairName);// assign Keypair name for this request request.setUserData(userData); request.setAdditionalInfo(additionalInfo); // RunInstancesResult runInstancesRes = clientManager.ec2().runInstances(request); String reservationId = runInstancesRes.getReservation().getReservationId(); List<Instance> instances = runInstancesRes.getReservation().getInstances(); if (runInstancesRes != null) { for (Instance instance : instances) { // EC2InstanceObject newInstanceObject = new // EC2InstanceObject(); // newInstanceObject.setDnsName(i.getPublicDnsName()); // newInstanceObject.setInstanceId(i.getInstanceId()); // instances.add(newInstanceObject); // newInstances.add(newInstanceObject); newInstances.add(instance); } } return newInstances; }
From source file:net.firejack.aws.web.controller.AWSController.java
License:Apache License
@ResponseBody @RequestMapping(value = "instance", method = RequestMethod.POST) public Status spotInstance(@RequestBody InstanceModel instance) { if (amazonEC2 == null) throw new AmazonServiceException("Amazon service can't initialize"); if (!instance.isValid()) throw new AmazonServiceException("Invalid message"); RunInstancesRequest runInstancesRequest = new RunInstancesRequest(); runInstancesRequest.setInstanceType(instance.getInstanceType()); runInstancesRequest.setImageId(instance.getAmi()); runInstancesRequest.setMinCount(1);//from w w w .jav a 2 s. c o m runInstancesRequest.setMaxCount(1); runInstancesRequest.setKeyName(instance.getKey()); runInstancesRequest.setSecurityGroupIds(Arrays.asList(instance.getSecurityGroup())); amazonEC2.runInstances(runInstancesRequest); return new Status("Server has been started"); }
From source file:net.firejack.aws.web.controller.AWSController.java
License:Apache License
@ResponseBody @RequestMapping(value = "install", method = RequestMethod.POST) public Status startInstance(@RequestBody Auth auth) { if (!auth.isValid()) throw new AmazonServiceException("Access or Secret Key is empty"); if (amazonEC2 != null) { amazonEC2.shutdown();/*from www .java 2 s. c o m*/ } amazonEC2 = new AmazonEC2Client(new BasicAWSCredentials(auth.getAccessKey(), auth.getSecretKey())); amazonEC2.setRegion(RegionUtils.getRegion(instanceRegion)); RunInstancesRequest runInstancesRequest = new RunInstancesRequest(); runInstancesRequest.setInstanceType(InstanceType.fromValue(instanceType)); runInstancesRequest.setImageId(instanceAmi); runInstancesRequest.setMinCount(1); runInstancesRequest.setMaxCount(1); KeyPair keyPair = createKeyPair(); String privateKey = keyPair.getKeyMaterial(); String fileName; try { fileName = saveKeyFile(keyPair.getKeyName(), privateKey); } catch (FileNotFoundException e) { throw new AmazonServiceException("Could not create the key file"); } catch (UnsupportedEncodingException e) { throw new AmazonServiceException("Could not create the key file"); } runInstancesRequest.setKeyName(keyPair.getKeyName()); CreateSecurityGroupResult securityGroupResult = createSecurityGroupWithRules(); Collection securityGroupIds = new ArrayList(); securityGroupIds.add(securityGroupResult.getGroupId()); runInstancesRequest.setSecurityGroupIds(securityGroupIds); amazonEC2.runInstances(runInstancesRequest); return new Status("Server has been started", fileName); }