世界を動かす技術を、日本語で。

「One Big Server」を使う (2022)

2025年9月1日原文(specbranch.com)

概要

  • 分散システム 導入は本当に必要かをコスト・運用面から再考察
  • 現代サーバーの 性能と価格 の実態
  • クラウド利用の利点と割高なコスト の理由
  • 多くのケースで 大規模単一サーバー が十分な理由
  • クラウドアーキテクチャ 採用時の注意点

モノリス vs. マイクロサービス:本質的な問い

  • 分散システム導入 の是非は、開発コストや運用負荷を正しく見積もる必要性
  • 仮想化やサーバーレス の流行により、実際のサーバー性能を見誤りやすい現状
  • 結局すべてのソフトウェアは 物理サーバー 上で稼働
  • 現代のサーバーは 高性能・低価格 であり、従来よりもはるかに大きな処理能力を持つ
  • 分散構成 が本当に必要か、実運用に即して再検討する重要性

現代サーバーの実力

  • 例: Microsoft Azure のAMDサーバー構成
    • 128コア/256スレッド、 4 TFLOPs の演算性能
    • 1TBメモリ (最大8TB)、200Gbpsのメモリ帯域
    • 128 PCIe Gen4レーン、 NVMe SSD最大30台 接続可能
    • ネットワークカード は50-100Gbps対応
  • 2000年代前半の スーパーコンピュータ並み の性能
  • 1台で 動画配信400Gbps、NoSQL 100万IOPS、nginx 50万リクエスト/秒など実現可能

サーバーのコスト比較

  • OVHCloud :128コア/512GB RAM/50Gbps帯域で月$1,318
  • Hetzner :32コア/128GB RAMで月€140
  • AWS m6a.metal :192vCPU/768GB RAM/50Gbpsで月$6,055
  • 物理サーバー購入 :同等スペックで約$40,000(8ヶ月でクラウドと損益分岐)
  • クラウド利用は 大幅な割高 だが、可用性・運用の容易さが利点

クラウド時代の変化

  • 2010年頃のサーバーは8コア/16スレッド、256GBメモリが上限
  • 分散システム が必須だった背景
  • 現在は 単一サーバーの性能向上SSD普及 で状況が一変
  • VMやコンテナのサイズは増えていないが、 実ハードウェア性能は大幅向上

単一サーバーで十分なケース

  • 動画配信以外で 10,000QPS未満 なら1台で十分な場合が多い
  • シンプルなWebサービスなら 100万QPS も可能
  • ベンチマークや類似サービスの性能表を参考に 必要スペックの見積もり が可能

「縦に伸ばす」方が「横に広げる」より有効

  • サーバーを増やすほど クラスタ管理のオーバーヘッド が増加(O(n))
  • 少数の 大規模サーバー 利用が効率的
  • サーバーレスなど 極小単位の分散 はコスト増大の一因
  • 単一サーバーの管理は 極めて簡単

大規模サーバーと可用性

  • 単一サーバー 運用の課題は可用性
  • プライマリ+バックアップ 構成が現実的(異なるデータセンター推奨)
  • 2x2構成 (本番・バックアップ各2台)で高い冗長性
  • 同一メーカー・バッチ のハードウェア故障リスクに注意
    • 異なるモデル・メーカーの併用でリスク軽減

クラウド利用の現実

  • 高可用性・運用容易性 がクラウドの主な利点
  • クラウドは 割高 だが、障害対応やリソース追加が迅速
  • レンタルサーバー は安価だが品質差・移行の手間あり
  • クラウド営業は「 クラウドネイティブ」な分散構成を推奨しがち
    • マイクロサービスやサーバーレスは ベンダーロックイン 要因にも

ピーク負荷課金の罠

  • ピーク負荷分を常に支払う」のが単一サーバーの欠点とされる
  • だが、クラウドの「従量課金」も 実際はピーク負荷分のコスト が内包
  • 突発的なバースト型負荷 にはクラウド/サーバーレスが有効
  • 常時稼働型サービスなら 大規模サーバーの方が低コスト・開発容易

クラウドのコストプレミアム

  • クラウド利用は 5~30倍の価格差 も珍しくない
  • 長期契約や営業との価格交渉で「ピーク負荷プレミアム」を回避可能
  • ワークロードがバースト型なら「クラウド化」推奨、そうでなければ「大規模単一サーバー」推奨

