メニュー
Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

AMI ツールを設定する

AMI ツールを使用して、instance store-backed Linux AMI を作成し、管理できます。このツールを使用するには、Linux インスタンスにツールをインストールする必要があります。AMI ツールは RPM として使用できるとともに、RPM をサポートしていない Linux ディストリビューションでは .zip ファイルとして使用できます。詳細については、「Amazon EC2 AMI ツール」を参照してください。

注記

AMI ツールは instance store-backed Linux インスタンスでのみサポートされます。Amazon EBS-backed AMI を作成するには、代わりに create-image AWS CLI コマンドを使用します。instance store-backed Windows AMI を作成するには、「Instance Store-Backed Windows AMI の作成」を参照してください。

RPM を使用して AMI ツールを設定するには

  1. yum などの Linux ディストリビューション用のパッケージマネージャを使用して Ruby をインストールします。以下に例を示します。

    Copy
    $ sudo yum install -y ruby
  2. wget や curl などのツールを使用して RPM ファイルをダウンロードします。以下に例を示します。

    Copy
    $ sudo wget http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm
  3. 次のコマンドを使用して RPM をインストールします。

    Copy
    $ sudo yum install ec2-ami-tools.noarch.rpm
  4. 次のコマンドを使用して、AMI ツールのインストールを確認します。

    Copy
    $ ec2-ami-tools-version

    注記

    cannot load such file -- ec2/amitools/version (LoadError) などのロードエラーが発生した場合は、次のステップを完了して、AMI ツールをインストールした場所を RUBYLIB パスに追加します。

  5. (オプション) 前のステップでエラーが発生した場合、AMI ツールをインストールした場所を RUBYLIB パスに追加します。

    1. 追加するパスを調べるには、次のコマンドを実行します。

      Copy
      $ rpm -qil ec2-ami-tools | grep ec2/amitools/version /usr/lib/ruby/site_ruby/ec2/amitools/version.rb /usr/lib64/ruby/site_ruby/ec2/amitools/version.rb
      上記の例で、前のロードエラーで欠落しているファイルは /usr/lib/ruby/site_ruby および /usr/lib64/ruby/site_ruby にあります。

    2. 前のステップの場所を RUBYLIB パスに追加します。

      Copy
      $ export RUBYLIB=$RUBYLIB:/usr/lib/ruby/site_ruby:/usr/lib64/ruby/site_ruby

    3. 次のコマンドを使用して、AMI ツールのインストールを確認します。

      Copy
      $ ec2-ami-tools-version

zip ファイルを使用して AMI ツールを設定するには

  1. Ruby をインストールし、apt-get など、Linux ディストリビューション用のパッケージマネージャを使用して解凍します。以下に例を示します。

    Copy
    $ sudo apt-get update -y && sudo apt-get install -y ruby unzip
  2. wget や curl などのツールを使用して .zip ファイルをダウンロードします。以下に例を示します。

    Copy
    $ wget http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.zip
  3. /usr/local/ec2 など、適切なインストールディレクトリにファイルを解凍します。

    Copy
    $ sudo mkdir -p /usr/local/ec2 $ sudo unzip ec2-ami-tools.zip -d /usr/local/ec2

    .zip ファイルには、ec2-ami-tools-x.x.x フォルダが含まれていて、x.x.x はツールのバージョン番号 (たとえば、ec2-ami-tools-1.5.7) です。

  4. EC2_AMITOOL_HOME 環境変数を、ツールのインストールディレクトリに設定します。以下に例を示します。

    Copy
    $ export EC2_AMITOOL_HOME=/usr/local/ec2/ec2-ami-tools-x.x.x
  5. ツールを PATH 環境変数に追加します。以下に例を示します。

    Copy
    $ export PATH=$EC2_AMITOOL_HOME/bin:$PATH
  6. 次のコマンドを使用して、AMI ツールのインストールを確認できます。

    Copy
    $ ec2-ami-tools-version

AMI ツールのコマンド

AMI ツールで次のコマンドを使用して、instance store-backed Linux AMI を作成および管理できます。ツールをセットアップするには、「AMI ツールを設定する」を参照してください。

ec2-ami-tools-version

説明

AMI ツールのバージョンについて説明します。

構文

ec2-ami-tools-version

オプション

このコマンドにパラメータはありません。

出力

バージョン情報。

このコマンド例では、使用中の AMI ツールのバージョン情報を表示します。

Copy
$ ec2-ami-tools-version 1.5.2 20071010

ec2-bundle-image

説明

ループバックファイル内に作成されるオペレーティングシステムイメージから instance store-backed Linux AMI を作成します。

構文

ec2-bundle-image -c path -k path -u account -i path [-d path] [--ec2cert path] [-r architecture] [--productcodes code1,code2,...] [-B mapping] [-p prefix]

オプション

オプション 説明

-c, --cert path

ユーザーの PEM エンコード RSA パブリックキー証明書ファイル。

必須: はい

例: -c cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem

-k, --privatekey path

PEM エンコードされる RSA キーファイルへのパス。このバンドルをバンドル解除するには、このキーを指定する必要があるため、安全な場所に保管してください。このキーは AWS アカウントに登録されている必要はありません。

必須: はい

例: -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem

-u, --user account

ダッシュのない、ユーザーの AWS アカウント ID。

必須: はい

例: -u 111122223333

-i, --image path

バンドルするイメージへのパス。

必須: はい

例: -i /var/spool/my-image/version-2/debian.img

-d, --destination path

バンドルを作成するディレクトリ。

デフォルト: /tmp

必須: いいえ

例: -d /media/ephemeral0

--ec2cert path

イメージマニフェストの暗号化に使用される Amazon EC2 X.509 パブリックキー証明書へのパス。

