okochangの馬鹿でありがとう

ふらふら適当に世間を生きる日々でございます

EC2とSwap領域についてまとめてみる

f:id:okochang:20120503170729p:plain  f:id:okochang:20120503170745p:plain  f:id:okochang:20120503170708p:plain

お久しぶりです、気がついたら9月中旬となり、8月はブログを更新していない事に気づきました。
8月は何があったのでしょう?夏バテでしょうか?
8月2日にこんなものが発売されていたようですね。

このままではブログ更新をフェードアウトしてしまいそうなので、少しだけ記事を更新。
最近、EC2を使ったらにSwap領域がないみたいな記事を見かけたので、備忘録的にまとめてみました。

まずはAmazon Linux(ami-2819aa29)、Ubuntu12.04(ami-c047fac1)、Fedora17(ami-26e65527)をそれぞれm1.smallインスタンスで起動してみました。
起動後、本当にSwap領域がないのかを以下のようにチェックします。

$ sudo free 
             total       used       free     shared    buffers     cached
Mem:       1697824     325416    1372408          0       9296     263048
-/+ buffers/cache:      53072    1644752
Swap:       917500          0     917500
  • Ubuntu12.04
$ sudo free
             total       used       free     shared    buffers     cached
Mem:       1692608     255416    1437192          0       8088     185888
-/+ buffers/cache:      61440    1631168
Swap:       917500          0     917500
  • Fedora17
$ sudo free
             total       used       free     shared    buffers     cached
Mem:       1693068     147548    1545520          0       6300      47972
-/+ buffers/cache:      93276    1599792
Swap:       917500          0     917500

結果を見ると分かる通り、どのディストリビューションでもSwap領域が存在している事が分かりました。次はfstabを見てみます。

  • Amazon Linux
$ sudo cat /etc/fstab 
#
LABEL=/     /           ext4    defaults,noatime  1   1
tmpfs       /dev/shm    tmpfs   defaults        0   0
devpts      /dev/pts    devpts  gid=5,mode=620  0   0
sysfs       /sys        sysfs   defaults        0   0
proc        /proc       proc    defaults        0   0
/dev/sda3	none	swap	sw,comment=cloudconfig	0	0

$ ll /dev/sda*
lrwxrwxrwx 1 root root 5  9月 13 15:28 2012 /dev/sda1 -> xvda1
lrwxrwxrwx 1 root root 5  9月 13 15:28 2012 /dev/sda3 -> xvda3
  • Ubuntu12.04
$ sudo cat /etc/fstab
LABEL=cloudimg-rootfs	/	 ext4	defaults	0 0
/dev/xvdb	/mnt	auto	defaults,nobootwait,comment=cloudconfig	0	2
/dev/xvda3	none	swap	sw,comment=cloudconfig	0	0

$ ll /dev/xvda*
brw-rw---- 1 root disk 202, 1 Sep 13 15:29 /dev/xvda1
brw-rw---- 1 root disk 202, 3 Sep 13 15:29 /dev/xvda3
  • Fedora17
$ sudo cat /etc/fstab 
LABEL=_/   /         ext4    defaults        1 1
proc       /proc     proc    defaults        0 0
sysfs      /sys      sysfs   defaults        0 0
devpts     /dev/pts  devpts  gid=5,mode=620  0 0
tmpfs      /dev/shm  tmpfs   defaults        0 0
/dev/xvda3	none	swap	sw,comment=cloudconfig	0	0

$ ll /dev/xvda*
brw-rw----. 1 root disk 202, 1  9月 13 11:34 /dev/xvda1
brw-rw----. 1 root disk 202, 3  9月 13 11:34 /dev/xvda3

各ディストリビューションで多少違いますが、Swap領域は/dev/xvda3(sda3)を使用しています。
ではなぜSwap領域がないという記事を見かけたかというと、先ほどのAMIをt1.microで起動し、デバイスファイルを見ると分かります。

$ ll /dev/sda*
lrwxrwxrwx 1 root root 5  9月 13 16:38 2012 /dev/sda1 -> xvda1
  • Ubuntu12.04
$ ll /dev/xvda*
brw-rw---- 1 root disk 202, 1 Sep 13 16:38 /dev/xvda1
  • Fedora17
$ ll /dev/xvda*
brw-rw----. 1 root disk 202, 1  9月 13 12:37 /dev/xvda1

先ほどSwap領域を割り当てていた、デバイスファイルが存在しません。
EC2をt1.microで起動した場合の制限としてInstance Store Volumesを割り当てられませんが、それと同じような制限みたいです。
AWSに新規登録すると無料試用枠でt1.microを使う事が出来る(ステマ)ので、これをメインに使ってる方がSwap領域がないと勘違いしたのかもしれません。
というわけで、t1.microを使用する場合はSwap用のファイルを作り、その他のインスタンスタイプではデフォルトのものを使えば良さそうです。

ちなみに上記以外のAMIを使用している場合はfstabにSwap領域として/dev/xvda3(sda3)を使う設定がされていない場合があると思います。
その場合は起動後にSwap領域として/dev/xvda3(sda3)を有効にしたり、fstabに追記すれば良いと思います。

# mkswap /dev/xvda3 
# swapon /dev/xvda3

さてと、9月分の記事は書いたということで、ドラクエを。。。