スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

EC2のインスタンスを起動

さて今日はお待ちかねのサーバー起動です。

新しく買ったコンピュータを初めて起動する瞬間、新しいゲーム機を起動する瞬間
なんか不安と期待がおりまざったワクワク感は大人になっても変わらないものです。

さて、長かった道のりももうすぐ終わりです。
感動のEC2起動までがんばりましょう

1.自分のイメージの確認
$ ec2-describe-images -o self

前回、保存したバスケットの中にイメージが入っていると思います。

2.鍵ファイルの交換
$ ec2-add-keypair foofoo | sed -e "1d" > foofoo.id
$ chmod 400 foofoo.id

3.インスタンスの起動
$ ec2-run-instances "image id" -k vkgtest

image id 先ほど調べたバスケットの中にあるamiから始まるものです

3.ファイアーウォールを設定する(ポート22を空ける)
$ ec2-authorize default -p 22

ファイアウォールは、マシン個別のものとは異なるので注意です。

4.インスタンス状態を確認
$ ec2-describe-instances

pendingからrunningになるまで約3分くらい待ちます。
そこで表示されるec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.comのようなドメインを控えて下さい

5.sshで接続する
$ ssh -i foofoo.id root@ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com

6.インスタンスの終了の仕方
$ ec2-terminate-instances instance id

注意:
インスタンスを終了してしまうとインスタンスは初期状態に戻ってしまうので、重要な設定などを行う場合は次の回で説明するバックアップの方法をチェックしてから行うことを強くお勧めします
スポンサーサイト

テーマ : インターネットサービス - ジャンル : コンピュータ

作成が終わったOSイメージをアップロード

さてやっとOSイメージのアップロードのところまで来ました。

自分のイメージをアップロードするためには前もってEC2とS3(ストレージサービス)に入っておくこと、EC2コマンドラインツール、AMIツールが管理用のマシンにインストールされて正しく設定されている必要があります。

1.認証ファイルを入手
AWSトップここでメニュー左のYour Account のAccess Identifiersをクリックします。
X.509 Certificateというのがあるのでここで証明書をゲットします。
最初は証明書がないのでCreate Newで作成します。
次にダウンロードしてPKファイル(秘密鍵)CERTファイル(証明書)の二つのファイルを得ます。

2.次に管理用マシン(VM)に鍵をセット
# mv pk-xxxxxxxxxxxx.pem /home/ec2/ec2-api-tools-1.3-30349/.
# mv cert-xxxxxxxxxxxxx.pem /home/ec2/ec2-api-tools-1.3-30349/.

/etc/profileに鍵の在処を以下のように追記
export EC2_CERT=$EC2_HOME/cert-xxxxxxxx.pem
export EC2_PRIVATE_KEY=$EC2_HOME/pk-xxxxxxxxxx.pem

scource /etc/profile

3.イメージファイルの分割を行う
# ec2-bundle-image -i ec2-centos5.img -k "secret key file" -c "cert file" -u "aws user"

secret key file 先ほどダウンロードしたPKファイル
cert file 先ほどダウンロードしたCERTファイル
aws user ログインした時に画面左上のメニューの下くらいにあるAccount Numberの次に表示されている XXXX-XXXX-XXXXと出てくるもの

環境にもよりますがだいたい5分くらいで /tmp 配下にOSのイメージが分割圧縮されて保存されています。

注意:
管理マシンのシステムクロックが狂っているとイメージの作成の時点ではじかれます。その時は、UTCと同調させて下さい。特にVMはクロックが狂いやすいので注意

4.イメージデータのアップロード
# ec2-upload-bundle -b "s3 backets" -m /tmp/ec2-centos5.img.manifest.xml -a "access id" -s "secret key"

s3 backets 適当な名前で良いですが、EC2の全てのシステム内でユニークである必要があります。
access id 先ほどアクセスしたAccess IdentifiersにあるAccess Key IDです
secret key 先ほどアクセスしたAccess IdentifiersにあるSecret Access Keyです

これも少し時間がかかります。環境によってですがだいたい15分くらい掛かると思います。

注意:
イメージを分割してから時間が経ちすぎると失敗します。
できるだけ分割してからすぐに実行することをお勧めします。

5.イメージファイルの登録
$ ec2-register "s3 backets"/ec2-centos5.img.manifest.xml

s3 backets 先ほど指定したバスケット名と同じ名前で

これで終わりです。出てくる名前は次のコマンドでいつでも確認できるので控えておく必要は無いです。

6.自分のイメージの確認
$ ec2-describe-images -o self

おつかれさまでした。

テーマ : インターネットサービス - ジャンル : コンピュータ

作成したOSイメージをバックアップ可能に改造する

前回作成したOSのイメージは、バックアップを取ることが出来ません。

今回は前回改造したOSのイメージをバックアップ可能に改造する手順を紹介します

1.OSのイメージファイルをマウントする
# mount -o loop ec2-centos5.img /mnt/ec2-centos5-fs

2.バックアップに必要なモジュールを入手する
modules-2.6.16-ec2.tgzをダウンロード