us-gov-west-1 および cn-north-1 リージョンではデフォルト以外のパブリックキー証明書を使用し、その証明書へのパスは、このオプションで指定する必要があります。証明書へのパスは、AMI ツールのインストール方法によって異なります。Amazon Linux の場合、証明書の場所は /opt/aws/amitools/ec2/etc/ec2/amitools/ です。「AMI ツールを設定する」で RPM または ZIP ファイルから AMI ツールをインストールした場合、証明書の場所は $EC2_AMITOOL_HOME/etc/ec2/amitools/ です。

デフォルト: ツールによって異なる

必須: us-gov-west-1 および cn-north-1 リージョンの場合のみ。

例: --ec2cert $EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2.pem

-r, --arch architecture

イメージアーキテクチャ。コマンドラインでアーキテクチャを指定しない場合、バンドルの開始時に入力を求められます。

有効な値: i386 | x86_64

必須: いいえ

例: -r x86_64

--productcodes code1,code2,...

登録時にイメージにアタッチする、カンマ区切りの製品コード。

必須: いいえ

例: --productcodes 1234abcd

-B, --block-device-mapping mapping

インスタンスタイプが指定されたデバイスをサポートする場合に、この AMI のインスタンスにブロックデバイスを公開する方法を定義します。

キーと値のペアのカンマ区切りのペアを指定します。名キーは仮想名であり、各値は対応するデバイス名です。仮想名には以下が含まれています。

  • ami – インスタンスによって判断されるルートファイルシステムデバイス

  • root – カーネルによって判断されるルートファイルシステムデバイス

  • swap – インスタンスによって判断されるスワップデバイス

  • ephemeralN – N 番目のインスタンスストアボリューム

必須: いいえ

例: --block-device-mapping ami=sda1,root=/dev/sda1,ephemeral0=sda2,swap=sda3

例: --block-device-mapping ami=0,root=/dev/dsk/c0d0s0,ephemeral0=1

-p, --prefix prefix

バンドル済み AMI ファイルのファイル名プレフィックス。

デフォルト: イメージファイルの名前。たとえば、イメージパスが /var/spool/my-image/version-2/debian.img である場合、デフォルトのプレフィックスは debian.img です。

必須: いいえ

例: -p my-image-is-special

--kernel kernel_id

廃止. カーネルを設定するには、register-image を使用します。

必須: いいえ

例: --kernel aki-ba3adfd3

--ramdisk ramdisk_id

廃止. 必要に応じて、register-image を使用して RAM ディスクを設定します。

必須: いいえ

例: --ramdisk ari-badbad00

一般的なオプション

ほとんどの AMI ツールに共通のオプションについては、「AMI ツール用の一般的なオプション」を参照してください。

出力

バンドルプロセスのステージとステータスを記述するステータスメッセージ。

この例は、ループバックファイルで作成されたオペレーティングシステムイメージから、バンドルされた AMI を作成します。

Copy
$ ec2-bundle-image -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -c cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -u 111122223333 -i image.img -d bundled/ -r x86_64 Please specify a value for arch [i386]: Bundling image file... Splitting bundled/image.gz.crypt... Created image.part.00 Created image.part.01 Created image.part.02 Created image.part.03 Created image.part.04 Created image.part.05 Created image.part.06 Created image.part.07 Created image.part.08 Created image.part.09 Created image.part.10 Created image.part.11 Created image.part.12 Created image.part.13 Created image.part.14 Generating digests for each part... Digests generated. Creating bundle manifest... ec2-bundle-image complete.

ec2-bundle-vol

説明

インスタンスのルートデバイスボリュームを圧縮、暗号化、署名することで、instance store-backed Linux AMI を作成します。

Amazon EC2 はインスタンスから製品コード、カーネル設定、RAM ディスク設定、およびブロックデバイスマッピングを継承しようとします。

デフォルトでは、バンドルプロセスで機密情報を含んでいる可能性があるファイルを除外します。そのようなファイルには、*.sw*.swo*.swp*.pem*.priv*id_rsa**id_dsa**.gpg*.jks*/.ssh/authorized_keys*/.bash_history があります。これらのファイルをすべて含めるには、--no-filter オプションを使用します。これらのファイルの一部を含めるには、--include オプションを使用します。

詳細については、「Instance Store-Backed Linux AMI の作成」を参照してください。

構文

ec2-bundle-vol -c path -k path -u account [-d path] [--ec2cert path] [-r architecture] [--productcodes code1,code2,...] [-B mapping] [--all] [-e directory1,directory2,...] [-i file1,file2,...] [--no-filter] [-p prefix] [-s size] [--[no-]inherit] [-v volume] [-P type] [-S script] [--fstab path] [--generate-fstab] [--grub-config path]

オプション

オプション 説明

-c, --cert path

ユーザーの PEM エンコード RSA パブリックキー証明書ファイル。

必須: はい

例: -c cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem

-k, --privatekey path

ユーザーの PEM エンコード RSA キーファイルへのパス。

必須: はい

例: -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem

-u, --user account

ダッシュのない、ユーザーの AWS アカウント ID。

必須: はい

例: -u 111122223333

-d, --destination destination

バンドルを作成するディレクトリ。

デフォルト: /tmp

必須: いいえ

例: -d /var/run/my-bundle

--ec2cert path

イメージマニフェストの暗号化に使用される Amazon EC2 X.509 パブリックキー証明書へのパス。

us-gov-west-1 および cn-north-1 リージョンではデフォルト以外のパブリックキー証明書を使用し、その証明書へのパスは、このオプションで指定する必要があります。証明書へのパスは、AMI ツールのインストール方法によって異なります。Amazon Linux の場合、証明書の場所は /opt/aws/amitools/ec2/etc/ec2/amitools/ です。「AMI ツールを設定する」で RPM または ZIP ファイルから AMI ツールをインストールした場合、証明書の場所は $EC2_AMITOOL_HOME/etc/ec2/amitools/ です。

デフォルト: ツールによって異なる

必須: us-gov-west-1 および cn-north-1 リージョンの場合のみ。

例: --ec2cert $EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2.pem

-r, --arch architecture

イメージアーキテクチャ。コマンドラインでこれを指定しない場合、バンドルの開始時に入力を求められます。

