管理 Amazon EC2实例 - 适用于 Java 的 AWS 开发工具包
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理 Amazon EC2实例

创建 实例

通过调用 Amazon EC2 的 AmazonEC2Client 方法创建新的 runInstances 实例,并为它提供 RunInstancesRequest,其中包含要使用的 Amazon 系统映像 (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 的调用。要列出您的实例,您必须首先在每个返回的 Reservation 对象上调用 DescribeInstancesResult 类的 getReservations' method, and then call :methodname:`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 User Guide for Linux Instances 中的监控 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);

请参阅完整示例

更多信息