親バカエンジニアのナレッジ帳

webのエンジニアをやっており、日頃の開発で詰まったことや書き残しておきたいことを載せています。育児のイロハという育児サイト(https://ikujip.jp)の開発も行っているため、その開発で使用されている技術についても掲載しています。

AWS(EC2) + Apacheでつながらない時はポート開放を確認!

タイトルの通りですが、AWS(EC2)のサーバを使い、Apacheをインストールしました。
ポート開放のあたりで若干はまった部分があったので、解決方法を記述します。

AWS(EC2)にApacheをインストール

このページに辿り着いた人は既にApacheのインストールまで完了していることと思いますが、一応AWS(EC2)へのApacheのインストール手順から始めます。

SSHでサーバにログインしたあと、yumでインストールします。

sudo yum install httpd

次にApacheを起動します。

service httpd start

ブラウザからパブリックDNSで接続

さあ、これで起動を確認するためにブラウザにAWSのパブリックDNSを入れてみました。
「ec2-XX-XX-XX-XX.ap-northeast-1.compute.amazonaws.com」みたいなやつ。
(セットアップの段階なのでドメインはまだサーバに向けていない状態です。)

通常Apacheは初期画面が設定されており、ドキュメントルートの設定をしていなくてもApacheのテストページは表示されるはずです。

・・・ところがつながりません。
あれ?サーバにも繋がっていない感じ。。。

解決方法

色々調べてみたんですが、単にポート80が開いてなかっただけでした笑
難しく考えすぎて色々サーバの中身を調べてしまったのですが、ポート開放はサーバ構築で結構落とし穴ですよね。

AWSの場合は他のサーバに比べて、ポート開放は管理画面で簡単にできます。

以下のようにすればAWSインスタンスのポート開放ができました。
まずは起動しているインスタンスのセキュリティグループをクリックします。

f:id:tomotomo1129:20180526202325j:plain

そうすると、選択したグループの編集ができるので、
「インバウンド」のタブを選択→「編集」をクリックと進めば以下の画面が出るので、
後は「ルールの追加」をしてタイプは「HTTP」、ポート範囲は「80」を入力して「保存」をクリックすれば
設定が完了です。

f:id:tomotomo1129:20180526202351j:plain

注意していただきたいのはSSL対応をした場合です。
この場合は当然ポートが変わりますので、上記の「HTTP」に加えてルールを追加する必要があります。

同じように「ルールの追加」で、タイプは「HTTPS」、ポート範囲は「443」を入力して「保存」をクリックしてください。
AWS(EC2)ではApacheに限らず、MySQLでもメールサーバでもなんか繋がらないなぁと思ったら、まずポート開放の設定を確認してみるといいかもしれませんね。
なかなかしないオペレーションなのでつい忘れてしまいがちですが。

Amazon Web Services パターン別構築・運用ガイド 改訂第2版 (Informatics&IDEA)

Amazon Web Services パターン別構築・運用ガイド 改訂第2版 (Informatics&IDEA)

Amazon Web Services 業務システム設計・移行ガイド (Informatics&IDEA)

Amazon Web Services 業務システム設計・移行ガイド (Informatics&IDEA)

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門 (CodeZine BOOKS)

Amazon Web Servicesではじめる新米プログラマのためのクラウド超入門 (CodeZine BOOKS)