Web系OLTPにおけるデータストア技術選定変遷の私感的史観のトップ画像

Web系OLTPにおけるデータストア技術選定変遷の私感的史観

投稿日時:
Songmu(松木 雅幸)のアイコン

シニアソリューションエンジニア

Songmu(松木 雅幸)

Xアカウントリンク
本記事では、2026年2月26日に開催されたオンラインイベント「技術選定を突き詰める Online Conference ――逆境を乗り越える意思決定プロセス」内のセッション「Web系OLTPにおけるデータストア技術選定変遷の私感的史観」の内容をお届けします。

同セッションでは、ギットハブ・ジャパン合同会社のSongmuさんに、この四半世紀でデータストアの定番がどのように移り変わってきたかを、memcachedからKVS戦国時代、そしてOSSのRDBMS隆盛に至るまで、時代背景やハードウェア制約の変化と絡めてお話しいただきました。ぜひ本編のアーカイブ動画とあわせてご覧ください。


Songmu:今回は「Web系OLTPにおけるデータストア技術選定変遷の私感的史観」という長いタイトルでお話をさせていただきます。以前からお話ししたかった内容だったので、いい機会なのでまとめました。

まず前段として、OLTPとOLAPという2つの分類があります。OLTPはOnline Transaction Processingの略で、リアルタイム性が求められる処理に使うデータストアの特性です。Webサービスの裏側のメインのデータベース(DB)はこうした特性のデータストアで構成されていて、今回お話しするのは主にこちら側です。一方のOLAPはOnline Analytical Processingの略で、いわゆるデータウェアハウスですが、こちらは今回のスコープ外となります。

今の自分のスタンスとしては、やはりRDBMSをちゃんと使えば大抵のことはできますし、かなりのアクセスは捌けると考えています。いたずらに分散したり複数のミドルウェアを併用すると逆に複雑になってしまいます。RDBMSで足りない部分をRedisで補うのが好きで、たまに使ったりもします。分析系はBigQueryを使うことが多いです。最近だとChatGPTのPostgreSQLのスケーリングの話も話題になりましたが、あの規模でも書き込みのメインのPostgreSQLは1台という形でやれているそうです。RDBMSをちゃんと扱うことが基本的には大事だと考えています。

個人の現在のスタンスと技術選定.jpg

人類はSQLから逃れられない

もうひとつ、人類はSQLから逃れられないと思っています。SQLに好き嫌いはあると思いますが、もはやエンジニアだけでなく、データアナリストやリサーチャーにとっても重要な汎用スキルになっています。例えば英語は自然言語としてあまり出来のいい言語ではないと思いますが、エスペラント語のようにもっと人工的に考えられた言語があっても結局みんな英語を使ってしまいます。それに似た話だと感じています。NoSQLを含むいろいろなデータストアが、後付けでSQL的なインターフェースを提供してしまうのもそうした流れのひとつではないでしょうか。

残念ながら人類には、置き換えが望まれるのだけれども現実的には困難な技術がいくつかあると思っています。シェルスクリプト、C言語、正規表現、そしてSQLもその中に入るのではないかと感じています。最近ではYAMLもそうかもしれません。

このトークでは、これまで自分が経験してきた時代の変遷の中で、データストア選定がどのように変わってきたかをいくつかの切り口でお伝えします。

分散メモリキャッシュが必須だった時代

Web 2.0時代の到来とハードウェア制約

2005年頃、もう20年前の話になりますが、Web 2.0の時代がありました。CGM(Consumer Generated Media)の広がりによって、それまでサーバー1台でWebサービスやシステムを作っていたところに、突然何万人、何十万人、100万人とアクセスするようなサービスを運用する局面が増えてきました。それまでと桁の違うアクセスを捌く必要性に直面し、サーバーを複数台構成にしたり。可能なら安く済ませたい、OSSで済ませたいという話も出てきました。SIer方面ではクライアントサーバーやVBで作っていたアプリをWebアプリ化していく流れもありました。当時のキーワードとしてはC10K問題やLAMPなどがありました。

この頃からアーキテクチャも変化してきて、三層アーキテクチャと呼ばれる複数台構成が当たり前になりました。前段にプロキシサーバーとしてApacheなどを立て、その裏側にアプリケーションサーバー、一番後ろにDBがいる構成です。それまでデータベースと言えば商用の高価なものか、WebサービスであればファイルやいわゆるDBMを使うという選択肢しかなかったところに、MySQLやPostgreSQLといったOSSも使えるのではないかと言われ始めた時代です。

当時はハードウェアの制約がありました。今は64bit OSが主流ですが、当時は32bit OSが主流で、命令セットの関係上メモリ空間を4GBまでしか持てません。実際はもっと少ないです。メインのデータストレージもハードディスクが主流で、SSDではなかったので遅い。1台のサーバーのメモリにサービス全体の主要データを載せることも難しく、ハードディスクにデータを置いてそれを都度読み込ませたらアクセスを捌けない状態でした。

この記事のつづきを読もう
新規登録/ログインしたらできること
  • すべての記事を制限なく閲覧可能
  • 限定イベントに参加できます
  • GitHub連携でスキルを可視化
ログイン
アカウントをお持ちでない方はこちらから新規登録