blogですかい

仕事、プライベートで学んだことなどを発信し、その内容がたとえ少数でも誰かの役に立ったらなら、それはとっても嬉しいなって

Amazon EC2 t1.micro インスタンスでswapを使用する

m1.small 以上のインスタンスにはswap用のデバイスが存在し、デフォルトでswapとしてマウントされるようですが、残念ながらt1.microインスタンスにはそれがありません。

t1.microインスタンスでの free コマンド実行結果例

$ free
             total       used       free     shared    buffers     cached
Mem:        626524     550784      75740          0     113388     208792
-/+ buffers/cache:     228604     397920
Swap:            0          0          0

上記のようにSwap: 0 0 0と、星のカービィ スーパーデラックスを想起させる絶望的な数字が出力されます。

Swap領域を自分で作成する

ただでさえRAMが少ないt1.microでswapが無いとなると不安で夜も眠れなくなるので、
自分で用意するのが吉です。
デバイスを追加することはできないのでスワップファイルを作成します。

$ sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 32.6191 s, 32.9 MB/s

$ sudo mkswap /swapfile 
mkswap: /swapfile: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=10f13846-fce7-419a-b9e8-8dfd47d29371

$ sudo swapon /swapfile
  • ddコマンドで指定サイズの空のファイルを作成(ここでは1024MB)
  • mkswapコマンドで、作成したファイルをスワップ領域として使用できるようにする
  • swaponコマンドでスワップ領域を有効にする

以上でスワップが有効になります

$ free
             total       used       free     shared    buffers     cached
Mem:        626524     452876     173648          0      55068     128240
-/+ buffers/cache:     269568     356956
Swap:      1048568       1932    1046636

起動時に自動でスワップを有効にする

起動時に自動でマウントされるよう/etc/fstabに追記をします。

$ sudo vi /etc/fstab
---
# 下記を追加
/swapfile none swap sw 0 0