- PR -

Tomcat or Apache の採用基準

1
投稿者投稿内容
小僧
大ベテラン
会議室デビュー日: 2005/06/24
投稿数: 122
投稿日時: 2007-04-26 19:09
こんばんは。

Web 系システムの構築に関して、皆様の意見を聞きたいと思います。
※ 板違いでしたらご指摘下さい。

現在、チーム内 ( 20人程度? ) で使用する簡単なシステムを構築しています。
環境は
OS:Windows 2000
Web サーバ:Tomcat 5.0
JDK:1.4
JSF:1.1
となっています。

【質問】
Web サーバは Tomcat ですが、大規模(?)になると Apache がメジャーかと思います。
実際、外部に公開している Web システムの開発端末には Tomcat で、
公開している Web サーバには別のアプリをのせているようです。

ここから、 Tomcat はあまり大規模な Web サイトには向かないと思われるのですが、
その基準はどの辺りなのでしょうか?

また、その他 Tomcat だけでは良くない理由 ( セキュリティの観点など ) で
Apache を導入した方がよい理由などがありますでしょうか?

ちなみに、現在の想定ユーザは 20人程度ですが、今後は
100人くらいが使われる予定です。
将来を見据え、現在から Apache にすべきでしょうか?

ご意見、宜しくお願いいたします。

※ 別に Apache に拘ってはいないので、他の Web サーバの紹介(?)でも構いません。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-04-26 19:21
Apache は Web サーバであってサーブレットコンテナ(サーブレットやJSPが動くやつ)ではありません。
JDK のバージョンが記載されていることから、Java を使うことが前提になっているのだと思います。
すると Tomcat か Apache 、というよりは Tomcat 単体か Tomcat + Apache の組み合わせかという選択肢になるのではないでしょうか。

Tomcat 単体でもそれなりのパフォーマンスがでると思いますが、gif/png/jpg/html といったスタティックなコンテンツを Apache に配信させて、jsp/サーブレットの処理を Tomcat に任せることでよりスケーラブルになります。
Apache をフロントエンドにおいて、後ろに別マシンで Tomcat を動かすサーバを1台以上配置してロードバランス、という構成も多いと思います。
その場合は Apache と Tomcat の間にもファイアウォールを配置することでセキュリティ的にも堅牢になります。

20人程度で使うシステムということであればスケーラビリティも強固なセキュリティもプライオリティ的には低い要件になると思いますので Tomcat 単体でも十分ではないでしょうか。

100人程度でも Tomcat 一つで十分だと思いますが、後から必要に応じて手前に Apache を配置してロードバランス、なんて構成にもできます。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-04-26 23:04
要件からするとTomcatで十分ですね。

TomcatのHTTPサーバ機能もDefaultServletというサーブレットで動いています。
なので、動的コンテンツと同様に静的コンテンツでも
アプリケーションサーバのリソース(スレッド等)も消費します。
そこでリソースの消費を分散する為にHTTPサーバを分ける必要が出てくるわけです。

ここまではよくある話なのですが、最近C10K問題というのをよく聞きます。
大雑把にApacheで10000同時接続できるのかという話ですね。

Tomcat6ではNIOコネクタが採用されていて、問題なく接続できるのではという認識です。
(ごめんなさい、まだ試してはいません)
ですので、Apacheと連携するよりももっと多数のリクエストを捌けるのであれば、
逆にApacheと連携させないというアプローチもありなのかなと思います。
小僧
大ベテラン
会議室デビュー日: 2005/06/24
投稿数: 122
投稿日時: 2007-04-27 09:19
丁寧なご回答、ありがとうございます。

> インギさま
私の記述が悪かったのですが、構成はご指摘の通り
・Tomcat のみ
・Tomcat + Apache
の2通りで、
・Tomcat をやめて Apache
という認識ではありませんでした。

Apache は静的コンテンツ、Tomcat は動的コンテンツを
配置することにより負荷分散を図る、という構成が一般的なのですね。
やっと Apache の意味がわかった気がします ( 遅い。。。 )。

個人的には
> 100人程度でも Tomcat 一つで十分だと思いますが
とのコメントが頂けたのが最大の収穫です。

> かつのりさま
> 要件からするとTomcatで十分ですね。
このコメントが聞きたかったのです!

また、Web サーバ ( Apache ) が何故必要なのかのご説明、ありがとうございます。
よく分かりました。

> ここまではよくある話なのですが、最近C10K問題というのをよく聞きます。
これは初耳です。
もっと勉強してきます。

> 逆にApacheと連携させないというアプローチもありなのかなと思います。
なるほど。そのようなアプローチもありえるのですね。
色々と勉強させて頂きました。
ありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)