【AWS】AmazonLinuxにSWAP領域を追加してみた

4 min read読了の目安(約3600字

はじめに

AmazonLinuxにEBSを取り付け、SWAP領域を作成する手順をアウトプットしてみました。

構成図

※今回は赤枠のEBSをEC2にSWAP領域として見せていきます。

EC2(AmazonLinux)のスペック

項目 設定
VM名 testweb01
インスタンスタイプ t2.micro
OS AmazonLinux2
vCPU 1
メモリ(GiB) 1
ルートデバイス名 /dev/sda1:8GiB(/)
EBS /dev/sdb:8GiB(SWAP)

前提

  • 作業用ユーザーにて作業
  • 既にEC2作成済みの状態
  • EC2作成時にボリューム追加済み

作業手順

①SWAP作成
②自動マウント設定

①SWAP作成

  • インスタンスにアタッチされているディスクを確認する。
コマンド
lsblk -p
実行例
[ec2-user@ip-10-0-0-51 ~]$ lsblk -p
NAME         MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
/dev/xvda    202:0    0   8G  0 disk
└─/dev/xvda1 202:1    0   8G  0 part /
/dev/xvdb    202:16   0   8G  0 disk
[ec2-user@ip-10-0-0-51 ~]$

→今回は「/dev/svdb」をスワップ領域として使用します。

  • デバイスにLinuxスワップ領域をセットアップする。
コマンド
sudo mkswap <デバイスのパス>
実行例
[ec2-user@ip-10-0-0-51 ~]$ sudo mkswap /dev/xvdb
スワップ空間バージョン 1 を設定します。サイズ = 8 GiB (8589930496 バイト)
ラベルはありません, UUID=bbda98dd-1291-41a2-ae5b-82f860338603
[ec2-user@ip-10-0-0-51 ~]$

※UUIDを控えておく。

  • 新しいスワップ空間を有効にする。
コマンド
sudo swapon <デバイスのパス>
実行例
[ec2-user@ip-10-0-0-51 ~]$ sudo swapon /dev/xvdb
[ec2-user@ip-10-0-0-51 ~]$
  • 新しいスワップ空間が使用されていることを確認する。
コマンド
swapon -s
実行例
[ec2-user@ip-10-0-0-51 ~]$ swapon -s
ファイル名				タイプ		サイズ	使用済み	優先順位
/dev/xvdb                              	partition	8388604	0	-2
[ec2-user@ip-10-0-0-51 ~]$

②自動マウント設定

このまま再起動した場合、スワップ領域が自動マウントされません。
そのため、OS起動時に自動的にスワップ領域をマウントさせる設定を入れます。

  • 設定ファイルをバックアップする。
コマンド
sudo cp -p /etc/fstab /etc/fstab_old
実行例
[ec2-user@ip-10-0-0-51 ~]$ sudo cp -p /etc/fstab /etc/fstab_old
[ec2-user@ip-10-0-0-51 ~]$ ls -la /etc | grep fstab
-rw-r--r--  1 root root       91  429 00:16 fstab
-rw-r--r--  1 root root       91  429 00:16 fstab_old
[ec2-user@ip-10-0-0-51 ~]$
  • 設定ファイルに1行を追加する。
コマンド
sudo vim /etc/fstab
設定追加内容
UUID=bbda98dd-1291-41a2-ae5b-82f860338603       none    swap    sw  0       0
ファイル内容
[ec2-user@ip-10-0-0-51 ~]$ cat /etc/fstab
#
UUID=7b355c6b-f82b-4810-94b9-4f3af651f629     /           xfs    defaults,noatime  1   1
UUID=bbda98dd-1291-41a2-ae5b-82f860338603       none    swap    sw  0       0 ← この行を追加
[ec2-user@ip-10-0-0-51 ~]$

※各設定の意味

フィールド 説明 今回の設定
第一フィールド マウントさせたいディスク
※今回は指定が厳しめのUUIDで設定
UUID=bbda98dd-1291-41a2-ae5b-82f860338603
第二フィールド マウントポイント
※今回はSWAPとして使用するため無しで設定
none
第三フィールド ファイルシステムの種類
※今回はSWAP領域のため「swap」と設定
swap
第四フィールド ファイルシステム毎のマウントオプションを記載。
※「sw」は「swapon-a」コマンドでアクティブ化させるために必要なフラグ
sw
第五フィールド ファイルシステムを dump コマンドがダンプする必要があるかを記述する。1が必要。0が不要。記述がないのも不要とみなす。
※今回はダンプが不要のため「0」を設定。
0
第六フィールド fsckが、ブート時にファイルシステムのチェックを実行する順序を決定するために参照される。

ルートファイルシステムは、1と記述する必要がある。
それ以外のパーティションは、2と記述する。
0の場合は、fsckによるチェックが不要とみなす。

※今回はfsckのチェックが不要のため「0」を設定。
0
  • OS再起動を実施し、起動後にSWAP領域が存在するか確認
コマンド(再起動)
sudo reboot
コマンド(SWAP領域確認)
swapon -s
実行例
[ec2-user@ip-10-0-0-51 ~]$ swapon -s
ファイル名				タイプ		サイズ	使用済み	優先順位
/dev/xvdb                              	partition	8388604	0	-2
[ec2-user@ip-10-0-0-51 ~]$

参考

インスタンスストアスワップボリューム
linux スワップ(swap)領域の作成