Example usage for com.amazonaws.services.ec2.model RunInstancesRequest setImageId

List of usage examples for com.amazonaws.services.ec2.model RunInstancesRequest setImageId

Introduction

In this page you can find the example usage for com.amazonaws.services.ec2.model RunInstancesRequest setImageId.

Prototype


public void setImageId(String imageId) 

Source Link

Document

The ID of the AMI.

Usage

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);
}