Cannot allocate memoryエラー

問題

AWS EC2上で無料枠でインスタンスを動かしていたところ以下内容のエラーに遭遇。
何を入力しても以下エラーしか出ないようになってしまった。

-bash: fork: Cannot allocate memory


調べたところ、「インスタンスの容量が足りないよ」という意味らしい。

条件

AWS EC2 + rails + nginx + unicorn

対処

仮想メモリというものがLINUXに備わっているらしく、それを追加してあげる。

まず、一旦exitして、もう一回ログインする。
ログインできたら、スワップファイルを確保するコマンドを入力。
※ sudoつけないとpermission errorが出てしまった。

sudo fallocate -l 512M /swapfile


スワップファイルのアクセス権を変更。

sudo chmod 600 /swapfile


次に、仮想メモリとして、使うファイルを指定

[user@ip-10-0-0-196 ~]$ sudo mkswap /swapfile
スワップ空間バージョン 1 を設定します。サイズ = 512 MiB (536866816 バイト)
ラベルはありません, UUID=26d53dd6-cb4d-4869-9334-102f63fde902


仮想メモリを有効化して完了。

sudo swapon /swapfile


仮想メモリの大きさは、自由に変更出来るようなので
状況に合わせて数値を変更してください。