このサイトはVPS上にFreeBSD12.1+nginx1.16.1で構成されたWebサーバー上で動いています。
具体的にはVultrというVPSサービスなのですが、スナップショットという機能を使って簡単にクローンを作ることができたり、APIを使った操作(このサイトでは自動バックアップしています)できたりと、結構便利なVPSです。
Vultrを使おう
そんなVultr.comは時間課金のVPSサービス。初期費用とか不要で、VPSが存在している時間(停止中を含む)あたりいくらで課金されます。あとは規定通信量を越えるとそれに対して従量課金。
アカウントを作ってクレジットカードから幾らかチャージしたら、すぐにVPSを作ることができます。このチャージ金額を切らすとVPSが無効になっちゃう。プリペイドSIMみたいなもんだ。
チャージ金額があるうちはいくつでもVPSを立てられるので、OSをバージョンアップしたい時には一時的にふたつのVPSを立ててサイト移行なんてこともできる。
簡単VPSデプロイ
ログインしたらProducts
のInstances
画面右上にある+ボタン
をクリック。
Deploy New Instance
画面でサーバーの仕様決め。普通のWebサーバーならCloud Compute
で十分だと思いますが、場合によってはより高性能なHigh Frequency
を選んでもいいでしょう。Server Location
はTokyo
で。
下へスクロールしてServer Type
でOSを選択。
続いてServer Size
を選択。うっかりしてるとオススメサイズの10ドルプランで作られちゃう!
Additional Features
とかStartup Script
とかSSH Keys
は指定せずにServer Hostname
とLabel
を指定したら、Deploy Now
ボタンを押します。
ちなみにここで指定したHostnameは/etc/hostsファイルや/etc/rc.confファイルにちゃんと反映されます。
一瞬でサーバーが作られてOSインストール開始。その後IPアドレスが割り当てられて自動で立ち上がります。
VPSを選択すると詳細情報が表示されます。ここのUsernameとPasswordを使ってコンソールログインすることになります。(マスクされているPasswordは目玉アイコンをクリックすると表示されます)
右上にあるディスプレイマークボタンをクリックするとコンソールが開きます。コンソールが出たらログインして設定を続けましょう。
タイムゾーンの問題
上記のとおりVultrの言う「Deploy in less than 60 seconds!」は本当なんですが、問題がひとつ。海外製なのでタイムゾーンがUTC協定世界時になっているということ。
なのでこれをJST日本標準時に直しましょう。FreeBSDにおけるタイムゾーンの手動設定方法|シリコンバレー 24時にあるとおり、設定ファイルを置くだけの簡単作業。シンボリックリンクを張っておきましょう。
1 | ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime |
Startup Scriptで自動化
一部の設定はStartup Scriptに登録することで自動化できます。Products
のStartup Scripts
画面を選んで右上のAdd Startup Script
ボタンを押します。
Add Startup Script
画面でNameに識別名を入れてTypeはBootのまま。Scriptに任意のコードを入れてAdd Script
ボタンを押して登録します。
例えば下記のようにタイムゾーンの設定やスワップファイルの作成と登録、vimとbashのインストールにシェルの変更と各種ドットファイルの登録、カーネルセキュリティレベルの設定にfreebsd-updateの実行まで入れておくと便利です。
1 | #! /bin/sh |
サーバーデプロイ時にStartup Scriptのところでこのスクリプトを選んでやると手動設定をだいぶ端折ることができます。
https://www.junk-works.science/wp-content/uploads/2019/07/vultr-select-startup-script.png
デプロイ後にsshの設定とファイアウォール設定してfreebsd-update install後に再起動すれば立ち上げ完了しますよ。