Rails

【AWS環境構築】Swap(スワップ)領域を用意してメモリを増やす方法

AWS

 

今回はSwap(スワップ)領域というものを用意して、EC2サーバーのメモリを拡張する方法を紹介したいと思います。インスタンスを使い過ぎると「メモリを使い果たしました」という警告文が表示する可能性があるため、この機会に容量を確保しておきましょう。

この記事は前回の続きとなっています。

↓前回の記事はこちら

AWS
【AWS環境構築】アプリケーションサーバーの導入・設定方法を解説EC2インスタンスにアプリケーションサーバーを導入・設定する方法を紹介しています。この記事では中でも、Uniccornを使用しています。Ruby on Railsを動かす上でアプリケーションサーバーは必須なので、ミスらずに設定していきましょう。...

Swap(スワップ)領域とは

Swap領域とは、メモリが使い切られそうになった時にメモリの容量を一時的に増やすためのファイルです。

コンピューターが処理を行う際、メモリと呼ばれる場所に処理内容が一時的に記録されますが、メモリの容量は決まっており容量を超えてしまうとエラーで処理が止まってしまいます。そういったエラーを未然に防いでくれるのがSwap領域です。

Swap領域が必要な理由

現在の無料のEC2サーバーではメモリが少なく、Gemのインストール時などにエラーがおきてしまう可能性があります。また、デフォルトでEC2にはSwap領域は備わっていないので自身で準備する必要があるためです。

導入手順

では早速Swap領域を導入していきましょう。

まずは本番環境(EC2)のホームディレクトリにアクセスします。

↓ ターミナル(EC2)

[ec2-user@ip-172-31-25-189 ~]$ cd

 

以下のコマンドを順番に打ち込み、Swap領域を導入していきます。

[ec2-user@ip-172-31-25-189 ~]$ sudo dd if=/dev/zero of=/swapfile1 bs=1M count=512
[ec2-user@ip-172-31-25-189 ~]$ sudo chmod 600 /swapfile1
[ec2-user@ip-172-31-25-189 ~]$ sudo mkswap /swapfile1
[ec2-user@ip-172-31-25-189 ~]$ sudo sh -c 'echo "/swapfile1  none        swap    sw              0   0" >> /etc/fstab'

noneの後にもコマンドが続いているので注意しましょう。

 

以上でSwap領域の導入は完了です。

まとめ

  • Swap(スワップ)領域とは、メモリが使い切られそうになった時にメモリの容量を一時的に増やすためのファイルのこと
  • デフォルトでEC2には、Swap領域は備わっていないので自身で準備する必要がある

参考

AWSナレッジ:https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-memory-swap-file/

 

 

 

今回はSwap領域というものを用意して、EC2サーバーのメモリを拡張する方法を紹介しました。AWSの環境構築はまだまだ続きますが、根気よく設定していきましょう。