有効な値: i386 | x86_64

必須: いいえ

例: -r x86_64

--productcodes code1,code2,...

登録時にイメージにアタッチする、カンマ区切りの製品コード。

必須: いいえ

例: --productcodes 1234abcd

-B, --block-device-mapping mapping

インスタンスタイプが指定されたデバイスをサポートする場合に、この AMI のインスタンスにブロックデバイスを公開する方法を定義します。

キーと値のペアのカンマ区切りのペアを指定します。名キーは仮想名であり、各値は対応するデバイス名です。仮想名には以下が含まれています。

  • ami – インスタンスによって判断されるルートファイルシステムデバイス

  • root – カーネルによって判断されるルートファイルシステムデバイス

  • swap – インスタンスによって判断されるスワップデバイス

  • ephemeralN – N 番目のインスタンスストアボリューム

必須: いいえ

例: --block-device-mapping ami=sda1,root=/dev/sda1,ephemeral0=sda2,swap=sda3

例: --block-device-mapping ami=0,root=/dev/dsk/c0d0s0,ephemeral0=1

-a, --all

リモートでマウントされたファイルシステムのディレクトリを含めて、すべてのディレクトリをバンドルします。

必須: いいえ

例: -a

-e, --exclude directory1,directory2,...

バンドルオペレーションから除外する絶対ディレクトリパスとファイルのリスト。このパラメータは --all オプションを上書きします。除外を指定すると、パラメータとともにリストされたディレクトリとサブディレクトリは、ボリュームにバンドルされません。

必須: いいえ

例: ボリュームのマウントポイントが -v /foo であり、ディレクトリ /foo/bar および /foo/baz を除外する場合は、-e /bar,/baz を指定します。

-i, --include file1,file2,...

バンドルオペレーションに含めるファイルのリスト。指定されたファイルは、それ以外の場合は AMI から除外されます。これは、機密情報が含まれる可能性があるためです。

必須: いいえ

例: ボリュームマウントポイントが /mnt/myvol/ で、ファイル /mnt/myvol/foo/bar.pem を含める場合は、-i /foo/bar.pem を指定します。

--no-filter

指定した場合、AMI からファイルは除外されません。これは、機密情報が含まれる可能性があるためです。

必須: いいえ

例: --no-filter

-p, --prefix prefix

バンドル済み AMI ファイルのファイル名プレフィックス。

デフォルト: image

必須: いいえ

例: -p my-image-is-special

-s, --size size

作成するイメージファイルの MB (1024 * 1024 バイト) 単位のサイズ。最大サイズは 10240 MB です。

デフォルト: 10240

必須: いいえ

例: -s 2048

--[no-]inherit

イメージがインスタンスのメタデータを継承するかどうかを示します (デフォルトでは継承します)。--inherit を有効にし、インスタンスメタデータにアクセスできない場合、バンドルは失敗します。

必須: いいえ

例: --inherit

-v, --volume volume

バンドルを作成する、マウントされたボリュームへの絶対パス。

デフォルト: ルートディレクトリ (/)

必須: いいえ

例: -v /mnt/my-customized-ami

-P, --partition type

ディスクイメージでパーティションテーブルを使用するかどうかを示します。パーティションテーブルタイプを指定しない場合、デフォルトでは、該当する場合はボリュームの親ブロックデバイスで使用されるタイプになります。それ以外の場合、デフォルトは gpt です。

有効な値: mbr | gpt | none

必須: いいえ

例: --partition gpt

-S, --script script

バンドルの直前に実行するカスタマイズスクリプト。スクリプトでは単一の引数である、ボリュームのマウントポイントが予期されます。

必須: いいえ

--fstab path

イメージにバンドルする fstab へのパス。これを指定しない場合、Amazon EC2 は /etc/fstab をバンドルします。

必須: いいえ

例: --fstab /etc/fstab

--generate-fstab

Amazon EC2 で提供される fstab を使用してボリュームをバンドルします。

必須: いいえ

例: --generate-fstab

--grub-config

イメージにバンドルする別の grub 設定ファイルへのパス。デフォルトでは、ec2-bundle-vol/boot/grub/menu.lst または /boot/grub/grub.conf が、クローンされたイメージ上に存在することを想定します。このオプションにより、別の grub 設定ファイルへのパスを指定することができ、このファイルはデフォルトに上書きしてコピーされます (存在する場合)。

必須: いいえ

例: --grub-config /path/to/grub.conf

--kernel kernel_id

廃止. カーネルを設定するには、register-image を使用します。

必須: いいえ

例: --kernel aki-ba3adfd3

--ramdisk ramdisk_id

廃止. 必要に応じて、register-image を使用して RAM ディスクを設定します。

必須: いいえ

例: --ramdisk ari-badbad00

一般的なオプション

ほとんどの AMI ツールに共通のオプションについては、「AMI ツール用の一般的なオプション」を参照してください。

出力

バンドルのステージとステータスを説明するステータスメッセージ。

この例では、ローカルマシンのルートファイルシステムのスナップショットを圧縮、暗号化、署名することで、バンドルされた AMI を作成します。

Copy
$ ec2-bundle-vol -d /mnt -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -c cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -u 111122223333 -r x86_64 Copying / into the image file /mnt/image... Excluding: sys dev/shm proc dev/pts proc/sys/fs/binfmt_misc dev media mnt proc sys tmp/image mnt/img-mnt 1+0 records in 1+0 records out mke2fs 1.38 (30-Jun-2005) warning: 256 blocks unused. Splitting /mnt/image.gz.crypt... Created image.part.00 Created image.part.01 Created image.part.02 Created image.part.03 ... Created image.part.22 Created image.part.23 Generating digests for each part... Digests generated. Creating bundle manifest... Bundle Volume complete.

ec2-delete-bundle

説明

Amazon S3 ストレージから、指定されたバンドルを削除します。バンドルを削除した後で、対応する AMI からインスタンスを起動することはできません。

構文