このように、 現代の高性能サーバー を正しく活用すれば、多くのWebサービスは 単一または少数台構成 で十分運用可能です。 クラウドの便利さ は魅力的ですが、コスト構造や本当に必要な分散度合いを再考することが重要です。

Hackerたちの意見

いい記事だね。これを大規模にやるならCDNを追加するのも考えた方がいいかも。WAFやDNSフェイルオーバーも使えるしね。個人的にあまり好きじゃないのは、この非クラウドアプローチだと自分でデータベースを運用しなきゃいけないこと。クラウドデータベースを提供しているプロバイダーを考える価値があると思うよ。「アクティブ/パッシブ」構成にするなら、パッシブ部分にはオートスケーリングのあるクラウドVMを使ってもっとお金を節約するのもアリだね。最近のサーバーの価格はすごくて、4GB RAMのVPSが良いCPUと帯域幅で約6ドル、32GB RAMのクアッドコアのベアメタルが約90ドルで手に入る。serversearcher.comみたいなサイトを使って比較するのもおすすめ。

もし単一のマシンで運用してるなら、PostgresやMySQLの代わりにSQLiteを使った方がパフォーマンスがずっと良くなるし、データベースの管理もかなり楽になるよ。

Dockerコンテナ内でPostgresを動かして、普通にバックアップを取るのに何か問題ある?俺は全然問題なかったし、管理も比較的簡単だよ。

コストやキャパシティの分析に関係なく、業界のトレンドには逆らいにくいよね。「ハードウェアのことを考えなくていい」っていうメリットは本当にあると思う。資本支出(capex)はどんな手段を使っても避けるべきだという考え方もあるし、サーバーハードウェアは初期投資が高いからね。それに、AWSのリージョンがダウンしたら、組織の責任に見えないけど、プライベートホスティングがダウンしたら、やっぱり組織のせいにされる感じがする。

はっきり言うと、これは私の推薦じゃなくて、クラウド専用デプロイが一般的な理由の観察なんだ。履歴書重視の開発へのプレッシャーも無視できないと思うし、それがインフラの人たちのキャリアに影響を与えているのは間違いない。物理的なデータセンターで働いていると、時代遅れに思われるかもしれないね。私は自分のコードが動いているサーバーを見に行けるのが本当に恋しい。データセンターって面白い場所だと思ってたし。でも、今のところ、純粋なコスト分析だけで決める努力はあまり見られないね。人々のホスティング選択を決定づける他の業界の力もたくさんあるから。

128GB RAMまでなら、サーバーをレンタルするだけで簡単にcapexを避けられるよ。それ以上になるとちょっと難しくなるけど。

サーバーハードウェアは初期投資が高い そもそもサーバーハードウェアを買う必要はないよ!記事でもHetznerからのレンタルを具体的に言ってるし。 > 「ハードウェアのことを考えなくていい」っていうメリットは本当にある この記事で言及されている以上のことをこの主張について説明してくれる?

「本当に必要な場合を除いて分散システムを書くな」というメリットも本当にあるよ。

たしかに、キャピタルエクスペンディチャー(capex)はできるだけ避けるべきだって考え方もあるよね(サーバーハードウェアは初期投資が高いし)。そうだね。正直言うと、その考え方を持ってる人は計算が苦手だったり、電卓を使えない人が多い気がする。でも、確かに存在するよ。とはいえ、今の時代、サーバーのコストは企業にとってあまり影響を与えないと思う。むしろ、その周りのスペースが高いことが多いから、サーバーよりもそのスペースを借りる人が圧倒的に多いんだよね。

専用サーバーを借りてるなら、capexやメンテナンスの心配はしなくていいよね。

「資本支出(Capex)は絶対に避けるべきだという考え方があると思う。」 うん、それって主にVCの資金調達モデルが原因だよね。投資家がホッケースティック成長を求めるなら、スタートアップがその結果としてのCapexを正当化したり、支払ったりするのは無理だよ。対照的に、安定したビジネスでほぼ直線的な成長をしているところは、定期的な小規模なCapex投資を価格に組み込む余裕があるんだよね。

あなたの言う通りだと思う。企業が支払っているのは責任の抽象化だよね。スーツの連中は、MicrosoftやAmazonを選ぶことを批判することなんて絶対にないよ。

Hacker Newsで議論の続きを見る