Lightsailは安い、が...
1ヶ月 $3.5 と非常にリーズナブルで使えるレンタルサーバーAWS Lightsail。
しかし、使用できるメモリはたったの500MBしかない。
この容量でWebアプリ、Webサーバー、DBを動かすと、
ぎりぎりメモリ足りなくてアプリが落ちるといった事態になる可能性は高い。
ちなみに、著者の環境ではまったくアプリが起動しませんでした。
もうひとつ上のプランを選択すればメモリの拡張はできる。
しかしその前に、試してもらいたいことがある。
それはメモリスワップだ。
これをすると、無料かつお手軽にメモリ容量を増やすことができる。
正確にいえばスワップはメモリの擬似的拡張なのでメモリそのものが増える訳ではない。
その点は後述する。
メモリスワップとは
簡単に言えば、メモリが足りなくなったらハードディスク(SSD)の一部をメモリ替わりに使うよ!という設定である。
メモリよりハードディスクの方が処理速度遅いので、パフォーマンスが低下すると一般的には言われている。
しかし、メモリを増設する前に、メモリスワップでまず様子をみてからでも遅くは無い。
なんといっても無料なのだ。
スワップの設定
まずは現状のメモリとスワップを確認しよう。
# free -m
total used free shared buff/cache available
Mem: 485 69 270 8 14 370
Swap: 0 0 0
Swapが0,0,0となっているので、スワップ設定がされていないことが分かる。
次にスワップ領域を確保するコマンドを実行する。
下記ではSSDの領域を1GBスワップとして確保するよう設定している。
LightsailのSSD容量は20GBなので、20分の1をメモリとして割り当てることになる。
# dd if=/dev/zero of=/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 2.56416 s, 419 MB/s
作成したスワップ領域を使用できるよう、権限を付与する。
# chmod 600 /swapfile
上記コマンドでは、まだスワップ用の領域を確保しただけなので、
次のコマンドでスワップ領域の作成をおこなう。
# mkswap /swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=d0519bf6-8abf-4c0d-9375-8068c9e5e9a1
スワップ領域を作成したら、それを有効化する必要があるので以下コマンドを実行する。
# swapon /swapfile
これで設定できたはず。再びfreeコマンドを実行してみよう。
total used free shared buff/cache available
Mem: 485 284 7 7 194 180
Swap: 1023 211 812
Swap の total が 1023となっているので無事1Gのスワップ領域が作成されました。
ちなみにfree -m の m は容量をMB単位で表示するオプションである。
Swapの作成は以上で完了ですが、このままではサーバーの電源を落としてしまうと設定が消えてしまう。それを防ぐために以下のコマンドも実行しておく。
echo "/swapfile none swap sw 0 0" >> /etc/fstab
これでスワップ設定が永続化されました。
お疲れ様です!