JavaによるAWSの処理


Java用aws sdk v 2ドキュメント(pdf)

AWS SDK


まず、SDKはソフトウェア開発キットの略です.api、ライブラリなどの機能を組み合わせて開発することができます.
AWS SDKは、プログラミング言語を使用してAWSサービスを操作するライブラリです.
「AWS SDKは、Amazon S 3、Amazon EC 2、Amazon SimpleDBなどのJavaアプリケーションの構築を容易にします.」

使用


awsの購読


awsを購読し、IAMユーザーを作成します.
必要なサービスを作成します.

credential,region


awssdkを使用してaws IAMにアクセスするには、IAMアカウントの作成時に指定するアクセスキーと領域が必要です.それをどこかに置くと、自分で処理します.アクセスキーは認証ファイルに保存する必要があり、regionはconfigファイルに保存する必要があります.別に設定した記憶はありませんが、その場所にファイルがあります.


sdkのダウンロード

  • Mavenと同じ構築システムを使用するか、EclipseにAWS Toolkit for Eclipseを提供することができます.
  • でない場合はawsjarファイルを直接ダウンロードする必要があります.
  • スプリングアイテムを作成し、Mavenを使用しました.mavenのような構築ツールは依存項目を追加するだけでダウンロードできるので、この方法が望ましい.ec 2をテストするので、ec 2に関連する依存項目のみを追加します.
    <dependency>
    	<groupId>software.amazon.awssdk</groupId>
    	<artifactId>ec2</artifactId>
    	<version>2.13.0</version>
    </dependency>
    依存項目の追加は推奨されませんが、次のようになります.
    <project>
     <dependencies>
      <dependency>
       <groupId>software.amazon.awssdk</groupId>
       <artifactId>aws-sdk-java</artifactId>
       <version>2.X.X</version>	<!--사용할 버전을 입력해줍니다-->
      </dependency>
     </dependencies>
    </project>
    
    Maven updateの後はawsライブラリ?api?.

    ec 2へのアクセス


    『アマゾンsdkマニュアル』のコードを参考にしました.
    package com.roon.aws;
    
    import java.util.ArrayList;
    import java.util.List;
    
    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.Ec2Exception;
    import software.amazon.awssdk.services.ec2.model.Instance;
    import software.amazon.awssdk.services.ec2.model.Reservation;
    
    public class AwsSdkSample {
    	public static void main(String[] args) {
    		AwsSdkSample sample = new AwsSdkSample();
    		
    		//An Amazon Web Services region that hosts a set of Amazon services. 
    		Region region=Region.AP_NORTHEAST_2;	//seoul region
    		
    		Ec2Client ec2= Ec2Client.	//Service client for accessing Amazon EC2.
    				builder().	//Create a builder that can be used to configure and create a Ec2Client.
    				region(region).	//Configure the region with which the SDK should communicate.
    				build();	//An immutable object that is created from theproperties that have been set on the builder.
    		
    		sample.describeEC2Instances(ec2);
    	}
    	
    	public void describeEC2Instances( Ec2Client ec2){
    		 boolean done = false;
    		 String nextToken = null;
    		 try {
    			 do {
    				 
    				 DescribeInstancesRequest request =
    				 DescribeInstancesRequest.builder().maxResults(6).nextToken(nextToken).build();
    				 DescribeInstancesResponse response = ec2.describeInstances(request);
    				 
    				 //Describes the specified instances or all of AWS account's instances. 
    				 for (Reservation reservation : response.reservations()) {	
    					 for (Instance instance : reservation.instances()) {
    						 System.out.printf(
    						 "Found Reservation with id %s\n, " +
    						 "AMI %s\n, " +
    						 "type %s\n, " +
    						 "state %s\n " +
    						 "and monitoring state %s\n",
    						 instance.instanceId(),
    						 instance.imageId(),
    						 instance.instanceType(),
    						 instance.state().name(),	//current state of the instance
    						 instance.monitoring().state());	//모니터링 되고 있는지
    						 System.out.println("");
    					 }
    				 }
    				 nextToken = response.nextToken();
    			 } while (nextToken != null);
    		 } catch (Ec2Exception e) {
    			 System.err.println(e.awsErrorDetails().errorMessage());
    			 System.exit(1);
    		 }
    	}
    }
    
    
    実行時のインスタンスの情報は次のとおりです.