관리형 Amazon EC2 인스턴스 - AWS SDK for Java 2.x

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

관리형 Amazon EC2 인스턴스

인스턴스 생성

Ec2ClientrunInstances 메서드를 호출하여 새 Amazon EC2 인스턴스를 생성하고, 사용할 Amazon Machine Image(AMI)인스턴스 유형이 포함된 RunInstancesRequest를 제공합니다.

가져오기

import software.amazon.awssdk.regions.Region; 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; import software.amazon.awssdk.services.ec2.model.Ec2Exception;

코드

public static String createEC2Instance(Ec2Client ec2,String name, String amiId ) { RunInstancesRequest runRequest = RunInstancesRequest.builder() .imageId(amiId) .instanceType(InstanceType.T1_MICRO) .maxCount(1) .minCount(1) .build(); RunInstancesResponse response = ec2.runInstances(runRequest); String instanceId = response.instances().get(0).instanceId(); Tag tag = Tag.builder() .key("Name") .value(name) .build(); CreateTagsRequest tagRequest = CreateTagsRequest.builder() .resources(instanceId) .tags(tag) .build(); try { ec2.createTags(tagRequest); System.out.printf( "Successfully started EC2 Instance %s based on AMI %s", instanceId, amiId); return instanceId; } catch (Ec2Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }

GitHub의 전체 예제를 참조하세요.

인스턴스 시작

Amazon EC2 인스턴스를 시작하려면 Ec2Client의 startInstances 메서드를 호출하고 시작할 인스턴스의 ID가 포함된 StartInstancesRequest를 이 메서드에 제공합니다.

가져오기

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.ec2.Ec2Client; import software.amazon.awssdk.services.ec2.model.StartInstancesRequest; import software.amazon.awssdk.services.ec2.model.StopInstancesRequest;

코드

public static void startInstance(Ec2Client ec2, String instanceId) { StartInstancesRequest request = StartInstancesRequest.builder() .instanceIds(instanceId) .build(); ec2.startInstances(request); System.out.printf("Successfully started instance %s", instanceId); }

GitHub의 전체 예제를 참조하세요.

인스턴스 중지

Amazon EC2 인스턴스를 중지하려면 Ec2Client의 stopInstances 메서드를 호출하고 중지할 인스턴스의 ID가 포함된 StopInstancesRequest를 이 메서드에 제공합니다.

가져오기

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.ec2.Ec2Client; import software.amazon.awssdk.services.ec2.model.StartInstancesRequest; import software.amazon.awssdk.services.ec2.model.StopInstancesRequest;

코드

public static void stopInstance(Ec2Client ec2, String instanceId) { StopInstancesRequest request = StopInstancesRequest.builder() .instanceIds(instanceId) .build(); ec2.stopInstances(request); System.out.printf("Successfully stopped instance %s", instanceId); }

GitHub의 전체 예제를 참조하세요.

인스턴스 재부팅

Amazon EC2 인스턴스를 재부팅하려면 Ec2Client의 rebootInstances 메서드를 호출하고 재부팅할 인스턴스의 ID가 포함된 RebootInstancesRequest를 이 메서드에 제공합니다.

가져오기

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.ec2.Ec2Client; import software.amazon.awssdk.services.ec2.model.Ec2Exception; import software.amazon.awssdk.services.ec2.model.RebootInstancesRequest;

코드

public static void rebootEC2Instance(Ec2Client ec2, String instanceId) { try { RebootInstancesRequest request = RebootInstancesRequest.builder() .instanceIds(instanceId) .build(); ec2.rebootInstances(request); System.out.printf( "Successfully rebooted instance %s", instanceId); } catch (Ec2Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

GitHub의 전체 예제를 참조하세요.

인스턴스 설명

인스턴스를 나열하려면 DescribeInstancesRequest를 생성하고 Ec2Client의 describeInstances 메서드를 호출합니다. 그러면 계정과 지역의 Amazon EC2 인스턴스를 나열하는 데 사용할 수 있는 DescribeInstancesResponse 객체가 반환됩니다.

인스턴스는 예약별로 그룹화됩니다. 각 예약은 인스턴스를 시작하는 startInstances 호출에 해당합니다. 인스턴스를 나열하려면 먼저 DescribeInstancesResponse 클래스의 reservations를 호출하고 반환된 각 Reservation 객체에서 instances를 호출해야 합니다.

가져오기

import software.amazon.awssdk.regions.Region; 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; import software.amazon.awssdk.services.ec2.model.Ec2Exception;

코드

public static void describeEC2Instances( Ec2Client ec2){ String nextToken = null; try { do { DescribeInstancesRequest request = DescribeInstancesRequest.builder().maxResults(6).nextToken(nextToken).build(); DescribeInstancesResponse response = ec2.describeInstances(request); for (Reservation reservation : response.reservations()) { for (Instance instance : reservation.instances()) { System.out.println("Instance Id is " + instance.instanceId()); System.out.println("Image id is "+ instance.imageId()); System.out.println("Instance type is "+ instance.instanceType()); System.out.println("Instance state name is "+ instance.state().name()); System.out.println("monitoring information is "+ instance.monitoring().state()); } } nextToken = response.nextToken(); } while (nextToken != null); } catch (Ec2Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

결과가 페이징됩니다. 결과 객체의 nextToken 메서드에서 반환된 값을 새 요청 객체의 nextToken 메서드에 전달하고 다음 번 describeInstances 호출의 새 요청 객체를 사용함으로써 추가 결과를 가져올 수 있습니다.

GitHub의 전체 예제를 참조하세요.

인스턴스 모니터링

CPU와 네트워크 사용률, 사용 가능한 메모리 및 남은 디스크 공간 등 Amazon EC2 인스턴스의 다양한 측면을 모니터링할 수 있습니다. 인스턴스 모니터링에 대한 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서의 Amazon EC2 모니터링을 참조하세요.

인스턴스 모니터링을 시작하려면 모니터링할 인스턴스의 ID로 MonitorInstancesRequest를 생성하고 Ec2Client의 monitorInstances 메서드에 전달합니다.

가져오기

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.ec2.Ec2Client; import software.amazon.awssdk.services.ec2.model.MonitorInstancesRequest; import software.amazon.awssdk.services.ec2.model.UnmonitorInstancesRequest;

코드

public static void monitorInstance( Ec2Client ec2, String instanceId) { MonitorInstancesRequest request = MonitorInstancesRequest.builder() .instanceIds(instanceId).build(); ec2.monitorInstances(request); System.out.printf( "Successfully enabled monitoring for instance %s", instanceId); }

GitHub의 전체 예제를 참조하세요.

인스턴스 모니터링 중지

인스턴스 모니터링을 중지하려면 모니터링을 중지할 인스턴스의 ID로 UnmonitorInstancesRequest를 생성하고 Ec2Client의 unmonitorInstances 메서드에 전달합니다.

가져오기

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.ec2.Ec2Client; import software.amazon.awssdk.services.ec2.model.MonitorInstancesRequest; import software.amazon.awssdk.services.ec2.model.UnmonitorInstancesRequest;

코드

public static void unmonitorInstance(Ec2Client ec2, String instanceId) { UnmonitorInstancesRequest request = UnmonitorInstancesRequest.builder() .instanceIds(instanceId).build(); ec2.unmonitorInstances(request); System.out.printf( "Successfully disabled monitoring for instance %s", instanceId); }

GitHub의 전체 예제를 참조하세요.

추가 정보