質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.49%

  • AWS(Amazon Web Services)

    2071questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Tomcat

    568questions

AWSのTomcatに接続できません

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 5,905

Sfidante

score 90

現在Webアプリケーションを作っているのですが、
AWSのEC2にTomcatをインストールして
アクセスしようとしたところ
「接続がタイムアウトしました」
といったエラーがでてしまい困っています。

原因をどこからどのように確認してばよいかも
わからない状況です。

とても曖昧なご質問で申し訳ないのですが、
解決の糸口をいただけるとありがたいです。


エラーの追記
/var/log/tomcat8/catalina.outのログになります。

25-Jul-2015 09:46:37.630 SEVERE [main] org.apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["http-nio-0.0.0.0-8080"]
 java.net.BindException: Address already in use
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:437)
    at sun.nio.ch.Net.bind(Net.java:429)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:338)
    at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:737)
    at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:457)
    at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:120)
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:960)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    at org.apache.catalina.core.StandardService.initInternal(StandardService.java:567)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:851)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:576)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:599)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)

25-Jul-2015 09:46:37.633 SEVERE [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-8080]]
 org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8080]]
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
    at org.apache.catalina.core.StandardService.initInternal(StandardService.java:567)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:851)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:576)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:599)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:962)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    ... 12 more
Caused by: java.net.BindException: Address already in use
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:437)
    at sun.nio.ch.Net.bind(Net.java:429)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:338)
    at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:737)
    at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:457)
    at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:120)
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:960)
    ... 13 more

25-Jul-2015 09:46:37.671 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
25-Jul-2015 09:46:37.711 SEVERE [main] org.apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["ajp-nio-8009"]
 java.net.BindException: Address already in use
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:437)
    at sun.nio.ch.Net.bind(Net.java:429)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:338)
    at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:737)
    at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:457)
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:960)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    at org.apache.catalina.core.StandardService.initInternal(StandardService.java:567)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:851)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:576)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:599)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)

25-Jul-2015 09:46:37.875 SEVERE [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[AJP/1.3-8009]]
 org.apache.catalina.LifecycleException: Failed to initialize component [Connector[AJP/1.3-8009]]
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
    at org.apache.catalina.core.StandardService.initInternal(StandardService.java:567)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:851)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:576)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:599)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:962)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    ... 12 more
Caused by: java.net.BindException: Address already in use
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:437)
    at sun.nio.ch.Net.bind(Net.java:429)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:338)
    at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:737)
    at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:457)
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:960
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+1

確認項目としては下記のような感じになると思います。

・Tomcatが正常に起動しているか?
(logを確認)

・Tomcatアクセス用のポートが空いているか?
(apache連携する場合はhttpポート)

・ポートが空いていて、Tomcat正常起動の場合は、Accessログを確認。
またlocalからもwgetなどでアクセスしてみる。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/07/24 10:44

    ご回答ありがとうございます
    それぞれ確認をしてみました。

    >Tomcatが正常に起動しているか?(logを確認)

    コマンドプロンプトで
    ps aux | grep tomcat
    を使ってかくにんしたところ
    起動はしていると確認できました。

    >Tomcatアクセス用のポートが空いているか?
    >(apache連携する場合はhttpポート)

    8080及びhttpポートの80も空いております。

    >ポートが空いていて、Tomcat正常起動の場合は、Accessログを確認。
    >またlocalからもwgetなどでアクセスしてみる。

    Accessログに関しましては、
    server.xmlで下記の設定がされているかを確認後、accessログを確認しました。

    <Valve className="org.apache.catalina.valves.AccessLogValve"
    directory="logs" prefix="access_log." suffix=".txt"
    pattern="common" resolveHosts="false">
    ログは/var/log/tomcat8/localhost_access_log.2015-07-23.txt
    に出力されるのかと思い確認をしてみましたが、
    何も出力はありませんでした。
    確認すべきログは違いましたでしょうか?

    キャンセル

  • 2015/07/24 13:14

    $TOMCAT_HOME/logsに出力されていませんか?
    ($TOMCAT_HOMEはtomcatインストールディレクトリ)

    キャンセル

  • 2015/07/24 14:42

    ご返信ありがとうございます。
    確認をおこなったところ、
    $TOMCAT_HOME/logsには
    wget-log wget-log.1 wget-log.2
    の3つしかなく
    $TOMCAT_HOME/logsというディレクトリは存在しませんでした

    ログに関しましては先ほどもうしたものしかなく、
    設定によってディレクトリの場所や出力の有無がかわってくるのでしょうか?

    キャンセル

  • 2015/07/24 14:49

    設定は特に触っていなければ$TOMCAT_HOME/logsにログが出力されるはずなのですが・・。
    Tomcatログファイル名のcatalina.outでファイル検索してみたらいかがでしょうか?

    キャンセル

  • 2015/07/24 15:15

    ご回答ありがとうございます。
    調べ結果、
    localhost_access_log.yyyy-MM-dd.txt
    という形で出力されるということなので、
    みてみたところ
    空でした。

    キャンセル

  • 2015/07/24 15:25

    tomcatの起動でエラーなどが発生しているかもしれませんので、サーバーログのcatalina.outを確認してみてください。

    キャンセル

  • 2015/07/25 16:06 編集

    お返事ありがとう御座います。

    >tomcatの起動でエラーなどが発生しているかもしれませんので、
    >サーバーログのcatalina.outを確認してみてください。
    確認いたしましたところ、
    下記の2つのサーバーログがありました。
    /opt/tomcat8/logs/catalina.out
    /var/log/tomcat8/catalina.out

    本日tomcatを起動させてログを見てみましたが、
    これらのログの出力はありませんでした。

    find -name '*log*'等で調べましたが、
    ログが他にない状態です。

    キャンセル

  • 2015/07/25 17:37

    ログすら出力されないというのはselinuxで弾かれていないでしょうか?有効化されている場合は一旦無効化して確認してみてください。

    キャンセル

  • 2015/07/25 18:56

    失礼しました。
    只今確認したところ
    質問に追記いたしましたような
    ログが出力されておりました。

    ポート番号がすでに使われているというようなエラーだと思われるのですが、
    対処法といたしまして、
    server.xmlに記載されている
    ポート番号をコメントアウトにしてみましたが、
    結果は変わりませんでした。
    どういったエラーでどういった対処法が考えられますでしょうか?
    よろしくお願いいたします。

    キャンセル

  • 2015/07/25 21:52

    tomcatの停止自体が失敗してプロセスが残っている為のエラーが考えられます。
    tomcatを一旦停止して、プロセスが残っていればkillしてみてください。

    後、特に覚えがなければ8080や8009を使用しているプロセスはないはずですが、ポートを使用しているプロセスを確認した方がいいかもしれません。
    netstat -tanp

    キャンセル

  • 2015/07/25 22:35

    ご回答ありがとう御座います。
    chiku_さんのおっしゃられる通り、停止が失敗していた可能性が高かったです。
    実際、killをおこない
    再度startしたら先ほどまでのエラーはなくなり404のエラーとなりました。
    そして、apacheとtomcatを順に停止、起動をおこなったところ
    Apache Tomcatの画面が表示されました。
    長い時間お付き合いいただきありがとうございました。

    キャンセル

