Cosnomi
Cosnomi

医療×IT / 医学生 / Web(React, Flask) / 機械学習(画像認識, Keras)

Twitter / GitHub / Keybase

台風のせいで自宅サーバーがダウン 自宅サーバーの弱点を痛感

先日、台風のせいで自宅サーバーがダウンしてしまい、それに伴いMastodonのインスタンスも2日弱落ちてしまいました。関係各位(主に Mastodon の人たち)にはご迷惑をおかけしました。原因は自分ではどうしようもない部分だったのですが、今回の出来事で自宅サーバーの弱点を実感しました。

障害の概要

期間: 2018/10/01 2:00 ごろ ~ 2018/10/02 22:00 ごろ

内容: 自宅サーバーの全サービスの停止

時系列の記録

  • 2:00 ごろ
    一瞬だけ停電。メイン PC もサーバーマシンも電源が落ちたので再び起動する
  • 2:10 ごろ
    普段使いのPCからインターネットに接続できなくなるLAN内PCのDNS サーバーを自宅サーバーにしているので、その不具合を疑うも、LAN 内の名前解決は問題なく、LAN 外の DNS サーバーへの接続がうまく行っていないようだった。
    さらに、DNS サーバーを自宅サーバーではなくデフォルトのままにしてもアクセスできなかったので、自宅サーバーの故障説は薄い。とりあえず安心…?
  • 問題は解決しないがそのまま就寝

  • まだアクセスできない。携帯回線でブログにアクセスしてみるもエラー。やっぱりネットワークの障害のようだ。

  • 状況は変わらず。インフラの深いことは分からないが、もしかしたら一時的に電源が遮断されたあとルーターがおかしくなってるのかもしれない。帰宅したらルーターを再起動してみようと考える。
  • 帰宅
    帰宅すると、親から「台風のせいでネットワークの回線(?)が切れていたようで、15 時頃に復旧したようだ」との連絡を受けた。そこで、ブログにアクセスしてみるとサーバー自体は復旧していたが、403 Forbidden。いつも、サーバー再起動後に行っている処理を自動化していなかったためだったので、その作業を行い無事復旧。 という感じです。結局、障害箇所が自分では同しようもないところなので、自分としては「復旧作業」なんて何もしてません。

具体的な損害

自宅サーバーでは複数のサービスが動いていますが、一番大きなのはやはりこのブログです。(追記: 現在は自宅サーバー外で動かしています。)最近は好調で、アクセス数も伸びてきていたのですが、この日のアクセス数は激減です。

幸い、自宅サーバーのデータに関しては問題ありませんでした。万が一のことがあっても、定期的にバックアップを取っているので大丈夫なはずですが、リストアも面倒なのでこれに関しては無事で本当に良かったです。

反省

Mastodon が落ちてしまうと、障害情報をアナウンスする手段が殆どないことに気づきました。

SupportPage でのアナウンスも試みたのですが、旧サポートページはお知らせをブログから取得して、表示しているため、ブログからの応答が返って来ないとエラーになってメンテナンス編集画面に到達できないという事象が発生しました。これは、致命的ですので早急に解決したいと思っています。

また、自宅サーバーが落ちていると GitLab も落ちてしまうので、外で開発作業ができませんでした。開発基盤のサービスは VPS に出したほうがいいのかなと思っています。(追記: 結局、今はGitHub主体で開発をしています)

自宅サーバーの弱さを実感した

やはり家庭用の回線を使っているというのが自宅サーバーの弱点ですね。一部の誤家庭を除けば、自宅サーバーはあらゆる場面で「家庭用」の部品・設備を利用しています。CPU は家庭用ですし、メモリだって家庭用。電源も、そして、回線も。一方、VPS が利用しているのはいわゆる「業務用」です。業務用と家庭用、価格には大きな差がありますが、平常時のスペックって案外変わらないものです。では何が違うのかというと、「信頼性」です。

異常な事態、たとえば停電、落雷、そして強風などのときであっても、機能し続ける。これが、業務用のパーツが「信頼性」が高いといわれる所以です。そして、家庭用の設備を利用している自宅サーバーはこういった異常事態のときに弱いのだと痛感しました。

ここ最近、このブログも自宅サーバーではなく VPS に移すべき時が来たのかもしれませんね…などと思います。障害発生時は本当に面倒なのが自宅サーバー。しかし、その障害対応も自宅サーバーの醍醐味であるという主張も理解はできます。そこまで大事でないサービスを運用するのは確かに楽しいと思うので、いい感じでバランスを取っていきたいですね。

まとめ

  • 原因はインターネット回線だったのでどうしようもなかった
  • 障害通知の方法を見直したい
  • 開発基盤は止まるとよくないので VPS に出したいかも
  • 自宅サーバーに大事なサービスを置くと大変