ec2-delete-bundle -b bucket -a access_key_id -s secret_access_key [-t token] [--url url] [--region region] [--sigv version] [-m path] [-p prefix] [--clear] [--retry] [-y]

オプション

オプション 説明

-b, --bucket bucket

バンドルされた AMI に続いてオプションの '/' 区切りパスプレフィックスを含む Amazon S3 バケットの名前

必須: はい

例: -b myawsbucket/ami-001

-a, --access-key access_key_id

AWS アクセスキー ID。このオプションの値を指定する前に、「AWS アクセスキーを管理するためのベストプラクティス」のガイダンスを確認し、それに従ってください。

必須: はい

例: -a AKIAIOSFODNN7EXAMPLE

-s, --secret-key secret_access_key

AWS シークレットアクセスキー。このオプションの値を指定する前に、「AWS アクセスキーを管理するためのベストプラクティス」のガイダンスを確認し、それに従ってください。

必須: はい

例: -s wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

-t, --delegation-token token

AWS リクエストに渡す委任トークン。詳細については、一時的なセキュリティ認証情報の使用 を参照してください。

必須: 一時的なセキュリティ認証情報を使用している場合のみ。

デフォルト: AWS_DELEGATION_TOKEN 環境変数の値 (設定されている場合)。

例: -t AQoDYXdzEJr...<remainder of security token>

--region region

リクエスト署名で使用するリージョン。

デフォルト: us-east-1

必須: 条件付き

条件: 署名バージョン 4 を使用する場合は必須

例; --region eu-west-1

--sigv version

リクエストに署名するときに使用する署名バージョン。

有効な値: 2 | 4

デフォルト: 4

必須: いいえ

例: --sigv 2

-m, --manifest path

マニフェストファイルへのパス。

必須: 条件付き

条件: --prefix または --manifest を指定する必要があります。

例: -m /var/spool/my-first-bundle/image.manifest.xml

-p, --prefix prefix

バンドルされた AMI ファイル名プレフィックス。プレフィックス全体を指定します。たとえば、プレフィックスが image.img である場合は、-p image ではなく -p image.img を使用します。

必須: 条件付き

条件: --prefix または --manifest を指定する必要があります。

例: -p image.img

--clear

指定されたバンドルを削除した後で空の場合は、Amazon S3 バケットを削除します。

必須: いいえ

例: --clear

--retry

すべての Amazon S3 エラーで、オペレーションあたり最大 5 回まで自動的に再試行します。

必須: いいえ

例: --retry

-y, --yes

すべてのプロンプトへの答えは yes であると自動的に想定します。

必須: いいえ

例: -y

一般的なオプション

ほとんどの AMI ツールに共通のオプションについては、「AMI ツール用の一般的なオプション」を参照してください。

出力

Amazon EC2 は、削除プロセスのステージとステータスを示すステータスメッセージを表示します。

この例では、Amazon S3 からバンドルを削除します。

Copy
$ ec2-delete-bundle -b myawsbucket -a your_access_key_id -s your_secret_access_key Deleting files: myawsbucket/image.manifest.xml myawsbucket/image.part.00 myawsbucket/image.part.01 myawsbucket/image.part.02 myawsbucket/image.part.03 myawsbucket/image.part.04 myawsbucket/image.part.05 myawsbucket/image.part.06 Continue? [y/n] y Deleted myawsbucket/image.manifest.xml Deleted myawsbucket/image.part.00 Deleted myawsbucket/image.part.01 Deleted myawsbucket/image.part.02 Deleted myawsbucket/image.part.03 Deleted myawsbucket/image.part.04 Deleted myawsbucket/image.part.05 Deleted myawsbucket/image.part.06 ec2-delete-bundle complete.

ec2-download-bundle

説明

指定された instance store-backed Linux AMI を Amazon S3 ストレージからダウンロードします。

構文

ec2-download-bundle -b bucket -a access_key_id -s secret_access_key -k path [--url url] [--region region] [--sigv version] [-m file] [-p prefix] [-d directory] [--retry]

オプション

オプション 説明

-b, --bucket bucket

バンドルが存在する Amazon S3 バケットの名前。この後に、オプションで '/' 区切りのパスプレフィックスが続きます。

必須: はい

例: -b myawsbucket/ami-001

-a, --access-key access_key_id

AWS アクセスキー ID。このオプションの値を指定する前に、「AWS アクセスキーを管理するためのベストプラクティス」のガイダンスを確認し、それに従ってください。

必須: はい

例: -a AKIAIOSFODNN7EXAMPLE

-s, --secret-key secret_access_key

AWS シークレットアクセスキー。このオプションの値を指定する前に、「AWS アクセスキーを管理するためのベストプラクティス」のガイダンスを確認し、それに従ってください。

必須: はい

例: -s wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

-k, --privatekey path

マニフェストの復号に使用されるプライベートキー。

必須: はい

例: -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem

--url url

Amazon S3 サービスの URL。

デフォルト: https://s3.amazonaws.com

必須: いいえ

例: --url https://s3.example.com

--region region

リクエスト署名で使用するリージョン。

デフォルト: us-east-1

必須: 条件付き

条件: 署名バージョン 4 を使用する場合は必須

例; --region eu-west-1

--sigv version

リクエストに署名するときに使用する署名バージョン。

有効な値: 2 | 4

デフォルト: 4

必須: いいえ

例: --sigv 2

-m, --manifest file

マニフェストファイル名 (パスなし)。マニフェスト (-m) またはプレフィックス (-p) を指定することをお勧めします。

必須: いいえ

例: -m my-image.manifest.xml

-p, --prefix prefix

バンドル済み AMI ファイルのファイル名プレフィックス。

デフォルト: image

必須: いいえ

例: -p my-image

-d, --directory directory

ダウンロードしたバンドルが保存されているディレクトリ。ディレクトリが存在している必要があります。

デフォルト: 現在の作業ディレクトリ。

必須: いいえ

例: -d /tmp/my-downloaded-bundle

--retry