0

AWSなので、ここにあるように、
AWS Management Consoleで8080ポートを開放する必要があると思いますが、
実施されたでしょうか?

実施済みであれば、chiku_さんの回答の通りと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/07/24 00:43

    ご回答ありがとうございます。
    AWSのEC2のセキュリティブループにおきまして
    インバウンドのポートは8080を開いております。

    キャンセル

  • 2015/07/24 08:23

    ローカルPCのセキュリティソフトによって止められる場合もあります。
    それでもなければ、調査のためにはchiku_さんの書いている内容の確認が必必要と思います。
    付け加えるなら、アクセス時に使用しているURLでIPアドレス指定してみるなどでしょうか?
    アクセスというのは、ブラウザでURLを入力してのアクセスと思って良いのですよね?

    キャンセル

  • 2015/07/24 10:51

    ご返信ありがとうございます。

    >ローカルPCのセキュリティソフトによって止められる場合もあります。
    以前、同じようにサーバでTomcatを起動したことがあり、
    そのときから現在に至るまで、セキュリティソフトに関しましては、
    一切の変更をしていないので、影響はないかなと考えております。
    (そのときのログを取らなかったのが失敗でした)

    >アクセス時に使用しているURLでIPアドレス指定してみるなどでしょうか?
    EC2で設定されているパブリックIPでのアクセスをおこないましたが、結果は同じでした

    >アクセスというのは、ブラウザでURLを入力してのアクセスと思って良いのですよね?
    ブラウザでURLを入力しておこなっております

    キャンセル

0

EC2インスタンスの OS のディストリビューション、バージョンがわからないのですが、以下を確認するといいと思います。既に確認済みでしたらすみません。 

  • "ss -tln", "netstat -tln" で :80, :8080 が LISTEN になっているか
  • curl, wget などで http://127.0.0.1/, http://127.0.0.1:8080/ に接続できるか
  • curl, wget などで http://(eth0のプライベートIP)/, http://(eth0のプライベートIP):8080/ に接続できるか
  • Firewall (iptables, firewall-cmd) で制限されていないか
  • Security Group, Network ACL で制限されていないか

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/07/24 14:27

    ご回答ありがとうございます。
    ご教授いただいた各項目に関して確認してみました。

    >"ss -tln", "netstat -tln" で :80, :8080 が LISTEN になっているか
    どちらもLISTENになっておりました。

    >curl, wget などで http://127.0.0.1/, http://127.0.0.1:8080/ に接続できるか
    curlに関しては、
    http://127.0.0.1/は接続できました。
    http://127.0.0.1:8080/に関しては数分経過した後、
    curl: (56) Recv failure: 接続が相手からリセットされました
    との接続エラーとなりました。

    wgetに関しましては、
    http:127.0.0.1/では
    401 Authorization Required
    Username/Password による認証に失敗しました。
    とのエラーとなりました。
    http://127.0.0.1:8080/では
    ヘッダ内で読み込みエラー(接続が相手からリセットされました)です
    再試行しています。
    と永遠に再試行をいたします。

    >curl, wget などで http://(eth0のプライベートIP)/, http://(eth0のプライベートIP):8080/ に接続できるか
    こちらも上記と同様の結果となりました。

    >Firewall (iptables, firewall-cmd) で制限されていないか
    こちらに関しては一切設定を変更していないので問題ないかと思っております。
    この考え方は危ないでしょうか?

    >Security Group, Network ACL で制限されていないか
    インバウンドに8080と80が設定されており、
    アウトバウンドはTCPはすべてに開放となっております。

    curlとwgetが問題ですので
    そちらの原因解明につとめます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • AWS(Amazon Web Services)

    2071questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Tomcat

    568questions