AWSのEC2で再起動してもエフェメラルストレージをswapとして使うようにする

公開日:  最終更新日:2013/08/28

EC2でsmall以上のクラスのインスタンスにはエフェメラルストレージというものがついている。

 

このエフェメラルストレージはインスタンスをstopしてしまうとデータが消えてしまうという揮発性がそれなりに高いものなのだが、大容量に使える代物なのでログとかの一時置き場に使われたりしてるそうな。

また、EC2にはswapがないので、自分で用意したりしないといけない。

 

そこで、エフェメラルストレージswapに使ってしまおう!というが今回のテーマ。

今回はUbuntuでの設定について備忘録。

 

 

sponcer link

 

エフェメラルストレージの追加

エフェメラルストレージを使うにはインスタンスを作成する際に追加する必要がある。

 

↓はインスタンスを作成するときのストレージについてのときの画面

エフェメラルストレージの追加

 

 

microインスタンスは残念ながら追加できないが、small以上のインスタンスならば自動的に追加されているはず。

追加されていなければEditボタンを押下して、Instance Store Volumsタブから追加する。

手動でエフェメラルストレージ追加

 

 

 fstabの設定

起動してきたインスタンスにログインしてみると最初は/mntにマウントされていると思う。

/etc/fstabとかをみると/mntがどうこうと書いてあるとおもうのでそれを以下のように書き換えてしまう

# vi /etc/fstab

/dev/xvdb none swap sw,nobootwait,comment=cloudconfig 0 2

/dev/xvdbは環境によって違うと思うので/mntのところをそのまま使いましょう。

もしくはfdisk -lで確認でもいいかも。

 

起動時にswaponする

fstabで書いただけではswapとして使えないので起動時にswaponしてくれるようにしちゃいましょう。

# vi /etc/rc.local

mkswap /dev/xvdb
swapon -a
exit 0

 

以上で設定はおわり。

 

確認

再起動してみると大量のswapが設定されているはず

# free -m
total used free shared buffers cached
Mem: 3749 3255 494 0 149 1982
-/+ buffers/cache: 1123 2626
Swap: 409565 0 409565

 

 

おまけ

crontabに以下を書くだけでもできたりします。

# crontab -e

@reboot (/sbin/mkswap -f /dev/xvdb; /sbin/swapon /dev/xvdb) > /dev/null 2>&1

 

 

  • このエントリーをはてなブックマークに追加
  • Pocket
PAGE TOP ↑