すべての Amazon S3 エラーで、オペレーションあたり最大 5 回まで自動的に再試行します。

必須: いいえ

例: --retry

一般的なオプション

ほとんどの AMI ツールに共通のオプションについては、「AMI ツール用の一般的なオプション」を参照してください。

出力

ダウンロードプロセスの多様な段階ステータスを示すメッセージが表示されます。

この例では、bundled ディレクトリを作成 (Linux mkdir コマンドを使用) し、myawsbucket Amazon S3 バケットからバンドルをダウンロードします。

Copy
$ mkdir bundled $ ec2-download-bundle -b myawsbucket/bundles/bundle_name -m image.manifest.xml -a your_access_key_id -s your_secret_access_key -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -d mybundle Downloading manifest image.manifest.xml from myawsbucket to mybundle/image.manifest.xml ... Downloading part image.part.00 from myawsbucket/bundles/bundle_name to mybundle/image.part.00 ... Downloaded image.part.00 from myawsbucket Downloading part image.part.01 from myawsbucket/bundles/bundle_name to mybundle/image.part.01 ... Downloaded image.part.01 from myawsbucket Downloading part image.part.02 from myawsbucket/bundles/bundle_name to mybundle/image.part.02 ... Downloaded image.part.02 from myawsbucket Downloading part image.part.03 from myawsbucket/bundles/bundle_name to mybundle/image.part.03 ... Downloaded image.part.03 from myawsbucket Downloading part image.part.04 from myawsbucket/bundles/bundle_name to mybundle/image.part.04 ... Downloaded image.part.04 from myawsbucket Downloading part image.part.05 from myawsbucket/bundles/bundle_name to mybundle/image.part.05 ... Downloaded image.part.05 from myawsbucket Downloading part image.part.06 from myawsbucket/bundles/bundle_name to mybundle/image.part.06 ... Downloaded image.part.06 from myawsbucket

ec2-migrate-manifest

説明

別のリージョンをサポートするよう instance store-backed Linux AMI (たとえば、証明書、カーネル、RAM ディスク) を変更します。

構文

ec2-migrate-manifest -c path -k path -m path {(-a access_key_id -s secret_access_key --region region) | (--no-mapping)} [--ec2cert ec2_cert_path] [--kernel kernel-id] [--ramdisk ramdisk_id]

オプション

オプション 説明

-c, --cert path

ユーザーの PEM エンコード RSA パブリックキー証明書ファイル。

必須: はい

例: -c cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem

-k, --privatekey path

ユーザーの PEM エンコード RSA キーファイルへのパス。

必須: はい

例: -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem

--manifest path

マニフェストファイルへのパス。

必須: はい

例: --manifest my-ami.manifest.xml

-a, --access-key access_key_id

AWS アクセスキー ID。このオプションの値を指定する前に、「AWS アクセスキーを管理するためのベストプラクティス」のガイダンスを確認し、それに従ってください。

必須: 条件付き

条件: 自動マッピングを使用する場合は必須です。

例: -a AKIAIOSFODNN7EXAMPLE

-s, --secret-key secret_access_key

AWS シークレットアクセスキー。このオプションの値を指定する前に、「AWS アクセスキーを管理するためのベストプラクティス」のガイダンスを確認し、それに従ってください。

必須: 条件付き

条件: 自動マッピングを使用する場合は必須です。

例: -s wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

--region region

マッピングファイル内で検索するリージョン。

条件: 自動マッピングを使用する場合は必須です。

必須: 条件付き

例: --region eu-west-1

--no-mapping

カーネルと RAM ディスクの自動マッピングを無効にします。

移行中、Amazon EC2 は、コピー先リージョン用に設計されたカーネルと RAM ディスクで、マニフェストファイルのカーネルと RAM ディスクを置き換えます。--no-mapping パラメータを指定しない場合、ec2-migrate-bundleDescribeRegions および DescribeImages オペレーションを使用して、自動化されたマッピングを実行します。

必須: 条件付き

条件: -a-s、および --region オプション (自動マッピングに使用されます) を指定しない場合は必須です。

--ec2cert path

イメージマニフェストの暗号化に使用される Amazon EC2 X.509 パブリックキー証明書へのパス。

us-gov-west-1 および cn-north-1 リージョンではデフォルト以外のパブリックキー証明書を使用し、その証明書へのパスは、このオプションで指定する必要があります。証明書へのパスは、AMI ツールのインストール方法によって異なります。Amazon Linux の場合、証明書の場所は /opt/aws/amitools/ec2/etc/ec2/amitools/ です。「AMI ツールを設定する」で ZIP ファイルから AMI をインストールした場合、証明書の場所は EC2$EC2_AMITOOL_HOME/etc/ec2/amitools/ です。

デフォルト: ツールによって異なる

必須: us-gov-west-1 および cn-north-1 リージョンの場合のみ。

例: --ec2cert $EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2.pem

--kernel kernel_id

選択するカーネルの ID。

重要

カーネルと RAM ディスクではなく PV-GRUB を使用することをお勧めします。詳細については、「PV-GRUB」を参照してください。

必須: いいえ

例: --kernel aki-ba3adfd3

--ramdisk ramdisk_id

選択する RAM ディスクの ID。

重要

カーネルと RAM ディスクではなく PV-GRUB を使用することをお勧めします。詳細については、「PV-GRUB」を参照してください。

必須: いいえ

例: --ramdisk ari-badbad00

一般的なオプション

ほとんどの AMI ツールに共通のオプションについては、「AMI ツール用の一般的なオプション」を参照してください。

出力

バンドルプロセスのステージとステータスを記述するステータスメッセージ。

この例では、my-ami.manifest.xml マニフェストで指定された AMI を米国から欧州にコピーします。

Copy
$ ec2-migrate-manifest --manifest my-ami.manifest.xml --cert cert-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem --privatekey pk-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem --region eu-west-1 Backing up manifest... Successfully migrated my-ami.manifest.xml It is now suitable for use in eu-west-1.

ec2-unbundle