3.モジュールをインストール
# mv modules-2.6.16-ec2.tgz /mnt/ec2-centos5-fs/.
# tar xzvf modules-2.6.16-ec2.tgz
これで完了です。

4.マウントを解除
# umount -d /mnt/ec2-centos5-fs

マウントが解除出来ない場合は再起動して下さい

5.最後に
最初にこのイメージをアップロードしたときに一度

depmod -a

を実行しないとバックアップに失敗することを頭に止めておいて下さい
次回はいよいよイメージファイルのアップロードです。

テーマ : インターネットサービス - ジャンル : コンピュータ

EC2用に自分のOSイメージを作る(CentOS 5.2編)

今回はEC2のためにOSのイメージを用意する方法を解説します。

前もって言うとちょっと大変です
やはり他の人が作ったものを使うのは結構怖いですよね
EC2はスクラッチで作ったOSのイメージをアップロードすることが出来ます。

1.rubyをインストールする
yum install -y ruby

2.amiツールをインストールする
AMIツールをダウンロードする
# rpm -ivh ec2-ami-tools.noarch.rpm

3.OSをインストールするディスクスペースを確保する
# dd if=/dev/zero of=ec2-centos5.img bs=1M count=8096
この場合、8GB確保しています

4.ディススペースにファイルシステムを作ります
# mke2fs -F -j ec2-centos5.img

5.ファイルシステムをマウントします
# mount -o loop ec2-centos5.img /mnt/ec2-centos5-fs

6.ゲストOSを入れる

6.1 仮想デバイスを用意する
# mkdir /mnt/ec2-fs/dev
# /sbin/MAKEDEV -d /mnt/ec2-centos5-fs/dev -x console
# /sbin/MAKEDEV -d /mnt/ec2-centos5-fs/dev -x null
# /sbin/MAKEDEV -d /mnt/ec2-centos5-fs/dev -x zero

6.2 Yumグループインストールの設定
yum-xen.confを以下の内容で作る

