EC2のAMIを自作するならEC2上で作業すると楽できる

まずは手始めにRightScaleが提供してるCentOSのAMIを使ってみたりしたんですが、やっぱり自分でイメージ作りたいよね、ということでチャレンジ。

が非常に参考になるので、これを全面的に参考にして作ってみました。vgktaro++。が、どうにもSSHでログイン出来ない。Key Pairの受け取りに失敗してるのかなとも思ったけど、何せ接続できないので確認する術がない。

そもそもイメージ作って、S3に転送するだけでも結構な時間を食うので試行錯誤するのがとても面倒。自宅の上り回線がショボくて、2GBのイメージをS3に転送するのに40分ぐらいかかったりして、それが動かないと心が折れそうになるわけですよ。

そこでふと「既存のAMIでInstanceを立ち上げて、その中で新しいAMI作ればいいんじゃね?」ということに気付いた次第です。

ddで空のイメージ作ったり、mke2fsするのも速いし、日本のマンションからちんたら送るのと違って、S3へのGB単位のイメージの転送も快適です。

更には、get-credentials.shとか書いてスクリプトで公開鍵を受け取ったりしなくても、作業してるInstanceの.ssh/authorized_keysを自作AMIに直接仕込んでやれば済む。ここがちゃんと動くかどうかを心配しなくていいのは非常にありがたいです。

使ってみなきゃなーと思いながらも先送りにしていたEC2ですが、いざ使い始めてみると「なんで今まで触らなかったんや」と過去の自分を責め立てたくなりますね。実際に使うかどうかは別として、選択肢として持っていないのは大きな機会損失だと思いました。用語とAWSのサイト構成を把握するのが最初のハードルで、そこを超えればとりあえず使う分にはわりと簡単なので、まだの人は試してみるといいよ。

(以下、追記)
http://aws.amazon.com/s3/#pricingによれば、

Data transferred between Amazon EC2 and Amazon S3 within the same region is free of charge (i.e., $0.00 per GB).

とのこと。AMIを自作してS3に転送する場合は、EC2の別のインスタンスで作業をした方がコスト面でも有利なように見受けられます。S3のtransfer inが$0.100/GBに対して、Small Instanceのコストは$0.085/hourなので、GB単位のデータを転送するならお得ではないでしょうか。