説明

instance store-backed Linux AMI からバンドルを再作成します。

構文

ec2-unbundle -k path -m path [-s source_directory] [-d destination_directory]

オプション

オプション 説明

-k, --privatekey path

PEM エンコードされる RSA キーファイルへのパス。

必須: はい

例: -k $HOME/pk-234242example.pem

-m, --manifest path

マニフェストファイルへのパス。

必須: はい

例: -m /var/spool/my-first-bundle/Manifest

-s, --source source_directory

バンドル含むディレクトリ。

デフォルト: 現在のディレクトリ。

必須: いいえ

例: -s /tmp/my-bundled-image

-d, --destination destination_directory

AMI をバンドル解除するディレクトリ。宛先ディレクトリが存在している必要があります。

デフォルト: 現在のディレクトリ。

必須: いいえ

例: -d /tmp/my-image

一般的なオプション

ほとんどの AMI ツールに共通のオプションについては、「AMI ツール用の一般的なオプション」を参照してください。

この Linux および UNIX の例では、image.manifest.xml ファイルに指定された AMI をバンドル解除します。

Copy
$ mkdir unbundled $ ec2-unbundle -m mybundle/image.manifest.xml -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -s mybundle -d unbundled $ ls -l unbundled total 1025008 -rw-r--r-- 1 root root 1048578048 Aug 25 23:46 image.img

出力

バンドル解除プロセスの多様な段階ステータスを示すメッセージが表示されます。

ec2-upload-bundle

説明

instance store-backed Linux AMI のバンドルを Amazon S3 にアップロードし、アップロードされたオブジェクトで適切な ACL を設定します。詳細については、「Instance Store-Backed Linux AMI の作成」を参照してください。

構文

ec2-upload-bundle -b bucket -a access_key_id -s secret_access_key [-t token] -m path [--url url] [--region region] [--sigv version] [--acl acl] [-d directory] [--part part] [--retry] [--skipmanifest]

オプション

オプション 説明

-b, --bucket bucket

バンドルを保存する Amazon S3 バケットの名前。その後にオプションで '/' 区切りのパスプレフィックスが続きます。バケットが存在しない場合、バケット名を使用できる場合はバケットが作成されます。

必須: はい

例: -b myawsbucket/bundles/ami-001

-a, --access-key access_key_id

AWS アクセスキー ID。このオプションの値を指定する前に、「AWS アクセスキーを管理するためのベストプラクティス」のガイダンスを確認し、それに従ってください。

必須: はい

例: -a AKIAIOSFODNN7EXAMPLE

-s, --secret-key secret_access_key

お客様の AWS シークレットアクセスキー。このオプションの値を指定する前に、「AWS アクセスキーを管理するためのベストプラクティス」のガイダンスを確認し、それに従ってください。

必須: はい

例: -s wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

-t, --delegation-token token

AWS リクエストに渡す委任トークン。詳細については、一時的なセキュリティ認証情報の使用 を参照してください。

必須: 一時的なセキュリティ認証情報を使用している場合のみ。

デフォルト: AWS_DELEGATION_TOKEN 環境変数の値 (設定されている場合)。

例: -t AQoDYXdzEJr...<remainder of security token>

-m, --manifest path

マニフェストファイルへのパス。マニフェストファイルはバンドルプロセス中に作成され、バンドルを含むディレクトリにあります。

必須: はい

例: -m image.manifest.xml

--url url

廃止. バケットの場所が (eu-west-1 ではなく) EU に制約されない限り、代わりに --region オプションを使用します。--location フラグは、その特定の場所の制限を対象にする唯一の方法です。

Amazon S3 エンドポイントサービスの URL。

デフォルト: https://s3.amazonaws.com

必須: いいえ

例: --url https://s3.example.com

--region region

宛先の Amazon S3 バケットに対してリクエスト署名を使用するリージョン。

  • バケットが存在せず、リージョンを指定しない場合、ツールは (us-east-1 で) 場所の制約のないバケットを作成します。

  • バケットが存在しない場合にリージョンを指定すると、ツールは、指定したリージョンでバケットを作成します。

  • バケットが存在し、リージョンを指定しない場合、ツールはバケットの場所を使用します。

  • バケットが存在し、リージョンとして us-east-1 を指定すると、ツールはエラーメッセージなしでバケットの実際の場所を使用し、一致する既存のファイルは上書きされます。

  • バケットが存在し、バケットの実際の場所に一致しない (us-east-1 以外の) リージョンを指定すると、ツールはエラーで終了します。

バケットが (eu-west-1 ではなく) EU の場所に制約されている場合は、代わりに --location フラグを使用します。--location フラグは、その特定の場所の制限を対象にする唯一の方法です。

デフォルト: us-east-1

必須: 条件付き

条件: 署名バージョン 4 を使用する場合は必須

例; --region eu-west-1

--sigv version

リクエストに署名するときに使用する署名バージョン。

有効な値: 2 | 4

デフォルト: 4

必須: いいえ

例: --sigv 2

--acl acl

バンドルされたイメージのアクセスコントロールリストのポリシー。

有効な値: public-read | aws-exec-read

デフォルト: aws-exec-read

必須: いいえ

例: --acl public-read

-d, --directory directory

バンドルされた AMI 部分を含むディレクトリ。

デフォルト: マニフェストファイルを含むディレクトリ (-m オプションを参照)。

必須: いいえ

例: -d /var/run/my-bundle

--part part

指定された部分とそれ以降のすべての部分のアップロードを開始します。

必須: いいえ

例: --part 04

--retry

すべての Amazon S3 エラーで、オペレーションあたり最大 5 回まで自動的に再試行します。

必須: いいえ

例: --retry

--skipmanifest

マニフェストをアップロードしません。

必須: いいえ

例: --skipmanifest

--location location

廃止. バケットの場所が (eu-west-1 ではなく) EU に制約されない限り、代わりに --region オプションを使用します。--location フラグは、その特定の場所の制限を対象にする唯一の方法です。

