Create Amazon EC2 Instance with API

前端 未结 3 2075
挽巷
挽巷 2021-01-30 07:06

Does com.amazonaws.services.ec2 contain a method to create a brand new EC2 instance from an existing AMI? I\'m looking to do this from the Java SDK, not the web management cons

相关标签:
3条回答
  • 2021-01-30 07:53
     var launchRequest = new RunInstancesRequest()
                    {
                        ImageId = amiID,
                        InstanceType = ConfigurationManager.AppSettings["AwsInstanceType"],
                        MinCount = 1,
                        MaxCount = 1,
                        KeyName = keyPairName,
                        SecurityGroupIds = groups,
                        SubnetId = ConfigurationManager.AppSettings["AwsSubnetId"],
    
                    };
                    RunInstancesResponse runInstancesResponse = amazonEc2client.RunInstances(launchRequest);
                    var InstanceId = runInstancesResponse.Reservation.Instances[0].InstanceId;
                    var trequest = new CreateTagsRequest();
                    trequest.Resources=new List<string>(){InstanceId};
                    List<Tag> tags=new List<Tag>();
                    Tag tag=new Tag("Name","TestCodeFinal");
                    tags.Add(tag);
                    trequest.Tags = tags;
                    amazonEc2client.CreateTags(trequest);
                    Reservation reservation = runInstancesResponse.Reservation;
    
    0 讨论(0)
  • 2021-01-30 08:00

    Here is a sample to create EC2 Instances with Amazon AWS SDK for Java :

    // CONNECT TO EC2
    
    InputStream credentialsAsStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("AwsCredentials.properties");
    Preconditions.checkNotNull(credentialsAsStream, "File 'AwsCredentials.properties' NOT found in the classpath");
    AWSCredentials credentials = new PropertiesCredentials(credentialsAsStream);
    
    AmazonEC2 ec2 = new AmazonEC2Client(credentials);
    ec2.setEndpoint("ec2.eu-west-1.amazonaws.com");
    
    // CREATE EC2 INSTANCES
    RunInstancesRequest runInstancesRequest = new RunInstancesRequest()
        .withInstanceType("t1.micro")
        .withImageId("ami-62201116")
        .withMinCount(2)
        .withMaxCount(2)
        .withSecurityGroupIds("tomcat")
        .withKeyName("xebia-france")
        .withUserData(Base64.encodeBase64String(myUserData.getBytes()))
    ;
    
    RunInstancesResult runInstances = ec2.runInstances(runInstancesRequest);
    
    // TAG EC2 INSTANCES
    List<Instance> instances = runInstances.getReservation().getInstances();
    int idx = 1;
    for (Instance instance : instances) {
      CreateTagsRequest createTagsRequest = new CreateTagsRequest();
      createTagsRequest.withResources(instance.getInstanceId()) //
          .withTags(new Tag("Name", "travel-ecommerce-" + idx));
      ec2.createTags(createTagsRequest);
    
      idx++;
    }
    

    Source code (create RDS, EC2 and ELB instances) is available at http://code.google.com/p/xebia-france/source/browse/training/xebia-spring-travel/trunk/xebia-spring-travel-amazon-aws/src/main/java/fr/xebia/demo/amazon/aws/AmazonAwsInfrastructureMaker.java?spec=svn1781&r=1781

    Hope this helps,

    Cyrille

    0 讨论(0)
  • 2021-01-30 08:06

    RunInstances is the method, it should be in the SDK.

    0 讨论(0)
提交回复
热议问题