Amazon EC2 で Ubuntu 10.4 を使うとき

しばらく使わないと忘れそうなので,Amazon EC2Ubuntu 10.4 を使うためのメモを残しておきます.

AMI の選択

インスタンスを起動するために,Ubuntu 10.4 の AMI(Amazon Machine Image)を選択します.AWS Management Console(AWS の提供するウェブサービス)を使っている場合,Community AMIs にて "ubuntu-lucid" を検索し,Manifest を降順に整列してやると,上の方に見つかるはずです.つい先月末に更新されたようなので,今なら,以下のもので問題ないと思います.

  • 32 ビット版
    • AMI ID: ami-1437dd7d
    • Manifest: ubuntu-images-us/ubuntu-lucid-10.04-i386-server-20100827.manifest.xml
  • 64 ビット版
    • AMI ID: ami-4234de2b
    • Manifest: ubuntu-images-us/ubuntu-lucid-10.04-amd64-server-20100827.manifest.xml

デスクトップ版が必要なら,server のところを desktop に置き換えたものを選びます.また,ソフトウェアの更新がたくさんあるようなら,daily 版を使った方がよさそうです.下記の Mnifest において,YYYY には西暦(2010-),MM には月(01-12),DD には日(01-31)が入ります.一番新しいものを選びましょう.

  • 32 ビット版
  • 64 ビット版

後は,他のパラメータを与えてリクエストを出すのみです.

SSH によるログイン

SSH によるログインで注意すべきことはユーザアカウントに ubuntu を指定しなければならないことです.直接 root でログインすることはできません.root でログインしようとすると,以下のようなメッセージが出ます.

user@localhost:~$ ssh -i AWS_KEY.pem root@ec2-XXXX.amazonaws.com
Please login as the ubuntu user rather than root user.

Connection to ec2-XXXX.amazonaws.com closed.

仕方がないので,指示どおりに ubuntu としてログインします.

user@localhost:~$ ssh -i AWS_KEY.pem ubuntu@ec2-XXXX.amazonaws.com
...
Welcome to Ubuntu!
...
ubuntu@YYYY:~$

念のため,ソフトウェアを更新してから再起動します.

ubuntu@YYYY:~$ sudo aptitude update
...
ubuntu@YYYY:~$ sudo aptitude safe-upgrade
...
ubuntu@YYYY:~$ sudo reboot
...

再起動により接続が切れるため,再度ログインします.

記憶領域の設定

インスタンスの種類によって,利用可能なデバイスが異なります.例えば,m1.small では /dev/sda2 が /mnt にマウントされていますが,c1.medium では /dev/sdb が /mnt にマウントされています.また,c1.xlarge などであれば,複数のデバイスを使えますが,初期状態では 1 つのデバイスのみがマウントされています.df や fstab で確認しておきましょう.

# m1.small の場合
ubuntu@YYYY:~$ ls /dev/sd*
/dev/sda1  /dev/sda2  /dev/sda3
ubuntu@YYYY:~$ df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/sda1     ext3    10321208   6528576   3268356  67% /
devtmpfs  devtmpfs      853792       116    853676   1% /dev
none         tmpfs      870508         0    870508   0% /dev/shm
none         tmpfs      870508        52    870456   1% /var/run
none         tmpfs      870508         0    870508   0% /var/lock
none         tmpfs      870508         0    870508   0% /lib/init/rw
/dev/sda2     ext3   153899044    192072 145889348   1% /mnt
ubuntu@YYYY:~$ cat /etc/fstab 
# /etc/fstab: static file system information.
#           
proc       /proc  proc  nodev,noexec,nosuid           0  0
/dev/sda1  /      ext3  defaults                      0  0
/dev/sda2  /mnt   auto  defaults,comment=cloudconfig  0  0
/dev/sda3  none   swap  sw,comment=cloudconfig        0  0
バイスが 1 つの場合

初期状態では,ファイルシステムext3 が使われています.Ubuntu 10.4 なら ext4 に対応しているので,/mnt をアンマウントして設定しなおします.c1.medium については,パーティションなしでマウントしていることも気になるので,fdisk でパーティションを作成します.

# c1.medium の場合
ubuntu@XXXX:~$ sudo umount /mnt
ubuntu@XXXX:~$ sudo fdisk /dev/sdb
# 全体を一つのパーティションに割り当てます.
> n
> p
> 1
>
>
> t
> 83
> w
ubuntu@XXXX:~$ sudo mkfs.ext4 /dev/sdb1
...
ubuntu@XXXX:~$ sudo mount /dev/sdb1 /mnt

長期的に使うインスタンスについては,必要に応じて fstab も更新しておきます.

ubuntu@XXXX:~$ sudo vi /etc/fstab
...
バイスが複数ある場合

インスタンスの種類が c1.xlarge であれば,/dev/sdb 以外に /dev/sdc 〜 /dev/sde を使うことができます.各デバイスを個別に初期化,マウントしても構いませんが,RAID や LVM を用いた方が使いやすいかもしれません.RAID については,mdadm で調べると情報が見つかると思います.