1台のPCで複数のTomcatを同時に起動するためのポート番号設定ガイド

こんにちは。ゆうせいです。

新人研修中に受講者から以下の質問をいただきました。

Spring Bootで1台のPCを使い複数のTomcatを同時に起動することはできますか?

今回はこの質問に答えたいと思います。

結論から申し上げますと、ポート番号を重複しないように設定すれば、1台のパソコン上で複数台のTomcatを同時に起動することは可能です。Tomcatに限らず、ネットワークを利用するアプリケーションはポート番号という識別番号を利用して通信を行っています。この番号が重ならないように交通整理を行うことで、複数のプログラムが共存できる仕組みになっています。

ポート番号が衝突する仕組みと回避策

ポート番号は、集合住宅の部屋番号に例えると理解しやすくなります。一つの住所(パソコンのIPアドレス)に対して、複数の住人(アプリケーション)が同じ部屋番号(ポート番号)を希望すると、郵便物が誰宛てなのか分からなくなり、エラーが発生します。

通常、Tomcatを起動すると標準でいくつかの部屋番号を占有しようとします。そのため、2台目のTomcatを動かすには、メインの通信窓口だけでなく、管理用の窓口もすべて別の番号に書き換える必要があります。

変更が必要な3つの主要なポート

Tomcatの設定ファイルである server.xml の中には、主に以下の3つのポート番号が定義されています。複数を同時に動かす場合は、これらすべてが他のTomcatと重ならないように設定してください。

  1. HTTPコネクタポート(初期値:8080)ブラウザからウェブサイトを表示する際に使用する、最も一般的な通信窓口です。
  2. シャットダウンポート(初期値:8005)Tomcatを停止させるための命令を受け取る管理用の窓口です。
  3. AJPコネクタポート(初期値:8009)Apacheなどの他のウェブサーバーと連携する際に使用する窓口です。

例えば、1台目が標準設定(8080, 8005, 8009)であれば、2台目は(9080, 9005, 9009)のように、全ての数値をずらすことで衝突を回避できます。

複数起動を行うメリットとデメリット

複数のサーバーを同時に動かす運用には、事実として以下の側面があります。

メリット

  • 異なるバージョンのテストが可能:古いバージョンのJavaで動くシステムと、最新版のシステムを同時に立ち上げて動作比較ができます。
  • 開発効率の向上:複数のプロジェクトを並行して進めている場合、サーバーを切り替える手間なく両方の画面を確認できます。

デメリット

  • PCリソースの消費:Tomcatは起動するたびに一定量のメモリ(RAM)を消費します。台数が増えるほどパソコン全体の動作が重くなる可能性があります。
  • 管理の複雑化:どのポート番号がどのプロジェクトに対応しているかを正確に把握しておく管理コストが発生します。

まとめ

ポート番号を適切に分散させることで、1台の環境を最大限に活用した開発が可能になります。学習を深めるためのステップを以下に示します。

  1. server.xml ファイルを開き、Connector や Server タグに記述されているポート番号の箇所を特定する。
  2. 2つ目のTomcatを用意し、重複しない数値に書き換えてから起動を試行する。
  3. ブラウザからそれぞれのポート番号(localhost:8080 と localhost:9080 など)を指定し、別々の画面が表示されるか確認する。
  4. パソコンのタスクマネージャー等を利用して、複数起動した際のメモリ消費量の変化を観察する。

グループでは新人エンジニア研修のアシスタント講師を募集しています。

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。