(ホームページと言えばいいのかランディングページと言えばいいのか未だに曖昧…。)
http://syfm.0t0.jp から https://www.syfm.me へ移行
既存の環境
今までは MyDNS という DDNS サービスで syfm.0t0.jp
というドメインを使っていて、デプロイ方法と環境には Git hook と自宅サーバを使っていた。
具体的には、Git のリモートリポジトリを自宅サーバに構築して、そこに push されると Git hook によって設定したスクリプトが実行され、新しいファイルが /var/www
以下の Apache 管理下にあるディレクトリにコピーされる感じだった。
一度設定してしまえば、あとは git push
する度に自動で反映されるのでそこまで大変な管理でもなかったけど、自宅サーバにはこのホームページしか動いてなかったからすごいもったいない感があって、前々からどうにかしたいなぁと考えていた。
ついでに、ドメインの 0t0
も気に食わないのでやはり独自ドメインで運用したいなぁとも思っていた。
新しい環境
そこで、今回はできるだけ管理コストを削減しようと思って環境を作った。
主に使用したのは、
の4つ。
独自ドメイン
とりあえず お名前.com で取得した。Route 53 とかで取得しても良かったかもしれない…。
本当は .com
とか .ne.jp
とか .net
とかほしかったけど、既に取得されてたり、異常に高かったりしたので諦めて .me
にした。400円くらいなのでとても安い。
GitHub Pages
サイトを公開するために利用。
知らない人の為に簡単に説明すると、GitHub Pages は、自前でサーバを持たなくても静的ファイルがホスティングできる機能で、<username>.github.io
というリポジトリを作ると、https://<username>.github.io
でアクセスできるようになるというとても便利な仕組み。
他にもリポジトリ名が上のような形でなくても、gh-pages
というブランチをつくれば https://<username>.github.io/<project-name>
という感じでプロジェクト毎に公開できる。
CircleCI
自動でデプロイするために利用。
GitHub で、lycoris0731.github.io
(ホームページ公開用リポジトリ) と homepage
(静的ファイルを生成するための作業リポジトリ) をつくり、homepage
の方に CircleCI を設定した。
master
ブランチに push されると、dest
以下のファイルが lycoris0731.github.io
リポジトリにコミットされるように設定したので、push するだけで自動でデプロイされるようになる。
Cloudflare
DNS サーバ、SSL 対応のために利用。
取得した ドメインのプライマリサーバとセカンダリサーバを Cloudflare から提供されたものに変更した。
www.syfm.me
にアクセスすると lycoris0731.github.io
のコンテンツが表示されてほしかったので、CNAME を設定した。
また、<username>.github.io
だとなにもしなくても HTTPS になっているけど、独自ドメインを設定すると、自前で設定する必要がある。
なので、Cloudflare の機能を使って HTTPS で配信されるようにした。とても簡単でびっくりした。