Web application を host する環境を構築する場合、Web, AP, DB をそれぞれ別の network として設計する方法が有名ですね。
図1 Web, AP, DB の network をそれぞれ分離した sample
Web server および AP server からは network の足が2つ伸びていますが、これは network interface が複数存在し、それぞれ別の network につながっていることを示します。
Network をつないでいるのは router ではなく server なので server を router として構成 (つまり IP routing 有効) していない限り、異なる network へ packet を転送しないためその server を踏み台にでもしない限り別の network へ接続することができません。たとえば、図1 の場合 Web server から DB server へ接続することはできませんし、当然 clinet から DB server へ接続することもできません。
図1 では Client segment と Web segment との間に router のみが存在する構成になっていますが、ここは Internet や WAN だったりいろいろな構成があるでしょう。また、firewall の後ろに load balancer がいることも多いですね。ただ、今回説明する部分に関してはこの部分がどうなっていようと関係ないので、適宜置き換えてください。
また、図1 の構成では監視はどうするのと思われる方がいるかもしれません。が、実際に構築する場合には、server および各種 network 機器にもうひとつ network interface を用意して、management 専用の network を切ります。
図2 Web, AP, DB Management の network をそれぞれ分離した sample
Web server, AP server は 3つ、DB server は 2つ netwrok interface が必要になります。すでに説明したように、server を router として構成していないため server が境界となっている部分を通り越しての通信は出来ません。
Web server と client 間の router は access-list とかを使って、Client - Management 間の通信ができないように制限します。また、server 側での各 interface に対しても各機器で必要とされる最低限の service のみ提供するように制限を掛けます。これで、network 的には非常に secure な環境が出来上がります。
以降の構成図ではわかりにくくなるため、Management segment は省略します。
図1 の環境は J2EE とかを動かす環境では一般的ですね。ASP.NET application を動作させる場合には、図3 のように Web と AP を同じ server で稼動させることが多いでしょうか。
図3 Web, DB の network をそれぞれ分離した sample
AP の一層が無くなったことにより若干 security が弱くなっていると思うかも知れませんが、大差ありません。この状況でも各機器がちゃんと secure に構成されていれば十分な環境です。