icon

Blog

本ブログをVPSに引っ越しする

2021/11/28

ISUCONを経て、サーバを生で運用する経験が欲しくなったのでConoha VPSに移行してみる。


Intro

  • FirebaseにホスティングしているこのページをConoha VPSに引っ越す。

VPSを提供業者の選択

  • AWS LightSailもありかと思ったが料金が少し高そうだったので有名どころのさくらかConohaで選ぶ
  • Conohaのほうがイメージのバックアップが強そうだったのでConoha使ってみる

Conoha VPSのサーバ

  • なるべく安く済ませたかったが、無難にメモリ2GBのサーバを選択
  • 後から気付いたがVPSではなくWINGというやつを選んでもよかったかも

React SPAのビルド

  • ビルド済みの成果物をアップロードする方法でもよかったが、面倒だったので git clone してビルドする方法に

Node.jsのインストール

  • nvmで入れた https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-20-04-ja

nginxの設定

/etc/nginx/sites-available/default を書き換えた。

  # appの配置場所
  root /home/blog/blog/frontend/build;
  # 後述のTLS対応のため
  server_name 92thunder.dev;
  # SPAなので /about など任意のページにアクセスがきても404にならないように
  location / {
    try_files $uri /index.html
  }

この時点で http://92thunder.dev にアクセスしても https に飛ばされて動かないなーと悩んでたけど devドメインだからHSTSのヘッダーが強制されてしまうからだった。

HTTPS化対応

CertbotがLet's Encryptをよしなにインストールしてくれるらしい

https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-20-04-ja

nginxの設定ファイル見たら勝手に書いてくれてた。すんごい。

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/92thunder.dev/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/92thunder.dev/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

無事に https://92thunder.dev に設定された!

Outro

  • やろうと思って何ヵ月も放置したけどやってみると簡単にサーバにデプロイできた。
  • DigitalOcean先生が日本語でも読めるドキュメント残してくれてて最高に助かった。救われる人多いはず。
  • 引き続きバックエンドAPIやDBも脱Firabaseする。