最終回は 自分のインスタンス・イメージの作成とバックアップ です。
EC2のインスタンスは停止してしまうとすべての内容が消えてしまうということを前回説明しました。今回はいろいろカスタマイズしたAMIが再利用できるようにする方法について説明します。
自分用のAMIを作成するにはAmazonのストレージサービスであるAmazon Simple Storage Service(Amazon S3)を利用します。S3については以前書いたBLOGを参照してください。
自分用AMI作成手順
Amazonがデフォルトで用意しているAMIをカスタマイズして自分用のAMIを作成するためのステップは以下の通りです。
1)デフォルトのAMIから好みの物を選択してAMIを起動します。
2)カスタマイズします。
3)自分のキー・ペアを現在稼動しているインスタンスへコピーします。
4)稼働中のインスタンスに自分のキー・ペアをバンドルしてイメージコピーを作成します。
5)作成したイメージコピー(自分用のAMIファイル)をS3にアップロードします。
6)S3へアップロードしたAMIファイルをec2に登録
こうすることで5)の時点のインスタンスイメージがS3へバックアップされた状態になります。
4)と5)の処理を定期的に実施することでシステム全体のバックアップがされていることになります。
これはなかなか便利ですね。
本番環境のバックアップとしてだけではなく、本番環境のバックアップをすぐに他のインスタンスとして起動することも出来るのでリアルなテスト環境としても活用できそうです。
それでは以降でそれぞれのステップについて実行した例を交えながら説明します。
2)までは第2回までの内容を参照してください。以下の説明は第2回目の最後の状態になっているとそのままスムーズに実行できると思います。
ステップ3 キー・ペアのコピー
第2回で生成したキー・ペアを現在起動中のインスタンスにセキュア・コピーを使ってコピーします。Windows用のセキュア・コピーはPuTTYの pscp を使用して行います。
C:\pscp -i PuTTY用秘密鍵ファイル(*.ppk) EC2用秘密鍵ファイル(*.pem) EC2用認証ファイル(*.pem) ユーザ名@ドメイン名:コピー先フォルダ名(フルパス)

以下の図は /mnt に正しくコピーされたかSSHでログインして確認した画面です。

ステップ4 キー・ペアをバンドルしたイメージコピー作成
インスタンス環境にキー・ペアがコピーされましたのでこのキーをバンドルしたAMI(インスタンス・イメージ)を作成します。PuTTY(SSH)でインスタンスに接続してコマンド ec2-bundle-vol を使って作成します。
# ec2-bundle-vol -d AMIの保存先パス -k EC2用秘密鍵ファイル(フルパス/*.pem) -c EC2用認証ファイル(フルパス/*.pem) -u EC2のユーザID(AWSのアカウントNO(数値)) -r [i386|x86_64] -p 自分のAMI用プレフィックス
以下実行例です。AMI作成は10分ぐらいかかりました。


/mnt 配下に出来上がったファイルを確認します。
指定したプレフィックスがついた約10MBのファイルがたくさんできているのがわかります。

ステップ5 イメージコピー(自分用のAMI)をS3へアップロード
/mnt 配下に作成したイメージファイルをS3へアップロードします。
あらかじめS3へイメージファイル格納用のフォルダを作成しておきましょう。
S3へのアップロードは、以下のコマンドで行います。
# ec2-upload-bundle -b S3格納用フォルダ(バケット)名 -m manifestファイルのパス -a AWSのAccess Key ID -s AWSのSecret Access Key
S3へのアップロードはほんの1分ぐらいで終わりました。


ステップ6 S3へアップロードしたAMIファイルをec2に登録
ステップ5までで自分用AMIファイルが出来上がりバックアップもとることができました。
作成したAMIファイルを使用して自由にインスタンス起動するには、作成したAMIをEC2へ登録する必要があります。登録はec2-api-toolsのec2-registerコマンド使ってクライアントから行います。
C:\mydoc\Prototype\AWS>ec2-register 101tn-bucket/myami-200808.manifest.xml
コマンドを実行するとAMI IDが割り振られます。以降はこのAMI IDを使用してインスタンスを起動することができます。

以下は現在のインスタンスを停止して登録したAMI IDでインスタンス起動した例です。
※テスト用で起動したインスタンスは必ず停止しましょう! 安いとはいえ課金されていますので。

0 件のコメント:
コメントを投稿