danglingfarpointer's memoization

仕事周りでの気付き、メモ、愚痴などを書いていきます。

AWSでCentOS 5をインポート

CentOS 5の大雑把なAWSインポート手順。以下のページを参考に、比較的簡単にできた。

参考) http://understeer.hatenablog.com/entry/2014/04/09/172554

実行環境はMac OS X. 手順としては、

ec2-api-toolsとawscli, あとVirtualBoxをインストールしておく。

# brew install ec2-api-tools
# brew install awscli

1. VirtualBoxCentOS 5.Xのイメージ作成

CentOS 5のisoをどこかからダウンロードしてインストール。VMの形式はvdiを選択しておく(*)

(*) VMWareの形式であるvmdkを選択することもできる。実際、後のec2-import-instanceでvmdkがサポートされているので、vmdkで作ったほうがベターである。しかし、ec2-import-instanceの際に、なぜか暗号の方式が違うというエラーで失敗。なので、一旦vdiで作って次の手順でrawに変換している。なお、Virtual PCの形式であるvhdを選択することもできるが、試してない。

なお、rootパスワードでsshログイン出来るようにしておく。デフォルト設定では出来る。

2. vdiからrawに変換

# VBoxManage clonehd /path/to/CentOS5.11.vdi /path/to/CentOS5.11.raw --format RAW

3. VMイメージをインポート

あらかじめS3のバケットを作っておき、そこにVMイメージをアップロードする。

# ec2-import-instance /path/to/CentOS5.11.raw
     -t t2.micro \
     -f RAW \
     -a x86_64 \
     -p Linux \
     --region ap-northeast-1 \
     --availability-zone ap-northeast-1a \
     --bucket bucket_name \
     --subnet subnet-aaaaaaaa \
     -o S3_OWNER_ACCESS_KEY \
     -w S3_OWNER_SECRET_KEY \
     -O AWS_ACCESS_KEY \
     -W AWS_SECRET_KEY

S3にアップロード後、ec2インスタンスが作成される。ec2インスタンスを立ち上げ、sshでrootログインできることを確認したら(*), 一旦stop.

(*) 運用時はもちろんもっとセキュアにすべき。。。

4. AMIを作成

マネージメント・コンソールなどからAMIを作成。これで基本的には完了。

5. S3に上げたVMイメージを削除

最後にS3に残ったVMイメージを削除。おしまい。

# aws s3 rm --recursive s3://bucket_name/raw_image_uuid