Webに来た
やる気が出たのでドメインを取ってVPSを借りてWebサーバーを立てました。やったことを書いておきます。
ドメイン
手始めにドメインの取得をしました。取ってしまえばもう後戻りできないです。
ドメインはGoogle Domainsを使って取得しました。
正直なところ、レジストラのどこをどう比較すればいいのかわかりません。が、なんとなくは選ばない方がいいレジストラがあるという噂は聞いていたので、それ以外のレジストラから適当に選びました。
VPS
AWSのLightsailを使うことにしました。
最初はさくらのVPSを使おうと思いましたが、手元のデビットカードがゴリヨウできなかったのでやめました。
AWSならEC2やらEBSやらを使えば1年間無料で程よい性能のマシンを使えるとも考えましたが、別にAWSと戦いたいわけではないのでLightsailを選択しました。料金体系もシンプルですし。
現在、最も性能の低いサーバーを使用しています。搭載メモリは512MBで、VSCodeでリモート接続しながらdocker-composeを叩くだけでサーバーが落ちます。既に2回はこれで落としました。
Webサーバー
とりあえずでnginxを使用しています。単純に他の選択肢を知らないからです。Apache HTTP Serverも聞いたことがありますが、聞いたことがあるだけで触ったことがないので今回は見送りました。
nginxはdockerコンテナ上で動かしているのですが、nginxのログの処理をするlogrotateはホスト側で叩いています。ホスト側で既にlogrotateを定期的に叩く設定はされていたので、コンテナ内のログが吐かれるディレクトリにマウントしているディレクトリに対して以下のような設定を書けば動きます。
/home/ubuntu/nginx/log/*.log { daily missingok rotate 7 compress delaycompress notifempty create 644 root root sharedscripts postrotate if docker ps --filter='status=running' --format='{{.Names}}' | grep 'ubuntu_nginx_1' -q; then docker kill -s 'USR1' ubuntu_nginx_1 fi endscript }
cronとlogrotateぐらいコンテナに入れてやってもいい気がしますが、面倒なのでこのようにしました。
ちなみに、Lightsailにもファイアウォールがあるので、サーバー内でのポート解放に加えてこのファイアウォールの設定もしていなければ外部から接続できません。私はこれに気づかず3時間溶かしました。
証明書
certbotを使って作成しました。
コマンドを叩いてほいほい質問に答えるだけで証明書が作れるなんて便利ですね。
このブログ
とくにSSGを導入しているわけでもなく、HTMLをちまちま手書きしています。
そのうち何らかの軽量マークアップ言語に乗り換えようと考えていますが、まずは手書きをしてHTMLの気持ちになることが大事なんだと思います。