适用于 Java 的 AWS 开发工具包
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

管理 Amazon EC2 实例

重要

这是一个预览版,不建议用于生产环境。

创建实例

要创建新 Amazon EC2 实例,请调用 EC2ClientrunInstances 方法,并为它提供 RunInstancesRequest,其中包含要使用的 Amazon Machine Image (AMI) 和一个实例类型

导入

import software.amazon.awssdk.services.ec2.EC2Client; import software.amazon.awssdk.services.ec2.model.InstanceType; import software.amazon.awssdk.services.ec2.model.RunInstancesRequest; import software.amazon.awssdk.services.ec2.model.RunInstancesResponse; import software.amazon.awssdk.services.ec2.model.Tag; import software.amazon.awssdk.services.ec2.model.CreateTagsRequest;

代码

EC2Client ec2 = EC2Client.create(); RunInstancesRequest run_request = RunInstancesRequest.builder() .imageId(ami_id) .instanceType(InstanceType.T1_MICRO) .maxCount(1) .minCount(1) .build(); RunInstancesResponse response = ec2.runInstances(run_request); String instance_id = response.reservation().reservationId(); Tag tag = Tag.builder() .key("Name") .value(name) .build(); CreateTagsRequest tag_request = CreateTagsRequest.builder() .tags(tag) .build(); try { ec2.createTags(tag_request); System.out.printf( "Successfully started EC2 instance %s based on AMI %s", instance_id, ami_id); } catch (EC2Exception e) { System.err.println(e.errorMessage()); System.exit(1); }

请参阅 GitHub 上的完整示例

启动实例

要启动 Amazon EC2 实例,请调用 EC2ClientstartInstances 方法,并为它提供 StartInstancesRequest,其中包含要启动实例的 ID。

导入

import software.amazon.awssdk.services.ec2.EC2Client; import software.amazon.awssdk.services.ec2.model.StartInstancesRequest;

代码

EC2Client ec2 = EC2Client.create(); StartInstancesRequest request = StartInstancesRequest.builder() .instanceIds(instance_id).build(); ec2.startInstances(request);

请参阅 GitHub 上的完整示例

停止实例

要停止 Amazon EC2 实例,请调用 EC2ClientstopInstances 方法,并为它提供 StopInstancesRequest,其中包含要停止实例的 ID。

导入

import software.amazon.awssdk.services.ec2.EC2Client; import software.amazon.awssdk.services.ec2.model.StopInstancesRequest;

代码

EC2Client ec2 = EC2Client.create(); StopInstancesRequest request = StopInstancesRequest.builder() .instanceIds(instance_id).build(); ec2.stopInstances(request);

请参阅 GitHub 上的完整示例

重启实例

要重启 Amazon EC2 实例,请调用 EC2ClientrebootInstances 方法,并为它提供 RebootInstancesRequest,其中包含要重启实例的 ID。

导入

import software.amazon.awssdk.services.ec2.EC2Client; import software.amazon.awssdk.services.ec2.model.RebootInstancesRequest; import software.amazon.awssdk.services.ec2.model.RebootInstancesResponse;

代码

EC2Client ec2 = EC2Client.create(); RebootInstancesRequest request = RebootInstancesRequest.builder() .instanceIds(instance_id).build(); RebootInstancesResponse response = ec2.rebootInstances(request);

请参阅 GitHub 上的完整示例

描述实例

要列出您的实例,您需要创建 DescribeInstancesRequest 并调用 EC2ClientdescribeInstances 方法。该方法将返回 DescribeInstancesResponse 对象,您可以用它来列出您的账户和区域的 Amazon EC2 实例。

实例按预留进行分组。每个预留对应对启动实例的 startInstances 的调用。要列出您的实例,您必须先调用 DescribeInstancesResponse 类的 reservations 方法,然后在每个返回的 Reservation 对象上调用 instances

导入

import software.amazon.awssdk.services.ec2.EC2Client; import software.amazon.awssdk.services.ec2.model.DescribeInstancesRequest; import software.amazon.awssdk.services.ec2.model.DescribeInstancesResponse; import software.amazon.awssdk.services.ec2.model.Instance; import software.amazon.awssdk.services.ec2.model.Reservation;

代码

DescribeInstancesRequest request = DescribeInstancesRequest.builder().build(); while(!done) { DescribeInstancesResponse response = ec2.describeInstances(request); for(Reservation reservation : response.reservations()) { for(Instance instance : reservation.instances()) { System.out.printf( "Found reservation with id %s, " + "AMI %s, " + "type %s, " + "state %s " + "and monitoring state %s", instance.instanceId(), instance.imageId(), instance.instanceType(), instance.state().name(), instance.monitoring().state()); System.out.println(""); } } if(response.nextToken() == null) { done = true; } }

结果将分页;您可以获取更多结果,方法是将从结果对象的 nextToken 方法返回的值传递到新请求对象的 nextToken 方法,然后在下一个 describeInstances 调用中使用新请求对象。

请参阅 GitHub 上的完整示例

监控实例

您可以监控 Amazon EC2 实例的各方面,例如 CPU 和网络利用率、可用内存和剩余磁盘空间。要了解有关实例监控的更多信息,请参阅 Amazon EC2 User Guide for Linux Instances 中的监控 Amazon EC2

要开始监控实例,您必须用要监控实例的 ID 创建一个 MonitorInstancesRequest,并将其传递给 EC2ClientmonitorInstances 方法。

导入

import software.amazon.awssdk.services.ec2.EC2Client; import software.amazon.awssdk.services.ec2.model.MonitorInstancesRequest;

代码

EC2Client ec2 = EC2Client.create(); MonitorInstancesRequest request = MonitorInstancesRequest.builder() .instanceIds(instance_id).build(); ec2.monitorInstances(request);

请参阅 GitHub 上的完整示例

停止实例监控

要停止监控实例,您必须用要停止监控实例的 ID 创建一个 UnmonitorInstancesRequest,并将其传递给 EC2ClientunmonitorInstances 方法。

导入

import software.amazon.awssdk.services.ec2.EC2Client; import software.amazon.awssdk.services.ec2.model.UnmonitorInstancesRequest;

代码

EC2Client ec2 = EC2Client.create(); UnmonitorInstancesRequest request = UnmonitorInstancesRequest.builder() .instanceIds(instance_id).build(); ec2.unmonitorInstances(request);

请参阅 GitHub 上的完整示例

更多信息