Raisプロジェクトをt2.microにDeploy中にプロセスが落ちてDeploy出来ない!
何やらCSSとかJSのコンパイル中、image_optim実行中とかに落ちちゃう!
でも、調子がいいとDeploy出来る時もある(特にインスタンス起動直後とか)
そんな時にやった解決方法をメモしておきます。
落ちちゃう原因
原因は、コンパイル中にメモリ不足に陥ってプロセスが殺されてるから。
t2系インスタンスは、メモリのSwap領域が0に設定されてるんですね。しかもt2.microはDefaultのメモリが1GBしか無いので、すぐにメモリが枯渇して殺されてしまいます。
Sassのコンパイルはけっこうなメモリを食うようで、そこで落ちてしまったようです。
他にも、image_optimの実行中とか、JSのコンパイルとか、Deploy中に何かしらメモリを食う処理をすると落ちることがあるかも知れません。
解決方法:t2.microでSwapを使えるように設定する
t2.microでswapを使えるようにすれば、落ちずにきちんとDeploy出来るようになります。
Swapの設定は以下Qiita記事が参考になりました。
http://qiita.com/na0AaooQ/items/278a11ed905995bd16af
# dd if=/dev/zero of=/swapfile1 bs=1M count=512 # chmod 600 /swapfile1 # mkswap /swapfile1 # swapon /swapfile1
開発環境とかお金かけたくないサーバーはこれで乗り切っちゃいましょう。