宛先 Amazon S3 バケットの場所の制約。バケットが存在し、バケットの実際の場所に一致しない場所を指定する場合、ツールはエラーで終了します。バケットが存在し、場所を指定しない場合、ツールはバケットの場所を使用します。バケットが存在しない場合に場所を指定すると、ツールは、指定した場所でバケットを作成します。バケットが存在せず、場所を指定しない場合、ツールは (us-east-1 で) 場所の制約のないバケットを作成します。

デフォルト: --region が指定された場合、場所はその指定したリージョンに設定されます。--region を指定しない場合、場所はデフォルトで us-east-1 になります。

必須: いいえ

例: --location eu-west-1

一般的なオプション

ほとんどの AMI ツールに共通のオプションについては、「AMI ツール用の一般的なオプション」を参照してください。

出力

Amazon EC2 は、アップロードプロセスのステージとステータスを示すステータスメッセージを表示します。

この例では、image.manifest.xml マニフェストで指定されたバンドルをアップロードします。

Copy
$ ec2-upload-bundle -b myawsbucket/bundles/bundle_name -m image.manifest.xml -a your_access_key_id -s your_secret_access_key Creating bucket... Uploading bundled image parts to the S3 bucket myawsbucket ... Uploaded image.part.00 Uploaded image.part.01 Uploaded image.part.02 Uploaded image.part.03 Uploaded image.part.04 Uploaded image.part.05 Uploaded image.part.06 Uploaded image.part.07 Uploaded image.part.08 Uploaded image.part.09 Uploaded image.part.10 Uploaded image.part.11 Uploaded image.part.12 Uploaded image.part.13 Uploaded image.part.14 Uploading manifest ... Uploaded manifest. Bundle upload completed.

AMI ツール用の一般的なオプション

このセクションで説明するほとんどのコマンドでは、次の表に示すオプションのパラメータを使用できます。

オプション 説明

--help, -h

ヘルプメッセージを表示します。

--version

バージョンと著作権表記を表示します。

--manual

手動のエントリを表示します。

--batch

インタラクティブなプロンプトを制約するバッチモードで実行します。

--debug

問題のトラブルシューティング時に役立つ可能性があるデバッグ情報を表示します。

デジタル署名用証明書の管理

このセクションでは、署名証明書 (X.509 証明書としても知られる) の作成および管理方法を説明します。これらの証明書は、特定の AMI ツールコマンドで必須です。

重要

Amazon EC2 は本来、サービス呼び出しのための SOAP プロトコルをサポートしていました。SOAP ベースの呼び出しでは、署名証明書を使用してリクエストにデジタル署名します。しかし、Amazon EC2 での SOAP のサポートは廃止されることになったため (「SOAP リクエスト」を参照)、代わりに HTTP クエリリクエストを使用してください。詳細については、「API リクエストを行う」を参照してください。

認証情報の更新を目的として、各ユーザーに 2 つの証明書を持たせることができます。

注記

ユーザー所有の証明書を表示し管理するアクセス権限を与えることができます。詳細については、IAM ユーザーガイド の「Allow Users to Manage Their Own Passwords, Access Keys, and Signing Certificate」を参照してください。

ユーザー署名証明書の作成

署名証明書に署名する必要がある場合は、最初に証明書を取得してから、AWS にアップロードします。Amazon EC2 の署名証明書作成の API アクションはないため、ユーザー署名証明書の作成には OpenSSL などのサードパーティーツールを使用しなければなりません。

注記

AWS マネジメントコンソール 内の認証情報のページを使用することで X.509 証明書を作成することができますが、これは AWS アカウントのルート認証情報のみに有効な方法となります。個別の Amazon EC2 ユーザー用のコンソールを使用して生成された証明書をアップロードすることはできません。代わりに、次のセクションで説明しているプロセスを使用します。

署名証明書を作成するには、以下を実行する必要があります。

  • OpenSSL をインストールおよび設定します。

  • プライベートキーを作成します。

  • プライベートキーを使用して、証明書を作成します。

  • 証明書を AWS にアップロードします。

OpenSSL のインストールと設定

証明書の作成およびアップロードには、SSL および TLS プロトコル対応のツールが必要です。OpenSSL はオープンソースのツールで、RSA トークンの作成やそのトークンにプライベートキーを署名するための基本的な暗号関数を提供します。OpenSSL がまだインストールされていない場合、以下の方法に従ってください。

