/note/tech

ひろゆき氏が無料ツール利用を貫く理由 「2ちゃんねる」運営で学んだ壊れにくいサービス設計

要約:

■ 1. 2ちゃんねる創設の経緯

  • 立ち上げの動機:
    • 暇だったことが第一の理由
    • アメリカで大学生をしていた当時、「あめぞう掲示板」を使用していた
    • 「自分で作れるのか」と試したら作れてしまった
    • 高いモチベーションがあったわけではなく、できてしまったから惰性で続けた
  • 学んだこと:
    • プログラムを作る力とサービスとして運営していく力は全く別物
    • 動くものができても運用しやすいようにコードを修正する必要がある
    • トラブル防止のためのサーバー準備も必要
    • 世界中の無料サーバーを契約して回り、「ここが落ちたら次はここ」というルートを事前に用意する運用ノウハウを蓄積

■ 2. 技術選定とシステム設計の考え方

  • 使用言語:
    • 当時からPerlで書いており、現在も同様
  • データベースを使わない理由:
    • データベースはたまにデータが壊れる
    • 約10年前に某企業のOracleデータベースのデータが全消失した事例がある
    • データベースを使うとメモリやCPUのオーバーヘッドが大きくなりサーバーコストが高くなる
  • テキストファイル保存の採用:
    • テキストファイルに書き出せば壊れにくくできる
    • お金がない中での工夫
    • 「どうやったら安く、壊れにくく動かせるか」という発想
    • このノウハウはその後のIT系会社経営でも活用

■ 3. 潰れない会社の経営哲学

  • 基本原則:
    • 会社が潰れるのはお金がなくなった時
    • お金がなくならなければ会社は生き残れる
    • 毎月のランニングコストをいかに安くするかが重要
  • よくある失敗パターン:
    • 売上を上げていく過程でコストも上がる
    • 売上が下がった時に赤字になり大慌てになる
    • 一度上がったコストを下げるのは非常に困難
    • その結果として倒産するケースが多い
  • 実績:
    • 1999年に大学生の時に作った合資会社は現在も存続
    • 2001年頃に作った株式会社も現在も存続
    • 自分の会社を潰したことはない

■ 4. サービスを当てるための考え方

  • 仮説の作り方:
    • 他にないことで「自分がそれを知りたい・やりたい・おもしろいと思うか」が基準
    • 自分自身がおもしろくないと思うと飽きて続かなくなる
    • 「別に自分が作らなくてもいい」「既にある」と思うと飽きてしまう
    • 自分の欲望に沿うタイプ
  • 他のアプローチとの違い:
    • 「世間で流行っているから作る」というソシャゲー系の作り方はできない
    • 好き嫌いに関係なく儲かるものを作る人もいるが、自分はそれができない
    • 人の性格による違い

■ 5. 2ちゃんねる立ち上げ期の戦略

  • 当時のインターネット環境:
    • 企業がサイトを作って運営することは少なかった
    • ネット決済やクレジットカード入力はほぼ存在しなかった
    • 個人がブログを書いてサイトを作るのが普通だった
    • 情報を出す人が少なかった
    • 「日本語で書かれているページはだいたい全部見た」という人がいた時代
    • 昔のファミコンで「発売されたソフトはほぼ全部触っている」という人がいたのと同様
    • 「全部わかる時代」だった
    • 新しいサイトができたら情報を共有するリンク集が流行していた
  • 掲示板を選んだ理由:
    • 情報が集まる場所として掲示板はずっと残ると考えた
    • 誰でも書けるため情報が出回りやすい
    • 人が多ければ多いほど情報が増える
  • 競合に勝つための設計:
    • たくさん人が来ても耐えられる仕組みにする
    • 書かれたデータが消えずに残り続けるようにする
    • 利便性を上げることで他のサービスより優位に立つ
  • コスト構造の優位性:
    • 他のサービス運営者は自腹で回していたため、自分の給料以上の規模にできなかった
    • 世界中の無料サーバーをひたすら契約し続けた
    • 自分の人件費を除けばコスト構造がほぼゼロ
    • 無料で規模だけ大きくしていった結果、日本で一番大きい掲示板になった
  • 掲示板とSNSの関係:
    • 掲示板はSNSの前の姿といえる
    • 昔は掲示板で情報収集・情報共有をしていた
    • 今はSNSがその役割を担っている

■ 6. 自宅サーバー学習の価値

  • 自宅サーバーの意義:
    • 2ちゃんねるも自宅サーバーで運営していた時代がある
    • 自宅サーバーでしか学べないことがある
  • 具体的なメリット:
    • 「GPUをぶん回す」ような処理は自宅で回したほうが安いケースがある
    • 「オンプレで自前で持つべきか」「クラウドでやるべきか」という比較ができるようになる
    • オンプレという選択肢を持っていないと「AWSとGCPどっちが安いか」という比較だけになる
    • 「この部分はオンプレにする」「重要なデータだから社内に置く」といった判断ができる
  • 結論:
    • 自前サーバーの経験はサービスの管理者になるなら持っておいたほうがよい

■ 7. AI競争の価格面の帰着

  • 大企業の動向:
    • OpenAIや大きな会社がひたすら投資しているものは残り続ける
    • 各社が「超優秀なAIを作る競争」をしている
  • 一般ユーザーの実態:
    • 一般の人たちは「そこまで必要ない」という時代になりつつある
    • ChatGPT3と4の違い、4と5の違いを体感で理解しているユーザーは7〜8割もいない
  • 今後の予測:
    • Metaの「パソコン1台で動く」「スマホの中で動く」モデルがある
    • 中国製の「GPUなくても動く」モデルも存在
    • スマホやノートPCの中に入って「これで充分」という時代になる
    • 巨大なデータセンターや電力の話が問題にならなくなる
    • 「能力が高くなくてもこれで足りる」ものが小さく自分のスマホの中で動く時代になる

■ 8. データベースより軽い設計発想

  • データベースの課題:
    • データベース連携は便利なミドルウェアも多く、いろんな人が触れるようになる
    • しかし当時はサーバーのリソースが少なすぎた
    • アクセスが増えるとCPUが詰まる
    • データベースは同時書き込みでデータが壊れるため「ロックして1人ずつ書く」動きをする
    • アクセスが多すぎるとロックがかかったままになりデータの出し入れができなくなる
    • 結果としてサービスが止まる
  • 分散処理の問題:
    • 「同じサーバーを100台並べて分散すれば処理が100倍になる」というやり方はコストがかかる
  • 採用した解決策:
    • 「多少順番がズレてもいいからロックしないで書く」
    • 「多少の誤差は許容する」という方針
    • ロックせずにどんどん追記していく
    • 「書き込んだ順番が前後することがあってもしょうがない」という誤差を認める
    • この方法でコストは大幅に下がる
    • テキストファイルでの運用はこの考え方に基づく
  • JSONでのAPI操作:
    • 「データベースでガチガチにやるのではなくJSONでやる」というのは同様の考え方