「ちょっとTomcat再起動しといて」。配属初日にこう言われて、私は完全に固まりました。
トムキャット? 猫? 戦闘機? 当時の私はJavaの研修を終えたばかりで、コードは書けてもサーバー周りの知識はほぼゼロ。
先輩の指示の意味がわからず、こっそりトイレでスマホ検索した記憶があります(笑)。
あれから10年近くJavaの現場を渡り歩き、Tomcatの構築もトラブル対応も一通り経験しました。
振り返ると、最初につまずいた原因ははっきりしています。「Webサーバー」と「アプリケーションサーバー」の区別がついていなかったからです。
逆に言えば、そこさえ押さえれば Tomcatは怖くありません。
この記事では、かつての私と同じように「Tomcatって結局何なの?」とモヤモヤしている新人エンジニアや研修中の方に向けて、Tomcatの正体とApacheとの違いを、レストランの例えを使ってわかりやすく整理します。
読み終わる頃には、先輩との会話に普通についていけるようになりますよ。
Tomcatとは?Javaアプリを動かすためのソフト
Tomcatとは、JavaサーブレットやJSPを実行するためのオープンソースソフトウェアで、正式名称は「Apache Tomcat」です。
カテゴリとしては「サーブレットコンテナ」や「アプリケーションサーバー」と呼ばれます。
Webサーバー
静的コンテンツ担当"] --> |"動的リクエスト"| Tomcat["Apache Tomcat
サーブレットコンテナ
Javaプログラム実行"] Tomcat --> Servlet["サーブレット/JSP
ビジネスロジック"] Servlet --> DB["データベース"] end Browser --> |"HTTPリクエスト"| Apache
開発しているのはApache Software Foundationという非営利団体で、誰でも無料で使えます。
一言でまとめると「Javaで書いたWebアプリを、実際にブラウザから使える状態にしてくれる土台」です。Javaのコードは書いただけでは動きません。
リクエストを受け取り、プログラムを実行し、結果をブラウザに返す。その一連の流れを引き受けてくれるのがTomcatです。
2026年現在の最新系列はTomcat 11で、企業の現場では9や10系列もまだ現役です。
私が新人だった頃は7でしたから、なかなか息の長いソフトウェアですね。
サーブレットとJSPとは何か?
サーブレットとは、Webサーバー上で動くJavaプログラムです。ブラウザからのリクエストを受け取り、処理結果をHTMLとして返します。JSP(JavaServer Pages)は、HTMLの中にJavaのコードを埋め込める仕組みで、画面表示を作るのに使われてきました。
ざっくり言えば、サーブレットは「処理担当」、JSPは「見た目担当」。そして両方とも、単体では動けません。
動かすための実行環境、つまりTomcatが必要になります。
Tomcatが担う3つの仕事
Tomcatの仕事は、大きく分けて次の3つです。
- リクエストの受付:ブラウザからのHTTPリクエストを受け取る
- サーブレットの実行:リクエストに対応するJavaプログラムを呼び出して処理する
- レスポンスの返却:処理結果をHTMLなどの形でブラウザに返す
サーブレットの生成や破棄のタイミング管理もTomcatが自動でやってくれます。開発者は「リクエストが来たら何をするか」だけ書けばいい。
この分業のおかげで、私たちはビジネスロジックに集中できるわけです。
TomcatとApacheの違いとは?役割分担で理解する
結論から言うと、Apacheは「静的なファイルを高速に配る係」、Tomcatは「Javaプログラムを実行して動的なページを作る係」です。
名前が似ていて紛らわしいのですが(どちらもApache Software Foundation製なので仕方ない)、担当する仕事がまったく違います。
レストランに例えるとわかりやすいです。Apacheはホール係。お客さんを席に案内して、作り置きできるドリンクやパンはそのまま出します。
Tomcatは調理場。注文を受けてから料理を作ります。
ホール係に「パスタを作って」と頼んでも作れませんし、シェフに全テーブルの接客をさせたらお店が回りません。
Webサーバーとアプリケーションサーバーの違い
Apacheは「Webサーバー」、Tomcatは「アプリケーションサーバー(APサーバー)」に分類されます。違いを表にまとめました。
| 項目 | Apache(Webサーバー) | Tomcat(APサーバー) |
|---|---|---|
| 主な役割 | 静的コンテンツの配信 | Javaプログラムの実行 |
| 扱うもの | HTML・画像・CSSなど | サーブレット・JSP |
| 得意なこと | 大量アクセスのさばき | 動的なページ生成 |
| レストランなら | ホール係 | 調理場 |
ちなみにTomcat自身も簡易的なWebサーバー機能を持っているので、小規模なら単体運用も可能です。
「Tomcatだけでも動くけど、餅は餅屋」と覚えておくと整理しやすいですよ。
ApacheとTomcatを連携させる2つの理由
実際の現場では、ApacheとTomcatを連携させる構成が定番です。理由は2つあります。
- 処理効率:画像やCSSの配信が得意なApacheに静的コンテンツを任せ、TomcatはJavaの処理に専念できる
- 負荷分散:Apacheを窓口にして複数のTomcatへリクエストを振り分ければ、大量アクセスにも耐えられる
私が担当したあるシステムでは、リクエストの8割以上が画像とCSSでした。それを全部Tomcatに処理させるのは、シェフに皿洗いまでやらせるようなもの。
役割分担すれば、応答速度も安定性も上がります。
Tomcatの使い方:起動までの3ステップ
Tomcatは「Javaを入れる → Tomcatを入れて起動する → ブラウザで確認する」の3ステップで動かせます。
難しい設定は一切不要で、初回なら15分もあれば十分です。手を動かすと理解が一気に進むので、ぜひ試してみてください。
ステップ1:Javaをインストールする
TomcatはJavaで動くので、まずJava(JDK)が必要です。インストール済みかどうかは、ターミナルで次のコマンドを叩けば確認できます。
java -versionバージョンが表示されればOK。入っていなければ、Eclipse TemurinなどのJDKをインストールしましょう。
Tomcat 11を使うならJava 17以上が必要です。
ステップ2:Tomcatをダウンロード・起動する
Tomcat公式サイトからzipやtar.gzをダウンロードして、好きな場所に解凍します。
インストーラーすら不要で、解凍したら中のbinフォルダにあるスクリプトを実行するだけです。
# Mac / Linuxの場合
cd apache-tomcat-11.0.x/bin
./startup.sh
# Windowsの場合は startup.bat をダブルクリック止めたいときは同じフォルダのshutdown.shを実行します。冒頭の「Tomcat再起動しといて」の正体は、実はコマンド2つ分の作業だったわけです。
ステップ3:ポート8080で動作確認する
起動したらブラウザでhttp://localhost:8080を開いてください。猫のロゴ入りのデフォルトページが表示されれば成功です。
Tomcatは標準でポート8080を使います。現場で「8080見といて」と言われたら、たいていTomcatの話だと思って間違いありません。
現場で役立つTomcatの基礎知識3つ
起動できたら、次は現場の会話に出てくる頻出ワードを押さえましょう。WARファイル・設定ファイル・Spring Bootとの関係。
この3つを知っているだけで、新人時代の私が抱えた「会議で単語がわからない問題」の大半は解消します。
WARファイルとデプロイの仕組み
WARファイルとは、Webアプリ一式(クラスファイル・JSP・設定など)を1つに固めたアーカイブです。
TomcatのwebappsフォルダにWARファイルを置くと、自動で展開されてアプリが公開されます。この作業を「デプロイ」と呼びます。
「WARをwebappsに置くだけで動く」。仕組みとしてはこれだけなのに、私は最初の半年くらい魔法か何かだと思っていました(笑)。
server.xmlとweb.xmlは何を設定する?
Tomcatの設定ファイルで頻出なのがこの2つです。server.xmlはTomcat本体の設定で、ポート番号の変更などはここで行います。web.xmlはWebアプリ側の設定で、URLとサーブレットの対応付けなどを定義します。
「本体の設定はserver.xml、アプリの設定はweb.xml」。
この区別を覚えておけば、設定変更を頼まれたときにどのファイルを開けばいいか迷いません。
Spring BootにTomcatが内蔵されている話
最近のJava開発の主流であるSpring Bootには、実はTomcatが最初から内蔵されています。
java -jarでアプリを起動すると、中で組み込み版Tomcatが動く仕組みです。
「Spring Bootの現場だからTomcatの知識は不要」ではなく、むしろ逆。
中で動いているのはTomcatなので、ポートやスレッドの設定・エラーの切り分けにはここまでの知識がそのまま活きます。
Tomcatの内部構造をさらに体系的に理解したい方には以下の書籍もおすすめです。
Tomcatに関するよくある質問(FAQ)
最後に、Tomcatについて検索されやすい疑問をQ&A形式でまとめました。新人時代の私が知りたかった内容ばかりです。
Q1. Tomcatとは何ですか?
JavaサーブレットやJSPを実行するためのオープンソースのサーブレットコンテナです。
Javaで作ったWebアプリを、ブラウザから使える状態にする土台の役割を担います。
Q2. TomcatとApacheの違いは?
Apacheは静的コンテンツ(HTML・画像)を配信するWebサーバー、TomcatはJavaプログラムを実行するアプリケーションサーバーです。
現場では両者を連携させる構成が定番です。
Q3. Tomcatは無料で使えますか?
はい、完全に無料です。
Apache License 2.0のオープンソースソフトウェアなので、商用利用もライセンス費用なしで可能です。
Q4. TomcatはWebサーバーではないのですか?
簡易的なWebサーバー機能も持っているので、Tomcat単体でもWebサイトを公開できます。
ただし静的コンテンツの大量配信はApacheやNginxの方が得意です。
Q5. ポート8080とは何ですか?
Tomcatが標準で使う通信の窓口番号です。
起動後にhttp://localhost:8080へアクセスすると動作確認できます。番号はserver.xmlで変更可能です。
Q6. Spring BootでもTomcatの知識は必要ですか?
必要です。
Spring BootにはTomcatが内蔵されており、ポート設定やエラーの切り分けにはTomcatの基礎知識がそのまま役立ちます。
まとめ:Tomcatは「Javaの受付兼調理場」
Tomcatの正体、つかめたでしょうか。最後に要点を整理します。
- Tomcatとは、サーブレットやJSPを動かす無料のサーブレットコンテナ
- Apacheは静的コンテンツ担当、Tomcatは動的処理担当で、連携が定番構成
- 起動は「Java → 解凍 → startup.sh」の3ステップ、確認はポート8080
- WARをwebappsに置けばデプロイ完了、設定はserver.xmlとweb.xml
- Spring Bootにも内蔵されているので、知識は今後もずっと使える
配属初日にトイレで検索していた私も、今では後輩に「Tomcatはレストランの調理場だよ」と説明する側になりました。
用語の暗記より、まず手元で起動してみるのが一番の近道です。15分で終わるので、今日のうちに猫のロゴと対面しておきましょう。



