GCP(Google Cloud Platform)VMインスタンス

現在GCPのVM(仮想マシーン)インスタンスへサーバ環境を移行検討中。トライアルとして新規登録(クレジットカード登録が必要ですが、あくまで個人認証としてのみ使用するそうです)すると$300相当のクレジットが適用されるので、小規模サーバであれば最大で1年間は実質無料で利用できます(カード会社からは一切請求されることはありません)。AWSなど他のVMサービスと比較して、トライアル経過後に自動的に有料サービスに移行することがないことと、トライアルでも、よりグレードの高いサービスも選択できるのでGCPを試用することにしました。
同グレードのVMサービスを選択した場合、他社のサービスと比較して割安です(コンピュータリソースの余剰部分を利用するプリエンティティブVMインスタンスとすることで更に安くなります)。

GCPのVMインスタンス(仮想マシーン)のOSとしてUbuntu18.04を導入。メモリー1.6GのVMインスタンスを選択しましたがデフォルトではswapメモリが設定されていないため、以下手順でswapメモリを設定します(パフォーマンスが犠牲になるため、出来ればswapは使用しない方がいいです)。

ブラウザのGCP画面でssh接続のターミナルを起動

$ sudo fallocate -l 4G /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
$ sudo swapon -s

/etc/fstabに以下追加

/swapfile none swap sw 0 0

swapfile削除

swapoff後swapfileを削除します。アクセス権が600なので7XXに変更します。

$ sudo swapoff /swapfile
$ sudo chmod 777 /swapfile
$ sudo rm /swapfile

swapfileのサイズ変更は既存のswapfileを削除後行います。
fallocateから再度実行してサイズ変更して下さい。

:exclamation:2021/11/05:追記)

fallocateによる方法は、OSが直接アクセスできるファイルシステムでswap領域を確保するため推奨されていません。ddによる方法を選択しましょう。

Ubuntu Swap Help
https://help.ubuntu.com/community/SwapFaq

fallocateによる方法

$ sudo fallocate -l 1g /mnt/1GiB.swap

fallocate size suffixes: g = Giga, m = Mega, etc. (See man fallocate).

ddによる方法

fallocateによる方法を提示していますが、ddを推奨します。

If fallocate fails or it not available, you can use dd:

$ sudo dd if=/dev/zero of=/mnt/1GiB.swap bs=1024 count=1048576
  • 1GiB = 1024 MiB = 1048576 KiB
  • 2GiB = 2 × 1048576 = 2097152 KiB

We need to set the swap file permissions to 600 to prevent other users from being able to read potentially sensitive information from the swap file.

$ sudo chmod 600 /mnt/1GiB.swap

Format the file as swap:

$ sudo mkswap /mnt/1GiB.swap

Enable use of Swap File

$ sudo swapon /mnt/1GiB.swap

The additional swap is now available and verified with: cat /proc/swaps

Enable Swap File at Bootup
Add the swap file details to /etc/fstab so it will be available at bootup:

$ echo '/mnt/1GiB.swap swap swap defaults 0 0' | sudo tee -a /etc/fstab

Swapサイズ確認

$ cat /proc/swaps 
Filename                                Type            Size    Used    Priority
/home/swapfile                          file            1048576 1048576 -1
$ free -h
              total        used        free      shared  buff/cache   available
Mem:            15G        9.3G        454M        4.0G        5.8G        1.9G
Swap:          1.0G        1.0G          0B

Disable and Remove a Swap File
Disable the swap file from the running system and the delete it:

$ sudo swapoff /mnt/1Gib.swap 
$ sudo rm /mnt/1Gib.swap

Remove the swap file details from fstab:

$ gksudo gedit /etc/fstab

Removing the swap file line

/mnt/1GiB.swap swap swap defaults 0 0


swapの無効化

一時的に無効にする場合: -aオプションでswapメモリー全消去

注)再起動後に再びswapは有効になります。

$ sudo swapoff -a

完全無効化

$ sudo nano /etc/fstab
#/swapfile none swap sw 0 0 ---> コメントアウトして下さい

GCPの料金設定はリージョン(地域)によって異なります。米国のアイオワ、オレゴン、サウスカロライナなどが最安となっています。

以下USリージョンのコンピュータエンジンe2-microはフリーです。但しデータ転送については料金が発生します。