S3に稼働中のEC2のAMIを保存する
実は。。。
インスタンスをEASTに作ってセットアップしてしまったので、今のうちにWESTに移そうと思います。EBSで実運用は行う予定ですが、一旦はEASTのS3にイメージを保存して、WESTに送って、WESTで新しくインスタンスを立ち上げてからEBSにて稼働させる予定。
その手順のAMIの登録までです。相変わらず備忘録ですが。
1.S3のBucketを作る
1-1.まずはX.509証明を取得
AWSのページの右上、Your Account→Security Credentialsのページを開きます。
真ん中のタブ「X.509 Certificates」で、X.509 Certificateカラムの下にあるDownloadをクリックして、2つのキーをダウンロードして下さい。
pk-******.pem
cert-*******.pem
1-2.Access keyとSecret Access keyの取得
同じページの左のタブ「Access Keys」で、「Access Key ID」と「Secret Access Key」を取得します。
2.S3Foxのインストール
Firefoxを開き、以下のアドオンをインストールして下さい。
https://addons.mozilla.org/ja/firefox/addon/3247
3.S3のbacketを作る
S3Foxを起動後、左上のManage Accountsで、1-2.で取得したAccess key IDとSecret Access keyを設定します。
S3Foxの右側のエリアで右クリックし、Create Directoryでディレクトリを作成します。この名前は、AWS全体で一意じゃないといけないので、他の人とかぶるとNGです。
参考
http://codezine.jp/article/trackback/3232
4.稼働中のインスタンスのイメージを作成
稼働中のインスタンスに、1-1.で取得したファイルを転送しておきます。
それを/mntに保存。
いよいよAMIの作成です。ただし、保存されるのは/dev/sda1のみで、/dev/sda2などは保存されないのでご注意を。
# ce /mnt # ec2-bundle-vol -d /mnt --privatekey pk-*****.pem --cert cert-*****.pem --user ${Acount key ID} --fstab /etc/fstab Please specify a value for arch [i386]: 32bitならこのままEnter。54bitなら「x86_64」と入力しEnter
サイズによって時間はまちまちですが、作成されるまでに時間がかかります。
15分くらいですかね。
5.AMIをS3に転送
「Amazon EC2」⇔「Amazon S3」間の転送量は課金対象外となっているため、安心して使うことができます。
# ec2-upload-bundle --bucket ${バケット名} --manifest image.manifest.xml --access-key ${Access key ID} --secret-key ${Secret Access key ID}
${バケット名}は、例えば「bucketname」というバケットを使っていて、その直下にある「ec2_images」ディレクトリ内に「fedora」という名前でAMIを保存したい場合は、上記例の${アップ先のバケット名}部分に「bucketname/ec2_images/fedora」と入力します。
6.AMIの登録
AMIを登録しておけば、次回からそのAMIで起動が可能になります。
ローカルのパソコンから以下のコマンドを打ってください。
※ec2-api-toolsがインストールされている前提です。
# ec2-register ${バケット名}/image.manifest.xml -n ${イメージ名}
${アップ先のバケット名}は、5.で指定したものです。
${イメージ名}は分かりやすいもので
このとき、以下の出力がされるます
IMAGE ami-*****
これがAMIのIDになります。クライアントから以下でも確認可能です。
# ec2-describe-images -o self
参考
http://codezine.jp/article/trackback/3546
http://builder.japan.zdnet.com/member/u502383/blog/2008/08/19/entry_27013061/