Linux および UNIX への OpenSSL のインストール

  1. OpenSSL: Source, Tarballs (http://www.openssl.org/source/) を開きます。

  2. 最新のソースと直近にビルドされたパッケージをダウンロードします。

Windows へ OpenSSL をインストールするには

  1. バイナリ (https://wiki.openssl.org/index.php/Binaries) を参照します。

  2. 適切な [OpenSSL for Windows] オプションを選択します。

    Windows 用のダウンロードページが表示されます。

  3. Microsoft Visual C++ 2008 Redistributables をまだインストールしていない場合には、お客様の環境に適した [Microsoft Visual C++ 2008 Redistributables] リンクを選択して [Download] をクリックします。[Microsoft Visual C++ 2008 Redistributable Setup Wizard] に従って操作を進めます。

    注記

    システムに Microsoft Visual C++ 2008 Redistributable パッケージがすでにインストールされているか不明な場合は、まず OpenSSL をインストールしてみます。Microsoft Visual C++ 2008 Redistributable パッケージがまだインストールされていない場合は、OpenSSL インストーラでエラーが表示されます。インストールする OpenSSL のバージョンと一致したアーキテクチャ (32 ビットまたは 64 ビット) をインストールする必要があります。

  4. Microsoft Visual C++ 2008 Redistributable パッケージをインストールしたら、ご利用の環境に適したバージョンの OpenSSL バイナリを選択し、ローカルにファイルを保存します。[OpenSSL Setup Wizard] を起動します。

  5. [OpenSSL Setup Wizard] の手順の従って操作します。

OpenSSL コマンドを使う前に、OS の設定で OpenSSL をインストールした場所を指定する必要があります。

Linux または Unix で OpenSSL を設定するには

  1. コマンドラインから OpenSSL_HOME 変数の値を設定して、OpenSSL をインストールした場所を以下のように指定します。

    Copy
    export OpenSSL_HOME=path_to_your_OpenSSL_installation
  2. パスに OpenSSL インストールの情報を含めて設定します。

    Copy
    export PATH=$PATH:$OpenSSL_HOME/bin

    注記

    export コマンドを使用した環境変数に対する変更は、現在のコマンドラインセッションでのみ有効です。シェル設定ファイルを使用して設定することで、環境変数を永続的に変更することもできます。詳細については、オペレーティングシステムのドキュメントを参照してください。

Windows で OpenSSL を設定するには

  1. [コマンドプロント] ウィンドウを開きます。

  2. OpenSSL_HOME 変数の値を設定して、OpenSSL をインストールした場所を指定します。

    Copy
    set OpenSSL_HOME=path_to_your_OpenSSL_installation
  3. OpenSSL_CONF 変数の値を設定して、OpenSSL インストールのコンフィギュレーションファイルの場所を指定します。

    Copy
    set OpenSSL_CONF=path_to_your_OpenSSL_installation\bin\openssl.cfg
  4. パスに OpenSSL インストールの情報を含めて設定します。

    Copy
    set Path=%Path%;%OpenSSL_HOME%\bin

    注記

    [Command Prompt] ウィンドウで Windows 環境変数を変更した場合、その変更は現在のコマンドラインセッションにおいてのみ有効になります。環境変数を永続的に変更するには、環境変数をシステムプロパティとして設定する必要があります。お使いの Windows のバージョンにより手順が異なりますが、詳細については、Windows のドキュメントを参照してください。

プライベートキーの作成

ユーザー署名証明書作成の際、一意のプライベートキーが必要となります。

プライベートキーを作成するには

  1. コマンドラインで、以下の構文と共にコマンド openssl genrsa を使用します。

    Copy
    openssl genrsa 2048 > private-key.pem

    private-key.pem にはファイル名を特定してください。例では、2048 は 2048 ビットの暗号化を表しています。AWS では 1024 ビットおよび 4096 ビットの暗号化についてもサポートしています。2048 ビットまたは 4096 ビット RSA キーの作成を推奨しています。

  2. Auto Scaling、CloudWatch、または Elastic Load Balancing 用の CLI コマンドの認証のために証明書を使用する場合は、次のコマンドを使用して PKCS8 形式で証明書を生成してください。

    Copy
    openssl pkcs8 -topk8 -nocrypt -inform PEM -in private-key.pem -out private-key-in-PKCS8-format.pem

ユーザー署名証明書の作成

ユーザー署名証明書の作成が可能です。

ユーザー署名証明書を作成するには

  • openssl req コマンドを次のパラメータと共に使用します。

    Copy
    openssl req -new -x509 -nodes -sha256 -days 365 -key private-key.pem -outform PEM -out certificate.pem

    private-key.pem には、前述の手順で作成された .pem ファイルを使用します。certificate.pem には、証明書作成を希望するファイル名を使用します。証明書は .pem フォーマットでなければなりません。セキュリティのため、この例のように SHA-256 または SHA-512 をハッシュアルゴリズムとして使用することをお勧めします。

    例では、-days 365 スイッチにより 365 日有効な証明書が特定されています。その他のスイッチの詳細については、コマンドラインで openssl req -h を入力してください。

    OpenSSL では、以下のようなメッセージが表示されます。

    Copy
    You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank. For some fields there will be a default value. If you enter '.', the field will be left blank.

    ユーザー署名証明書を作成しているため (サーバー証明書ではない)、入力を指示された場合でも、すべての値を空白のまま残すことができます。これらの値は、サーバー証明書の真偽確認用として認証局 (CA) に使用されるものです。ただし、ユーザー署名証明書が認証セッションにアップロードされるため、AWS には、さらに検証するための証明書の情報は必要でなく、パブリックキーとプライベートキーのキーペアのみが要求されます。

.pem ファイルには証明書の値が含まれており、続くアップロード手順中のコピー & ペーストが可能です。

ユーザー署名証明書のアップロード

upload-signing-certificate AWS CLI コマンドを使用して、署名証明書をアップロードできます。証明書をアップロードするユーザーの名前と、証明書の値が含まれる .pem ファイルへのパスを指定します。

Copy
aws iam upload-signing-certificate --user-name user-name --certificate-body file://path/to/certificate.pem

または、UploadSigningCertificate IAM API アクションを使用します。

注記

証明書のサイズによって署名証明書をアップロードする場合、POST リクエストを使用します。

ユーザーは 2 つ以上の署名証明書を持つことはできません。

ユーザー署名証明書の管理

AWS CLI を使用して署名証明書を管理できます。

アクセスキーと同様に、各証明書は、Active または Inactive のどちらかのステータスとなります。デフォルト設定では、証明書をアップロードする際のステータスは Active となっています。証明書をアップロードする際、記録用に保存可能な証明書 ID が返されます。ユーザーの証明書の ID をリストできます。証明書の削除はいつでも行うことができます。

ユーザーの証明書を表示するには、list-signing-certificates AWS CLI コマンドを使用します。

Copy
aws iam list-signing-certificates --user-name user-name

ユーザーの署名証明書を無効化または再有効化するには、update-signing-certificate AWS CLI コマンドを使用します。次のコマンドは証明書を無効にします。

Copy
aws iam update-signing-certificate --certificate-id OFHPLP4ZULTHYPMSYEX7O4BEXAMPLE --status Inactive --user-name user-name

証明書を削除するには、delete-signing-certificate AWS CLI コマンドを使用します。

Copy
aws iam delete-signing-certificate --user-name user-name --certificate-id OFHPLP4ZULTHYPMSYEX7O4BEXAMPLE

または、以下の IAM API アクションを使用できます。