今更だけどEC2でswapを作るときにすること

ガジュマル育ててる人
2023-12-27
2023-12-27

もう2023年も年末ですね。
毎年一年が過ぎ去るのが早くなってくるのを感じて老いを感じ始めたアラサーです。

すごく今更なんですが、t系などよく使用するインスタンスタイプではswapが初期で作成されません。
たまに忘れちゃうので、備忘録的にEC2のswapを作成するときにすることをまとめます。

早速やっていきます


基本的に公式ページに従って作業します。
https://repost.aws/ja/knowledge-center/ec2-memory-swap-file

まず、EC2を立てます。
公式ページでは下記ddコマンドでスワップ用のファイルを作るとありますが、
まずはEBSのディスク容量があるか確認しましょう。

$ sudo dd if=/dev/zero of=/swapfile bs=128M count=32
[ec2-user@ip-172-31-10-161 ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        454M     0  454M   0% /dev
tmpfs           481M     0  481M   0% /dev/shm
tmpfs           481M   55M  427M  12% /run
tmpfs           481M     0  481M   0% /sys/fs/cgroup
/dev/xvda2      8.0G  3.7G  4.4G  46% /
tmpfs            97M     0   97M   0% /run/user/1000

確認するとEBSデフォルト容量の8gbで作成してるので、空き容量が4.4GBであることが分かります。

[ec2-user@ip-172-31-10-161 ~]$ free -h
              total        used        free      shared  buff/cache   available
Mem:          961Mi       238Mi       234Mi        56Mi       488Mi       518Mi
Swap:            0B          0B          0B

また今回作成したEC2はt2.microで、RAMは1GBです。
Redhatの推奨に従って今回は2GBをswapに割りてていきます。(EBSの容量が足りないときは容量を増加させるなど調整しましょう。)
※2GBなので、128M×16=2048Mで設定します。

[ec2-user@ip-172-31-10-161 ~]$ sudo dd if=/dev/zero of=/swapfile bs=128M count=16
16+0 records in
16+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 31.1194 s, 69.0 MB/s

権限変更やスワップ領域のセットアップ等を実施すると割り当ては完了です。

[ec2-user@ip-172-31-10-161 ~]$ sudo chmod 600 /swapfile
[ec2-user@ip-172-31-10-161 ~]$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=21e45515-aaa7-4a4b-9474-fda79275ba8d
[ec2-user@ip-172-31-10-161 ~]$ sudo swapon /swapfile
[ec2-user@ip-172-31-10-161 ~]$ sudo swapon -s
Filename                                Type            Size    Used    Priority
/swapfile                               file            2097148 0       -2

[ec2-user@ip-172-31-10-161 ~]$ free -h
              total        used        free      shared  buff/cache   available
Mem:          961Mi       237Mi       196Mi        56Mi       527Mi       518Mi
Swap:         2.0Gi          0B       2.0Gi

最後にfstabに1行追加して作業は完了です。

$ sudo vi /etc/fstab

/swapfile swap swap defaults 0 0

最後に

Swapの割り当ては特にメモリが少ないインスタンスだとOOM Killerを防ぐために
重要な事項になるかと思いますが、EBSの容量はつかってしまうので、空き容量を確認することはお忘れずに!

それでは良いお年を!