データベースと Web サーバーを同じマシン上に置くのはなぜ推奨されないのですか? [closed] 質問する

データベースと Web サーバーを同じマシン上に置くのはなぜ推奨されないのですか? [closed] 質問する

スコット・ハンセルマンのStack Overflowチームへのインタビューを聞いています(パート1そして2) では、SQL サーバーとアプリケーション サーバーは別のマシンに置くべきだと強く主張していました。これは、1 台のサーバーが侵害されても、両方のシステムにアクセスできないようにするためだけでしょうか。特に、どちらの部分も CPU やメモリをあまり使用しない小規模なアプリケーションの場合、2 台のサーバーの複雑さ (追加コスト、2 台間の専用ネットワーク接続、メンテナンスの増加など) よりも、セキュリティ上の懸念のほうが大きいのでしょうか。2 台のサーバーがあっても、1 台のサーバーが侵害されると、攻撃者はデータベースを削除したり、アプリケーション コードを変更したりして、深刻な損害を与える可能性があります。

パフォーマンスが問題にならないのであれば、なぜこれがそんなに大きな問題になるのでしょうか?

ベストアンサー1

  1. セキュリティ。Web サーバーは DMZ 内にあり、パブリック インターネットからアクセスでき、匿名ユーザーからの信頼されていない入力を受け付けます。Web サーバーが侵害され、DB への接続に最小権限ルールに従っていた場合、最大の露出は、データベース API を通じてアプリが実行できることです。間にビジネス層がある場合、攻撃者とデータの間にもう 1 つのステップがあります。一方、データベースが同じサーバー上にある場合、攻撃者はデータとサーバーへのルート アクセスが可能になります。
  2. スケーラビリティ。ウェブサーバーをステートレスにしておくと、ウェブサーバーを水平方向に簡単に拡張できます。とてもデータベース サーバーを水平方向に拡張することが困難です。
  3. パフォーマンス。2 つのボックス = CPU が 2 倍、RAM が 2 倍、ディスク アクセス用のスピンドルが 2 倍。

そうは言っても、これらの点のどれも実際には重要ではないという合理的なケースも確かに考えられます。

おすすめ記事