Gestione delle Amazon EC2 istanze - AWS SDK for Java 2.x

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione delle Amazon EC2 istanze

Creazione di un'istanza

Crea una nuova Amazon EC2 istanza chiamando il runInstancesmetodo di Ec2Client, fornendogli una Amazon Machine Image (AMI) RunInstancesRequestcontenente l'Amazon Machine Image (AMI) da utilizzare e un tipo di istanza.

Importazioni

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;

Codice

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 ""; }

Guarda l'esempio completo su. GitHub

Avviare un'istanza

Per avviare un'Amazon EC2istanza, chiama il startInstancesmetodo di Ec2Client, fornendogli un file StartInstancesRequestcontenente l'ID dell'istanza da avviare.

Importazioni

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;

Codice

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); }

Vedi l'esempio completo su. GitHub

Arrestare un'istanza

Per fermare un'Amazon EC2istanza, chiama il stopInstancesmetodo di Ec2Client, fornendogli un file StopInstancesRequestcontenente l'ID dell'istanza da interrompere.

Importazioni

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;

Codice

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); }

Vedi l'esempio completo su. GitHub

Riavviare un'istanza

Per riavviare un'Amazon EC2istanza, chiama il rebootInstancesmetodo di Ec2Client, fornendogli un file RebootInstancesRequestcontenente l'ID dell'istanza da riavviare.

Importazioni

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;

Codice

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); } }

Vedi l'esempio completo su. GitHub

Descrivere le istanze

Per elencare le tue istanze, crea un metodo DescribeInstancesRequeste chiama il metodo di Ec2Client. describeInstances Restituirà un DescribeInstancesResponseoggetto che puoi utilizzare per elencare le Amazon EC2 istanze del tuo account e della tua regione.

Le istanze sono raggruppate in base alla prenotazione. Ogni prenotazione corrisponde alla chiamata a startInstances che ha avviato l'istanza. Per elencare le istanze, devi prima chiamare il metodo reservations della classe DescribeInstancesResponse e quindi chiamare instances su ciascun oggetto Reservation restituito.

Importazioni

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;

Codice

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); } }

I risultati vengono paginati; puoi ottenere altri risultati passando il valore restituito dal metodo nextToken dell'oggetto risultante a un nuovo metodo nextToken dell'oggetto richiesta e utilizzando il nuovo oggetto richiesta nella chiamata successiva a describeInstances.

Vedi l'esempio completo su. GitHub

Monitorare un'istanza

Puoi monitorare diversi aspetti delle istanze Amazon EC2, ad esempio utilizzo della CPU e della rete, memoria disponibile e spazio su disco rimanente. Per ulteriori informazioni sul monitoraggio delle istanze, consulta Monitoraggio Amazon EC2 nella Guida per l'Amazon EC2utente delle istanze Linux.

Per iniziare a monitorare un'istanza, è necessario crearne un'MonitorInstancesRequestcon l'ID dell'istanza da monitorare e passarla al metodo di Ec2Client. monitorInstances

Importazioni

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;

Codice

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); }

Vedi l'esempio completo su. GitHub

Arrestare il monitoraggio delle istanze

Per interrompere il monitoraggio di un'istanza, creane un'istanza UnmonitorInstancesRequestcon l'ID dell'istanza per interrompere il monitoraggio e passala al metodo di unmonitorInstancesEc2Client.

Importazioni

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;

Codice

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); }

Vedi l'esempio completo su. GitHub

Ulteriori informazioni