ゼロからホームページを作ってみた話

はじめに

完全にゼロからホームページを作ってみた。 ここでいうゼロからとは、vercelやherokuなどのPaaSを使わないことを指す。

作ったホームページ(このウェブサイト自身)
http://soramameen.com/

背景・動機

インターン中の勉強会でnginxという単語が出てきた。その時に全く分からずに、webサーバーのソフトウェアということがわかった。そして、webサーバーとwebアプリのサーバーサイドのサーバーとごっちゃになっていた。さらに、kubernatesやkamalも出てきて、便利だが、そもそも何が大変なんだ?状態だった。

そんな感じで、インフラがボロボロすぎたので、自分で全部やろうと決めた。

構築の流れ

1. Railsアプリケーションの作成

ローカルでrailsアプリを作った。 派手なものが作りたいのではなかったため、homeのviewに自己紹介を書いたもの。

2. サーバー選定

そもそも、サーバーとは何か知らなかったので調べた。サーバーとは、パソコンであるらしい。

最初、使わないパソコンをサーバーとして運用しようとしたが、自宅のLAN?を使うようで、そこから色々なりそうなので、セキュリティ的にやめておいた。

じゃあ何を使えばいいのか調べた結果、VPSというサービスがあった。VPSとは、その会社が持つlinuxサーバーを借りることができるサービスだ。

性能なんていらないので一番安いらしい、vultr.comというサービスを利用した。

3. デプロイの仕組み理解

じゃあどうやって始めるか。

linuxサーバーがアプリケーションをpullして、環境を作り、起動する。それをイーサネット上のIPアドレスとfowardingしてそのサーバーに接続するようにするという流れっぽい。

4. 環境構築とDocker

今回起動が必要なものは、railsのアプリケーション、nginx, postgresQL(今後のため)。

これらを別々に立ち上げる必要があり、非常に面倒くさい。

ここでdockerが誕生する。docker imageという設計図から具体化する方式をとっており、再現性高く管理できる。そして、docker composeというので複数のdockerコンテナを一度に操作できる。これらの神さを体感。docker composeをさらに複数扱う、kubernetesという概念や、さらにそれらを複数扱ったりもするらしいが今回必要ない。コンテナ技術、kubernetesなども今後学んでいきたい。非常に面白そうだ。

それぞれのDockerfileはAIに書いてもらった。一番大事な部分っぽいが分からなすぎて今回は断念。

5. デプロイフロー

デプロイの流れは、

  1. ローカルで編集してgithubにpush
  2. VPSでgit pull
  3. docker build
  4. docker composeで立ち上げる

これらがデプロイの流れである。これでデプロイってなんだ?が解消された。dockerの部分が少しブラックボックス感あるが、次はDockerfile内も理解しよう。

6. ドメイン取得

お名前.comでとった。テンション上がるね。.devとかもよかったが今回は、soramameen.comで私のサイト感を出した。

感想

webアプリについて特にインフラについて知ることができた。今後もこのサイトで色々遊んでみたいと思う。

一覧に戻る