5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

EC2インスタンスからAMIを作成する[SDK for Java]

Last updated at Posted at 2014-11-05

はじめに

EC2のインスタンスからAMIを作成します。

概要

ManagementConsoleから、インスタンスを選択してCreateImageをすることでAMIを作成することができます。

この時あわせてsnapshotも作成されます。マシンイメージを取得する前にインスタンスはrebootしますのでご注意ください。

ManagementConsoleでは、「NoReboot」にチェックすることでRebootしないで取得することは可能ですが、作成プロセス中に一貫した状態が保てない可能性があります。

ちなみにSDK for JavaではCreateImageRequestでnorebootを設定することで実現できます。


		CreateImageRequest createImageRequest = new CreateImageRequest(
				instanceId, "create-image-test-2")
				.withDescription("description test 2")
				.withNoReboot(true);

SDK for Java


import com.amazonaws.ClientConfiguration;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.autoscaling.model.BlockDeviceMapping;
import com.amazonaws.services.ec2.AmazonEC2;
import com.amazonaws.services.ec2.AmazonEC2Client;
import com.amazonaws.services.ec2.model.CreateImageRequest;
import com.amazonaws.services.ec2.model.CreateImageResult;
import com.amazonaws.services.ec2.model.DescribeSnapshotAttributeRequest;
import com.amazonaws.services.ec2.model.DescribeSnapshotAttributeResult;
import com.amazonaws.services.ec2.model.DescribeSnapshotsRequest;
import com.amazonaws.services.ec2.model.DescribeSnapshotsResult;
import com.amazonaws.services.ec2.model.DescribeVolumesResult;
import com.amazonaws.services.ec2.model.Snapshot;

public class Ec2AmiCreateFromInstance {

	/**
	 * 第一引数で指定されたec2 instance idから、AMIを作成します。
	 * 
	 * @param args
	 */
	public static void main(String[] args) {

		String instanceId = args[0];

		if (instanceId == null || "".equals(instanceId)) {
			throw new IllegalArgumentException("instance id is null or empty.");
		}

		AWSCredentialsProvider provider = new ProfileCredentialsProvider("uzr");

		AmazonEC2 ec2_tokyo = Region.getRegion(Regions.AP_NORTHEAST_1)
				.createClient(AmazonEC2Client.class, provider,
						new ClientConfiguration());

		CreateImageRequest createImageRequest = new CreateImageRequest(
				instanceId, "create-image-test-2")
				.withDescription("description test 2");

		CreateImageResult image = ec2_tokyo.createImage(createImageRequest);
		System.out.println(instanceId + "から" + image.getImageId() + "を作成しました。");
	}
}

参考

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?