EC2でsmall以上のクラスのインスタンスにはエフェメラルストレージというものがついている。
このエフェメラルストレージはインスタンスをstopしてしまうとデータが消えてしまうという揮発性がそれなりに高いものなのだが、大容量に使える代物なのでログとかの一時置き場に使われたりしてるそうな。
また、EC2にはswapがないので、自分で用意したりしないといけない。
そこで、エフェメラルストレージをswapに使ってしまおう!というが今回のテーマ。
今回はUbuntuでの設定について備忘録。
エフェメラルストレージを使うにはインスタンスを作成する際に追加する必要がある。
↓はインスタンスを作成するときのストレージについてのときの画面
microインスタンスは残念ながら追加できないが、small以上のインスタンスならば自動的に追加されているはず。
追加されていなければEditボタンを押下して、Instance Store Volumsタブから追加する。
起動してきたインスタンスにログインしてみると最初は/mntにマウントされていると思う。
/etc/fstabとかをみると/mntがどうこうと書いてあるとおもうのでそれを以下のように書き換えてしまう
# vi /etc/fstab
…
/dev/xvdb none swap sw,nobootwait,comment=cloudconfig 0 2
/dev/xvdbは環境によって違うと思うので/mntのところをそのまま使いましょう。
もしくはfdisk -lで確認でもいいかも。
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
こんにちは。virapture…
View Comments
Your article helped me a lot, is there any more related content? Thanks! https://accounts.binance.com/bn/register-person?ref=YY80CKRN
Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?