Webアプリの大半は単一サーバーで運用可能
- Web開発の界隈を追っていて感じるのは、多くのWebサイトやアプリは複雑なインフラを必要としておらず、ほとんどのWebサイトやアプリが受けるリクエストは毎秒10件未満、多い日でも50件程度だということ。
- 世界中にエンドポイントがあればレイテンシは減るが、データにアクセスする必要があるため、クライアントから20msの距離にあっても、データベースがそのエンドポイントから200ms離れているなら意味がない。
- キャッシュは有用だが、これはCDNや単純なHTTPキャッシュで実現できる。更新後に新しいファイルをCDNへプッシュすれば、ほとんどの場合サイト全体をCDN上で運用できる。
- 動的な機能のためにいくつかのAPIエンドポイントが必要になることはあるが、これはたとえばJavaScriptで処理できる。
- ほとんどのプロジェクトは5ドルのVPS上でコンテナとして動かせるし、そのほうが速い可能性すらある。
GN⁺の見解
- この記事は、Webアプリ開発における過剰なインフラ利用に対して批判的な視点を示している。多くのWebアプリは実際にはシンプルなインフラでも十分に運用できることを指摘しており、初級ソフトウェアエンジニアに対して、インフラ構築時に過剰なリソース投入を避け、必要な分だけを適切に使う重要性を思い起こさせる。
- 記事はまた、キャッシュとCDNの重要性を強調しており、これはWebアプリの性能向上における中核的な要素である。Web開発者に対して、性能最適化のためにキャッシュ戦略を検討すべきことを示唆している。
- Webアプリの規模が小さい、またはトラフィックが多くない場合は、複雑な分散システムよりも単一サーバーやシンプルなクラウドサービスを検討するほうがコスト効率に優れる可能性がある。これはスタートアップや小規模プロジェクトに特に当てはまる。
- 記事はWeb開発者に対し、技術選定において慎重であり、プロジェクトの実際の要件に合ったインフラを選ぶよう勧めている。これは技術トレンドに流されず、実質的な要求を満たす開発を目指すうえで役立つ。
- 批判的な視点で見ると、この記事は大規模トラフィックを処理しなければならない大規模なWebアプリやサービスには当てはまらない可能性がある。したがって、プロジェクトの規模と要件に応じて適切なインフラを選ぶことの重要性を認識する必要がある。
1件のコメント
Hacker Newsの意見
あるユーザーは、自分のプロジェクトがHacker News(HN)のトップページに載った際、5ドルのDigital Ocean Dropletでもトラフィックを十分さばけたと確認している。ほとんどのプロジェクトでは、非同期レスポンスとスケジューラ/キューを使って負荷を時間的に水平分散させれば十分だと主張している。また、新しいDevOps文化がクラウドアプリのデプロイを複雑にしたと批判し、シンプルなソフトウェアを過剰にスケールさせる必要はないと指摘している。
Standard Ebooksは毎月かなりのページビューと電子書籍配信をこなし、HNのトップページにも3〜4回載ったにもかかわらず、単一の4GB VPSですべてを処理している。『Decline and Fall of the Roman Empire』の電子書籍を作るためにより多くのRAMが必要だったため2GBから4GBにアップグレードしただけで、それがなければ2GBサーバーでも十分だったはずだとしている。これに関するブログ記事へのリンクも示している。
あるエンジニアは、k8sを学びたくて選んだという理由以外にk8sを使う理由はないと述べたユーザーが、k8sのせいでサーバーログすら見られないと不満を漏らしている。Cloudflareの5ドルプランで十分処理できたはずだと主張している。
sqlite.orgは1日に50万件を超えるHTTPリクエストを処理し、約200GBのコンテンツを配信しているが、40ドル/月のLinodeを使っていると言及している。もしあなたのアプリがsqlite.orgより多くのリクエストを処理していないなら、それ以上の費用を払う必要はないと主張している。
あるユーザーは、Oracle Free Tierを使ってバックエンドを無料で運用し、CloudflareのトンネリングとPagesを通じてフロントエンド統合も無料で実装し、1日あたり約1万件のリクエストを処理する複数のWebアプリを運営していると共有している。
個人サイト、2つのマルチプレイヤーゲームサーバー、トンネリング用のfrpを含めて、単一の5ユーロのサーバーで複数のアプリケーションを運用しており、サーバーが音を上げるまではさらに追加するつもりだと述べている。また、ほかのアプリケーションも5ユーロのVMでうまく動いているという。
あるユーザーは、Terraformファイルのせいで実際の機能を書くより4倍多くの時間を費やした経験を共有している。その会社は1日に1,000回未満のヒットしか受けていなかったという。
月額4ドルのVPSが1秒あたり数千件のクエリを処理できるという事実に触れたユーザーは、関連リンクを提示している。
ほとんどのWebアプリは単一マシンで動かせるが、たいていの顧客はほぼ100%の稼働率を期待しており、単一マシンでは顧客要件を満たせないと指摘している。
複雑なシステムが不要な基本的なWebアプリについて異論を唱えるユーザーは、内部サービスやダッシュボードを単一バイナリで動かしているFAANGのような企業もあるが、ダウンタイムが損失に直結する場合には複雑なシステムの必要性を認識するようになると主張している。