この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
HTTPリクエストを受け付けてくれない
EC2インスタンスの接続確認テストをしていた時のことです。pingは通るのにcurlコマンドでのHTTPリクエストが通らないことがありました。
ほかには、セキュリティグループやその他権限設定に問題はありませんでした。Apacheもインストールしていました。
(Apacheのインストールと起動)
原因
原因はタイトルどおり、Apacheを起動していなかったからでした。
直接的に記載されていたものではないですが、AWS公式のものだとこちらの記事のトラブルシューティングが参考になります。
学んだこと
今回の失敗から、以下のことを学びました。
-
ApacheなどのWebサーバーソフトウェアをインストールすることで、ただのサーバーはWebサーバーになる。
-
Webサーバーになっても、Webサーバーソフトウェアを起動しなければ、外部的にはただの箱のまま。
-
Webサーバーソフトウェアを起動すると、以下の仕事を始める。
-
特定のポートでのリクエストを待ち受けるようになる
-
リクエストの受信と応答をするようになる。
-
リソースを提供するようになる。
-
その他、セキュリティやパフォーマンス維持を行うようになる(ソフトウェアによる)。
-
まとめ:EC2インスタンスでApacheを起動していないとどうなるのか
さいごに、EC2インスタンスの接続テスト時、Apacheを起動していないとHTTPリクエストが通りません。それは、Apache含めWebサーバーの仕事であるポートリッスンや応答などは、起動している状態でないといけないからでした。起動してお仕事してもらいましょう!