【AmazonサーバでFrontier】

5、AMIを作る

ようやくスタートラインに立ち、Amazonでサーバを立ち上げて実際に触り始める。
ただ、毎回shutdownでは、やった作業が全部失われてしまう。
と言う事で今回は自分のAMIを作成する事にする。【おさらい】

■AMIについて
1) Amazon Machine Imageの略
2) マシンにOS、ソフトウェアが入ったイメージがファイル化されている
3) いくつでも、好きなだけ立ち上げる事が出来る
■AMIから立ち上げたインスタンス(仮想サーバ)について
1) shutdownすると全て消える
2) rebootすると消えずに残る
3) インスタンスが稼働中は課金が発生する

サーバの設定途中の今は、24時間稼働させる必要がないため
変更を保存したのちのshutdownが望ましいと思われる。

前回作業はshutdownしたため、また0からスタート
今回は立ち上げるサーバのOSも考えてAMIを選ぶ。

希望のOSは「CentOS 5.0」なのだが
Amazonが提供してくれているAMIの中にはない。(2009/08/19現在)

「OSがCentOS 5.0のAMI」と言う条件だけなら沢山ある。

私と同じようにして作成した自作AMIを、全体に公開している人達が居て
AMI一覧に沢山並ぶのだが、やはり信用できるほどの確証を得る事が出来ない。
そこで見つけたのが、サードパーティ「Rightscale」が提供しているAMI。
実際にAmazonEC2の体験も出来るらしい。

http://www.rightscale.com/

ここなら安心して使えそう、と言う事で採用。
AMI(選んだAMIは「ami-0913f760」)を指定して起動。

ec2-run-instances ami-0913f760 -k [キーファイル名]

問題なく起動。
最初に立ち上げたサーバのタイムゾーンを日本に設定しておく。
初期設定はアメリカサーバだからアメリカ時間。

早速立ち上がったサーバにPuTTYを使ってアクセスしてみる。
アクセス成功!
画面には大きく「Rightscale」の文字が。

とりあえずタイムゾーンを日本に設定したので、
その状態が保持されるか、試しにAMIを作ってみる。

【準備】

・Amazon S3にAMIデータ保存用のディレクトリ作成

FireFoxのアドオンとしてS3Foxと言うものがあるのでそのアドオンを使用してディレクトリを作成する。S3Fox Organizer for Amazonのダウンロード

S3Foxをインストールし、起動すると
「Account Name」「Access Key」「Secret Key」を聞かれるので
入力して「Add」をクリック。
Account Name ・・・ 自分のアカウント
Access Key・・・自分のAccess Key ID
(Amazonサイト、Access Identifiersで確認)
Secret Key ・・・ Secret Access Key
(Amazonサイト、Access Identifiersで確認)

するとFTPツールで見たような
「左側にローカルディレクトリ」
「右側にサーバディレクトリ」
…のウィンドウが表示されるので、サーバ側にAMIデータ保存用の
ディレクトリを作成する。

プロジェクト名(Frontier) + 会社のイニシャル(CS)で「frontier-cs」とした。
(frontierはもう使われていて作れなかった)

・ファイルの配置

WinSCPツールを用いてAmazon EC2サービスの仮想OS上「/mnt」以下に
「Private Key file」と「X.509 Certificate file」を配置。
※このファイルの配置作業は、AMI作成時には毎回行う必要がある

上記準備が出来たら早速AMIの作成を行う。

1、AMIの作成

仮想OS上で下記コマンドを実行してAMIの作成を行う。ec2-bundle-vol -d /mnt -k /mnt/[X.509 Certificate ファイル名] -c /mnt/[Private Key ファイル名] -u [IDナンバー]

※IDナンバーはAmazonページのAccount Activityページの上部の
Account Number

作成には結構時間がかかる、10分くらいかな?
無事に作成出来たら今度はAmazon S3サーバへアップロードを行う

2、AMIのアップロード

ようやくAMIを作成。
ただし、AMIは仮想サーバ上にあるため、このままshutdownすると消えてしまう。
そのため、AMIを別の場所へ移動させる必要がある。ec2-upload-bundle -b frontier-cs -m /mnt/image.manifest.xml -a [aws-access-key-idの文字列] -s [aws-secret-access-keyの文字列]
※frontier-csは先ほどAmazon S3で作ったディレクトリ

アップロードが終わり、さあおしまい

…ではなく、今度はAMIの登録を行う必要がある。

3、AMIの登録

S3Foxでファイルがアップロードされているのを確認したら、今度はAMIの登録を行う。
コマンドプロンプトより、以下コマンドを用いてAMIの登録を行う。ec2-register frontier-cs/image.manifest.xml

成功すると以下の文字列が表示されるので、それが自分の作成したAMI名となる。
ami-xxxxxxxx

ようやくAMIの作成が終わったので早速shutdownしてから起動してみる。

ドキドキしつつshutdown。
そして感動の再起動!

おおっ!ちゃんと保持されている!
設定したタイムゾーンがちゃんと日本になっているのを確認!

念のため、AMIの登録解除、ファイル削除方法も書いておく。

・AMIの登録解除

コマンドプロンプトから以下コマンドを実行ec2-deregister ami-xxxx

・AMIファイルの削除

PuTTYから以下のコマンドを実行ec2-delete-bundle -b [S3で作成したディレクトリ名(frontier-cs)] -p image -a [aws-access-key-idの文字列] -s [aws-secret-access-keyの文字列]

ようやく自分のAMI作成が出来た。
と、同時に少し遅めの夏休みを取るのであった。
夏休み前だからか、社長からは特に何も言われず。

※※ 社長命令 ※※
特になし

楽しいはずの夏休み前から、不安の影が行ったり来たり。
無言のプレッシャーとは恐ろしい。

達成率 ・・・ 10%
奮闘者:高際
  1. 【 Tの奮闘記 】
  2. 1、1通のメール
  3. 2、Amazon EC2との出会い
  4. 3、他作業に追われる日々
  5. 4、AMIを触る
  6. 5、AMIを作る
  7. 6、仮想OSを立ち上げる
  8. 7、Coming Soon…