Vultr における Ubuntu 16.04 Server の設定メモ

www.vultr.com

VPSConoha からVultrに移行したので備忘録。

一般的なUbuntu の設定については省略しています。

ConoHa では不要だった作業のみ。

作業内容など

VPS上で稼働しているという点を除けばただのUbuntuです。(記憶違いでなければ)さくらインターネットVPSなどは初期設定に修正が入っていたようですが、そういうお節介は無いようです。Vultr から提供されているOSイメージを使う場合の注意点を以下の通り。

よって上記2点のみ作業手順を記録しておきます。

なお、初期状態でOP25BによりSMTPポートからの通信がブロックされているのでサポートに解除を依頼し、VPSの管理画面から対象のサーバーを再起動する必要があります。

Ubuntu の設定としては過去記事を参照。

a244.hateblo.jp

どこのVPSを使うにしてもファイアーウォール(UFW or iptables )とssh、メールの転送設定は最低限必要だろうと思います。

Swap (swapfile) の設定

自分でISOイメージをアップロードしてOSをインストールした場合を除き、swapパーティションが作成されていません。また仮想ディスクに空き領域もないのでSwapパーティションの代わりにswapfileを作成、有効化します。

最も安いプランで768MBあるので以外にSwapなしでもいけそうに思えますが、用途によってはメモリを割り当てられなかった("cannot allocate memory")というエラーでプログラムのビルドや実行に失敗することがあります。設定しておいて損はないはずです。


基本的に公式サイトのドキュメントにしたがあって作業すれば問題なし。

Setup Swap File on Linux - Vultr.com

作業前の状態では、freeコマンドの出力を見てもSwap のトータルの容量はゼロのはず。

$ free -m
              total        used        free      shared  buff/cache   available
Mem:            740         483          54          10         202         117
Swap:             0           0           0

ddコマンドでディスクファイルを作成し、一般ユーザーが読み書きできないようにパーミッションを設定。

dd if=/dev/zero of=/swapfile count=2048 bs=1M
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 17.1776 s, 125 MB/s

$ sudo chmod 600 /swapfile

$ ls -lh /swapfile
-rw------- 1 root root 2.0G Nov  7 05:56 /swapfile


mkswapコマンドでswapパーティションとしてフォーマット。

$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=67eaf63b-e876-4528-b4dd-8bf4b910ea3d


swaponコマンドで有効化。

$ sudo swapon /swapfile

状態を確認。

$ free -m
              total        used        free      shared  buff/cache   available
Mem:            740         484          53          10         202         115
Swap:          2047           0        2047

問題がなければ再起動後もSwapを有効にするために/etc/fstabをに設定を追加。

/swapfile        none        swap    sw    0        0

タイムゾーンの設定

別に設定しなくてもログに表示される時刻が日本時間と9時間ずれるだけす。

サーバー側のアクセスログと、Google Analytics の時間がずれたり不便なので設定しておきます。手順はsystemd環境における設定手順と同じ。

まず現状確認から。

timedatectlコマンドのstatusを使うことで現在の状態を確認。

 $  timedatectl status
      Local time: Sun 2016-11-20 11:55:29 UTC
  Universal time: Sun 2016-11-20 11:55:29 UTC
        RTC time: Sun 2016-11-20 11:55:29
       Time zone: Etc/UTC (UTC, +0000)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

設定可能なタイムゾーンtimedatectl list-timezonesで確認できます。ただし、全体で422、アジアだけでも80のタイムゾーンがあります。日本の時間に合わせるのであれば、"Asia/Tokyo"にすればOKです。

grepで絞り込みをかけてやると、以下の通り。

$ timedatectl list-timezones | grep Tokyo
Asia/Tokyo

素直に設定します。

$ sudo timedatectl set-timezone Asia/Tokyo

設定の確認

 timedatectl status
      Local time: Sun 2016-11-20 21:28:35 JST
  Universal time: Sun 2016-11-20 12:28:35 UTC
        RTC time: Sun 2016-11-20 12:28:35
       Time zone: Asia/Tokyo (JST, +0900)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

その2

$ date
Sun Nov 20 21:29:27 JST 2016

手元の時計と一致していれば問題なし。

何かと批判の多いsystemdですが、こういった基本設定に関して手順がが共通化されたという点はsystemdのメリットです。

そのほか

初期設定のNTPサーバーが海外のサーバーになっていますが実害はなさそうなので放置しています。