2009.04.14
Amazon EC2でLinuxのbundle
意外とコマンドが覚えられないLinuxでのバンドル。
WindowsではAWS Management Consoleなどの管理ツールからバンドルしなきゃいけないのですが、LinuxはSSHで入ってコマンドラインから行わないといけません。
そんな自分の覚書。
1.準備
バンドルをするためには、AWS Access Identifiersで取得できるX.509証明書と秘密鍵が必要です。
X.509証明書:cert-********.pem
秘密鍵:pk-********.pem
これをSCPでもFTPでもアップロード。
よく説明サイトではSCPでアップしてますが、SCPを使うと暗号化した転送が行われるので安全っていうのと、SSHを使うのでEC2側で特に準備せずに使えるという利点があります。まぁ、サーバ構築してれば手軽なFTPでもいいよ。
だって、Windowsからパス指定してコマンド打つの面倒なんだもの。
これらのファイルを「/mnt」に保存したとして話を進めます。
2.ボリュームのバンドル
ec2-bundle-vol -d /mnt -k /mnt/[pk.pem] -c /mnt/[cert.pem] -u [account number] -p [image name]
[pk.pem] [cert.pem]
本当はpk-*************.pemなんて長ったらしい名前が付いてるのでそれを指定。
[account number]
AWSにログインすると右上に表示されてるハイフン付き12ケタの数字を指定。
[image name]
デフォルトだと「image.manifest.xml」が作成されるので指定したい場合は名前付ける。
3.イメージのアップロード
ec2-upload-bundle -b [bucket name] -m /mnt/[image name].manifest.xml -a [Access Key ID] -s [Secret Access Key]
[bucket name]
S3のbucket。。。要するにディレクトリを指定。Windowsだと階層構造を作れないけど、こっちはできる。
[image name]
バンドル時に指定した名前。指定していないと「image」。
[Access Key ID] [Secret Access Key]
AWSログイン後にAccess Identifiersページで見れる「Access Key ID」と「Secret Access Key」。
4.AMIの登録
これはAmazon EC2 API Toolsを使います。
環境変数なんかの登録が必要らしいのでクライアントに設定しておいてください。
ec2-register [bucket name]/[image name].manifest.xml
[bucket name] [image name]
3のアップロードで指定したものをそのまま指定。
これでElasticfoxやAWS Management Consoleに追加されてるはずです。