AWS: AMI の作り方(Amazon Machine Image)

AWS

AMI 作成のおおまかな流れ

  1. アクセスキーや証明書を取得
  2. イメージに含めたくないファイルを整理
  3. イメージを作成
  4. 作成したイメージを S3 にアップロード
  5. アップロードしたイメージを AMI として登録
  6. 稼働チェック

1. 各種証明書やキーを取得

こちらから、X.509 証明書API キーシークレットキーアカウント ID を取得してメモしておきます。

2. イメージに含めたくないファイルを整理

/mnt 以下はイメージから除外されるので、含めたくないファイルやディレクトリーは削除するか、/mnt 以下に移動するなりする。

[[MORE]]

3. OS のイメージを作成

$ cd /mnt/
$ ec2-bundle-vol -c {cert-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem} -k {pk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem} -u {AWS_ACCOUNT_ID} -r x86_64
Copying / into the image file /tmp/image...
Excluding: 
	 /sys
	 /proc
	 /dev/pts
	 /data
	 /proc/sys/fs/binfmt_misc
	 /dev
	 /media
	 /mnt
	 /proc
	 /sys
	 /tmp/image
	 /mnt/img-mnt
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.001797 seconds, 584 MB/s
mke2fs 1.39 (29-May-2006)
Bundling image file...
Created image.part.00
.
.
.
Created image.part.xx
Generating digests for each part...
Digests generated.
Unable to read instance meta-data for ramdisk-id
Unable to read instance meta-data for product-codes
Creating bundle manifest...
ec2-bundle-vol complete.

4. 作成したイメージを S3 にアップロード

$ cd /tmp
$ ec2-upload-bundle -b {BUCKET_NAME} -a {ACCESS_KEY} -s {SECRET_ACCESS_KEY} -m image.manifest.xml --location ap-northeast-1
Uploading bundled image parts to the S3 bucket xxxxx ...
Uploaded image.part.00
.
.
.
Uploaded image.part.xx
Uploading manifest ...
Uploaded manifest.
Bundle upload completed.

5. アップロードしたイメージを AMI として登録

AWS Management Console > S3 > 4 で入力したバケット > image.manifest.xml のプロパティを開き、リンクをコピーします。

AWS Management Console > EC2 > AMIs > Register New AMI > AMI Manifest Path に取得したリンクのパス部分をペーストします。 AMIs に登録した AMI が表示されていれば OK です。

6. 起動チェック

AWS Management Console > EC2 > Instances > Launch Instance でインスタンス作成ウィザードを起動します。

AMI を選択する画面の My AMIs に登録した AMI があるはずなので、それを選択し、インスタンスを起動します。

あとは起動完了後、SSH で入るなり、Web サーバーであれば Public DNS でアクセスしてみたりして、動作確認をします。

参考記事

AWS