16章スペースベースアーキテクチャ
ほとんどのWebベースのビジネスアプリケーションは、いずれも一般的なワークフローを扱っている。ブラウザからのリクエストは、Webサーバー、アプリケーションサーバー、データベースへと渡っていく。この典型的なパターンは、ユーザー数が少ない場合には効果的だが、ユーザー負荷が増加するとボトルネックが現れ始める。
ユーザー負荷の増加に伴うボトルネックには、Webサーバーのスケールアウトで対処するのが一般的だ。この方法は比較的簡単で安価であり、ボトルネックへの対応として適切な場合もある。しかし、ユーザー負荷が高いほとんどのケースでは、Webサーバーをスケールアウトしても、ボトルネックはアプリケーションサーバーに移動してしまうだけだ。アプリケーションサーバーのスケーリングは、Webサーバーよりも複雑でコストがかかるし、通常はそれを行っても、ボトルネックがデータベースサーバーに移るだけだ。そして、データベースをスケールアップできたとしても、最終的に、図16-1に示すようなトポロジーとなるだけだ。このトポロジーでは、横向きの三角の最も広い部分がWebサーバー(スケーリングが最も簡単)、最も狭い部分がデータベース(スケーリングが最も難しい)となっている。
図16-1 従来のWebベースのトポロジーにおけるスケーラビリティの限界
大量の同時ユーザーによる負荷を伴う大規模アプリケーションでは、通常、データベースが同時に処理できるトランザクション数の最終的な制限要因となる。さまざまなキャッシュ技術やデータベーススケーリング製品は、これらの問題に対処するのに役立つ。しかし、通常のアプリケーションを極端な負荷に合わせてスケールアウトするのは、いずれにしても非常に困難な課題だ。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access