[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
exclude=*-debuginfo
gpgcheck=0
obsoletes=1
reposdir=/dev/null

[base]
name=CentOS-5.2 - Base
mirrorlist=http://mirrorlist.centos.org/?release=5.2&arch=i386&repo=os
enabled=1

[updates-released]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=5.2&arch=i386&repo=updates
enabled=1

6.3 ディスク構成を作る
# mkdir /mnt/ec2-centos5-fs/etc
# vi /mnt/ec2-centos5-fs/etc/fstab

/dev/sda1 / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0

6.4 プロセスを作ってホストと共有する
# mkdir /mnt/ec2-centos5-fs/proc
# mount -t proc none /mnt/ec2-centos5-fs/proc

6.5 OSをインストールする
yum -c yum-xen.conf --installroot=/mnt/ec2-centos5-fs -y groupinstall Core
yum -c yum-xen.conf --installroot=/mnt/ec2-centos5-fs -y groupinstall Base

注意:
yumのインストール記録がないというエラーが、多少のエラーが出ますが心配ないです

7 仕上げを行う

7.1 ネットワークの設定
/mnt/ec2-centos5-fs/etc/sysconfig/network-scripts/ifcfg-eth0を以下のように作成

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
USERCTL=yes
PEERDNS=yes
IPV6INIT=no

/mnt/ec2-centos5-fs/etc/sysconfig/networkを以下のように作成

NETWORKING=yes


7.2 ファイルシステムを仕上げる

/mnt/ec2-centos5-fs/etc/fstabに追記する

/dev/sda2 /mnt ext3 defaults 0 0
/dev/sda3 swap swap defaults 0 0


8 sshを設定する

8.1 /mnt/ec2-centos5-fs/etc/rc.d/rc.localを以下のように作成

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/usr/local/sbin/get-credentials.sh

8.2 /mnt/ec2-centos5-fs/usr/local/sbin/get-credentials.shを以下のように作成

#!/bin/bash

# Retreive the credentials from relevant sources.

# Fetch any credentials presented at launch time and add them to
# root's public keys

PUB_KEY_URI=http://169.254.169.254/1.0/meta-data/public-keys/0/openssh-key
PUB_KEY_FROM_HTTP=/tmp/openssh_id.pub
PUB_KEY_FROM_EPHEMERAL=/mnt/openssh_id.pub
ROOT_AUTHORIZED_KEYS=/root/.ssh/authorized_keys



# We need somewhere to put the keys.
if [ ! -d /root/.ssh ] ; then
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi

# Fetch credentials...

# First try http
curl --retry 3 --retry-delay 0 --silent --fail -o $PUB_KEY_FROM_HTTP $PUB_KEY_URI
if [ $? -eq 0 -a -e $PUB_KEY_FROM_HTTP ] ; then
if ! grep -q -f $PUB_KEY_FROM_HTTP $ROOT_AUTHORIZED_KEYS
then
cat $PUB_KEY_FROM_HTTP >> $ROOT_AUTHORIZED_KEYS
echo "New key added to authrozied keys file from parameters"|logger -t "ec2"
fi
chmod 600 $ROOT_AUTHORIZED_KEYS
rm -f $PUB_KEY_FROM_HTTP

elif [ -e $PUB_KEY_FROM_EPHEMERAL ] ; then
# Try back to ephemeral store if http failed.
# NOTE: This usage is deprecated and will be removed in the future
if ! grep -q -f $PUB_KEY_FROM_EPHEMERAL $ROOT_AUTHORIZED_KEYS
then
cat $PUB_KEY_FROM_EPHEMERAL >> $ROOT_AUTHORIZED_KEYS
echo "New key added to authrozied keys file from ephemeral store"|logger -t "ec2"

fi
chmod 600 $ROOT_AUTHORIZED_KEYS
chmod 600 $PUB_KEY_FROM_EPHEMERAL

fi

if [ -e /mnt/openssh_id.pub ] ; then
if ! grep -q -f /mnt/openssh_id.pub /root/.ssh/authorized_keys
then
cat /mnt/openssh_id.pub >> /root/.ssh/authorized_keys
echo "New key added to authrozied keys file from ephemeral store"|logger -t "ec2"

fi
chmod 600 /root/.ssh/authorized_keys
fi

# chmod 755 /mnt/ec2-centos5-fs/usr/local/sbin/get-credentials.sh

9 マウントを解除する
# umount /mnt/ec2-centos5-fs/proc
# umount -d /mnt/ec2-centos5-fs

マウントが解除出来ない場合は再起動して下さい

10.最後に
これで動くOSのイメージの作成は完了ですが、このままだとこのイメージのバックアップをすることが出来ません。そのやり方は次回で解説します

テーマ : インターネットサービス - ジャンル : コンピュータ

管理マシンを用意しよう

Amazon EC2を操るためには、Linuxマシンを一台用意すると必要があります。
一台用意するのは大変なのでバーチャルマシンを用意することをお勧めします。

私はMac環境にVMWare上に作ったCentOS 5.2からEC2を操るようにしています。
(Mac環境にもEC2を操る機能を作れますが、スクラッチからOSを作ることが出来ないのでお勧めしません)

1.Xenの仮想化機能をサポートしたLinuxを用意します。(私はCentOS 5.2を使いました)

2.VMWare上にLinuxをインストールします。最小インストールでかまいませんが、ディスク容量は将来大きなインスタンスを作ることを想定して20GBくらい確保しておくと後でもう一回用意する必要がなくなるので楽です。
VMWareが無い方は、ここから

Windowsの方
http://www.vmware.com/jp/
いろいろありますが、VMWare serverがお勧めです。

Macの方
VM Ware Fusionを使います。
私も使っています。有料版はドラッブアンドドロップ、WindowsアプリをMacのアプリのように呼び出す機能が付いていてすごく便利です。この機能でこの値段は安いです。


3.JDKをインストールします
JDKを手に入れます
J2SEのサイトからリンクをDownload Java SE (J2SE)⇒Download JDKと進んでrpmを手に入れます

次に、
# mkdir jdk
# mv jdk-6u11-linux-i586-rpm.bin jdk/.
# ./jdk-6u11-linux-i586-rpm.bin
# yum -y remove java-1.4.2-gcj-compat

4.JAVAの環境設定
システム環境変数にJDKを使えるようにするための設定を追記します。

/etc/profileを編集して最下行に以下のものを追加して下さい

export JAVA_HOME=/usr/java/jdk1.6.0_11
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

終わったら
# source /etc/profile
# cd $JAVA_HOME
# pwd
で、表示されているパスが/usr/java/jdk1.6.0_11であることを確認する

5.Amazon EC2コマンドラインツールを手に入れる
Amazon EC2コマンドラインツールをダウンロードします。

# mkdir /home/ec2
# mv ec2-api-tools.zip
# cd /home/ec2
# unzip ec2-api-tools.zip

6.コマンドラインツールの環境設定

先ほどと同様に/etc/profileを編集して最下行に以下を追加します
export EC2_HOME=/home/ec2/ec2-api-tools-1.3-30349
export PATH=$PATH:/home/ec2/ec2-api-tools-1.3-30349/bin

# source /etc/profile
# ec2-version

実行後に
1.3-26369 2008-08-08

このようにコマンドラインツールのバージョン情報が表示されれば完了です。
おつかれさまです。

テーマ : インターネットサービス - ジャンル : コンピュータ

プロフィール

未来探偵コナン

Author:未来探偵コナン
FC2ブログへようこそ!

カテゴリ
最新記事
最新コメント
最新トラックバック
月別アーカイブ
エンジニア推薦商品

こいつはかなり期待出来るゲームです。とにかく世界観がすごいです


魔王になってダンジョンに攻めて来る勇者をあの手この手で撃退するゲーム(モンハンよりはまります)


真のエンジニアは小物で差を付ける?会話が始まりそうなアイテムです


やっぱり最強は少佐の声の暗闇の雲でしょ by タチコマ


ガンダム型のUSBメモリ(熱いぜ)


綾波レイ型のUSBメモリ(コイツも熱いぜ)


ルパン型のUSBメモリ(いつ見てもカッコイイぜ)


ウルトラマン型のUSBメモリ(存在自体がユニバーサルデザイン)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。