自2024年7月31日起, AWS SDK for Java 1.x已进入维护模式,并将于2025年12月31日end-of-support
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
管理 Amazon EC2实例
创建实例
要创建新 Amazon EC2 实例,请调用 AmazonEC2Client 的 runInstances
方法,并为它提供 RunInstancesRequest,其中包含要使用的亚马逊机器映像 (AMI) 和一个实例类型。
导入
import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.InstanceType; import com.amazonaws.services.ec2.model.RunInstancesRequest; import com.amazonaws.services.ec2.model.RunInstancesResult; import com.amazonaws.services.ec2.model.Tag;
代码
RunInstancesRequest run_request = new RunInstancesRequest() .withImageId(ami_id) .withInstanceType(InstanceType.T1Micro) .withMaxCount(1) .withMinCount(1); RunInstancesResult run_response = ec2.runInstances(run_request); String reservation_id = run_response.getReservation().getInstances().get(0).getInstanceId();
请参阅完整示例
启动实例
要启动 Amazon EC2 实例,请调用 AmazonEC2Client 的 startInstances
方法,并为它提供 StartInstancesRequest,其中包含要启动实例的 ID。
导入
import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.StartInstancesRequest;
代码
final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); StartInstancesRequest request = new StartInstancesRequest() .withInstanceIds(instance_id); ec2.startInstances(request);
请参阅完整示例
停止实例
要停止 Amazon EC2 实例,请调用 AmazonEC2Client 的 stopInstances
方法,并为它提供 StopInstancesRequest,其中包含要停止的实例的 ID。
导入
import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.StopInstancesRequest;
代码
final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); StopInstancesRequest request = new StopInstancesRequest() .withInstanceIds(instance_id); ec2.stopInstances(request);
请参阅完整示例
重启实例
要重启 Amazon EC2 实例,请调用 AmazonEC2Client 的 rebootInstances
方法,并为它提供 RebootInstancesRequest,其中包含要重启实例的 ID。
导入
import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.RebootInstancesRequest; import com.amazonaws.services.ec2.model.RebootInstancesResult;
代码
final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); RebootInstancesRequest request = new RebootInstancesRequest() .withInstanceIds(instance_id); RebootInstancesResult response = ec2.rebootInstances(request);
请参阅完整示例
描述实例
要列出您的实例,您需要创建 DescribeInstancesRequest 并调用 AmazonEC2Client 的 describeInstances
方法。它将返回 DescribeInstancesResult 对象,您可以用它来列出您的账户和区域的 Amazon EC2 实例。
实例按预留进行分组。每个预留对应对启动实例的 startInstances
的调用。要列出您的实例,您必须首先在每个返回的 DescribeInstancesResult
ReservationgetReservations' method, and then call `getInstances
对象上调用 类的 。
导入
import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.DescribeInstancesRequest; import com.amazonaws.services.ec2.model.DescribeInstancesResult; import com.amazonaws.services.ec2.model.Instance; import com.amazonaws.services.ec2.model.Reservation;
代码
final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); boolean done = false; DescribeInstancesRequest request = new DescribeInstancesRequest(); while(!done) { DescribeInstancesResult response = ec2.describeInstances(request); for(Reservation reservation : response.getReservations()) { for(Instance instance : reservation.getInstances()) { System.out.printf( "Found instance with id %s, " + "AMI %s, " + "type %s, " + "state %s " + "and monitoring state %s", instance.getInstanceId(), instance.getImageId(), instance.getInstanceType(), instance.getState().getName(), instance.getMonitoring().getState()); } } request.setNextToken(response.getNextToken()); if(response.getNextToken() == null) { done = true; } }
结果将分页;您可以获取更多结果,方式是:将从结果对象的 getNextToken
方法返回的值传递到您的原始请求对象的 setNextToken
方法,然后在下一个 describeInstances
调用中使用相同的请求对象。
请参阅完整示例
监控实例
您可以监控 Amazon EC2 实例的各方面,例如 CPU 和网络利用率、可用内存和剩余磁盘空间。要了解有关实例监控的信息,请参阅《Amazon EC2 用户指南(适用于 Linux 实例)》中的监控 Amazon EC2。
要开始监控实例,您必须用要监控实例的 ID 创建一个 MonitorInstancesRequest,并将其传递给 AmazonEC2Client 的 monitorInstances
方法。
导入
import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.MonitorInstancesRequest;
代码
final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); MonitorInstancesRequest request = new MonitorInstancesRequest() .withInstanceIds(instance_id); ec2.monitorInstances(request);
请参阅完整示例
停止实例监控
要停止监控实例,您必须用要停止监控实例的 ID 创建一个 UnmonitorInstancesRequest,并将其传递给 AmazonEC2Client 的 unmonitorInstances
方法。
导入
import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.AmazonEC2ClientBuilder; import com.amazonaws.services.ec2.model.UnmonitorInstancesRequest;
代码
final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); UnmonitorInstancesRequest request = new UnmonitorInstancesRequest() .withInstanceIds(instance_id); ec2.unmonitorInstances(request);
请参阅完整示例
更多信息
-
《Amazon EC2 API Reference》中的 RunInstances
-
《Amazon EC2 API Reference》中的 DescribeInstances
-
《Amazon EC2 API Reference》中的 StartInstances
-
《Amazon EC2 API Reference》中的 StopInstances
-
《Amazon EC2 API Reference》中的 RebootInstances
-
《Amazon EC2 API Reference》中的 MonitorInstances
-
《Amazon EC2 API Reference》中的 UnmonitorInstances