昨日、Amazon EC2 上で Windows Server 2003 の AMI を起動して、カスタマイズしてみたわけですが、このままシャットダウンしたり、不慮の障害で逝ってしまった場合は、カスタマイズした内容ともども消えてしまうので、本日は Amazon S3 に保存して同 EC2 に登録してみました。
ポイントは、保存する AMI が Windows ということです。ネットで調べてみたり本で調べてみると、どうも Linux の例ばかりなんですよね。
- 作者: 学びing
- 出版社/メーカー: 秀和システム
- 発売日: 2008/12/24
- メディア: 単行本
- 購入: 4人 クリック: 87回
- この商品を含むブログ (22件) を見る
#なお、ec2-bundle-vol と ec2-upload-bundle の実体は Ruby で書かれているようで。
とりあえず、Amazon EC2 API Tools という Java ベースのコマンドラインツールを自分の PC にダウンロードしてみて、コマンド一覧をみたらそれらしいコマンドを発見、いろいろ調べてみると、Windows の場合はわざわざインスタンスにログオンしなくても、自分の PC 上で以下のようなコマンドを実行すると S3 に保存できるようで。
ec2-bundle-instance [Instance ID] -b [S3 に作るディレクトリ名] -p [AMIファイル名のプリフィックス] -o [AWS Access Key] -w [AWS Secret Access Key]
なお、Instance ID は Elasticfox の Instance タブから見られるもの、S3 に作ったディレクトリ名は Amazon EC2 の登録用に使われていない任意の名前(実質 AMI の保存先となる)、AMI ファイル名のプリフィックスは保存時イメージファイル名の先頭部分、AWS Access Key/Secret Access Key は Elasticfox で起動時に指定したものです。
Linux みたく、いちいち各インスタンスのディスクに一時的に保存しなくて S3 にダイレクト保存できるので楽ちんプーです。で、ec2-bundle-instance コマンドに関して Amazon EC2 の開発者サイトを見てみると、Windows 専用コマンドであり、制約として C ドライブしか保存してくれないようです。Windows の public AMI は、C ドライブと D ドライブ分けてあるので、きちんと保存したい内容やアプリケーションは C ドライブにおいておく必要があるということでちょっと注意。
#なんといって、私がはまったので。D ドライブの方がディスク容量が多かったので。とほほ。マニュアルはきちんと読みましょう。
で、ec2-bundle-instance コマンドを実行すると、すぐにプロンプトが返ってきます。ま、バックエンドで保存処理しているようで、処理の進行度合いは以下のコマンドで確認できます。
ec2-describe-bundle-tasks
今回試した限りでは、15 分ほどで終了しました(まー、保存する量によると思いますけど)。
#なお、保存処理中はインスタンスがシャットダウンされていて、保存処理が終わったら自動的に再起動されるようです。
Amazon S3 に保存した AMI を Amazon EC2 に登録するには、以下のコマンドを使います。
なお、S3 に作ったディレクトリ名とかプリフィックスは、ec2-bundle-instance コマンドで指定したものを使います。
ちなみに、ec2-describe-bundle-tasks や ec2-register 相当のことは Elasticfox の Bundle Tasks からもできるようです。
さらにちなみに、Amazon S3 に保存した AMI の内容は、S3Fox というこれまた FireFox ベースの GUI ツールで確認できます(ま、このツールの本来の目的は、自分の PC と Amazon S3 間のファイル転送ツールって感じですけど)。
さて、とりあえずひととおり Amazon EC2 弄りはひと段落ついたので、機会を見て Amazon Elastic MapReduce を試してみたい今日この頃。
P.S. 今回の 2 日間の Amazon EC2/S3 評価でかかった費用: 16 ドルほど