知っておくとちょっと便利!Linuxでswap領域を作って検証コストを抑える方法

AWS(EC2)などで検証環境を構築しているとき、「メモリがちょっと足りなくて処理が止まってしまった…」という経験はありませんか?

今回は、そんな時に役立つ「swap(スワップ)領域の作成方法」と、検証コストを賢く抑えるコツをご紹介します!


第1章:swap領域の概要とメリット

swap(スワップ)領域とは?

メモリ(RAM)が不足した際、ストレージ(SSDやHDD)の一部を「仮想的なメモリ」として使う仕組みです。メモリ不足によってプロセスが強制終了してしまう現象(OOM Killer)を防ぐことができます。

swap領域の作成理由

EC2などのクラウド環境でメモリ不足になった場合、インスタンスタイプを「nano → micro → small」とスケールアップすればメモリは増やせます。しかし、スペックを1段階上げると利用料金はほぼ倍になってしまいます。

そこで知っておきたいのが使い分けです。

  • スケールアップが必要なケース:応答速度や負荷テストなど、本番環境に近いパフォーマンスを見たいとき
  • swap対応で十分なケース:「とりあえず動くかどうか」の動作確認や、パッケージのビルドを一時的に通したいとき

単に動かして試したいだけなら、インスタンスタイプを上げずにswap領域を追加するのが費用を大幅に抑えるコツです!


第2章:swapファイルの作成手順

今回は、パーティションの再設定が不要で安全な「ファイル形式(swapファイル)」で作る手順をご紹介します。

swapファイルの作成

まずは、メモリ代わりに使うファイル(ここでは2GB)を作成します。ファイルの作成には主に2つのコマンドが使えます。

dd コマンドを使う場合

環境を選ばず、ほぼすべてのLinux環境で標準利用できる確実な方法です。

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress

fallocate コマンドを使う場合

一瞬でファイルが作成できる便利なコマンドです。
※環境によっては未インストールの場合や、ファイルシステムによって実行できないことがあります。

sudo fallocate -l 2G /swapfile

アクセス権限の変更

セキュリティのため、管理者のみが読み書きできるように権限を設定します。

sudo chmod 600 /swapfile

swap領域としてフォーマット&有効化

作成したファイルをswap用に初期化し、有効化します。

sudo mkswap /swapfile
sudo swapon /swapfile

これで、即座に2GB分のswap領域が追加されます。


第3章:確認方法とワンポイントアドバイス

設定の確認方法

以下のコマンドでメモリの状況を確認してみましょう。

free -h

「Swap:」の項目に数値(2.0Giなど)が表示されていれば設定完了です!

再起動後も有効にしたい場合(永続化)

サーバーを再起動しても設定を維持したい場合は、/etc/fstab に以下の1行を追記します。

注意: /etc/fstab の設定ミスは OS の起動不可に繋がるため、編集時のタイポ(打ち間違い)にはご注意ください。

/swapfile swap swap defaults 0 0

Tips

毎回手動で設定するのが面倒な場合は、Ansibleで自動化コードを組んだり、EC2のユーザーデータ(起動スクリプト)にこの手順を書き込んでおくと、検証環境の立ち上げがさらに楽になります!

まとめ

いかがでしたでしょうか?

「ちょっと動かして試してみたい」という時には、むやみにスケールアップせずswap領域を活用するのがとても効果的です。

知っておくと費用を抑えつつスムーズに検証が進められますので、ぜひ試してみてください!

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。
エンジニア募集中!

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です