LoginSignup
0
0

More than 1 year has passed since last update.

Amazon EC2を利用した仮想サーバー構築方法③(Apacheのインストールとファイアウォールの設定)

Last updated at Posted at 2021-08-02

AWS初学者です。

前回はSSH接続を行いました。
前回記事はこちら: Amazon EC2を利用した仮想サーバー構築方法②(SSH接続)

今回はApacheのインストールとファイアウォールの設定方法についてアウトプットしていきたいと思います。
(また、私はMacを使用した上でこの記事を書いています。Windowsをご使用の方はご注意ください)

Apacheのインストール

今回は、前回までに作ったサーバーを「Webサーバー」として機能させるために、Apache(Apache HTTP Server)というWebサーバーソフトを用います。

[手順1] 作成したEC2インスタンスにSSHでログインする。
以下のコマンドをターミナルで実行して、SSHでインスタンスにログインします。

ターミナル
ssh -i ダウンロードしたキーペアファイル ec2-user@起動しているEC2インスタンスのパブリックIPアドレス

[手順2] Apacheをインストールするために、以下のコマンドを実行。
none:ターミナル
sudo yum -y install httpd

[手順3] Apacheを起動するために、以下のコマンドを実行。

ターミナル
sudo systemctl start httpd.service

・sudoコマンド
→ 指定したコマンド(今回はyum)を管理者権限で実行するためのコマンド。管理者権限が必要な時に、先頭につける。

・yumコマンド
→ アプリケーションをダウンロードしてインストールしたり、アンインストールする時に用いる管理者コマンド。

・httpd
→ Apacheを構成する実行ファイル名。これを指定することでApacheがインストールされる。

・-yオプション
→ ユーザーの確認(yesの入力)なしでコマンドを実行できるオプション。

・systemctlコマンド
→ 指定したコマンド(今回はhttpd、つまりApache本体を指定)を
「起動(start)」
「停止(stop)」
「再起動(restart)」
するコマンド。

ここまででApacheが起動するようになりますが、サーバーを再起動するとまた停止してしまいます。
いちいち起動させるのは面倒なので、Apacheも自動的に再起動させる設定を行います。

Apacheを自動的に起動させる設定

[手順4]Apacheを自動起動させるために、以下のコマンドを実行。
none:ターミナル
sudo systemctl enable httpd.service

systemctlコマンドは指定したコマンドを「起動、停止、再起動」させることができると説明しましたが、自動起動についても
「設定(enable)」
「設定解除(disable)」
「設定の確認(list-unit-files)」
を設定することもできます。

Apacheの自動起動が設定できたかどうかは、以下のコマンドで確認できます。(「httpd.service」 がenabledになっていれば成功)

ターミナル
sudo systemctl list-unit-files -t service

↓実行結果(アルファベット順で並んでいる)
UNIT FILES

...

httpd.service            enabled

...

以上でApacheをインストールし、その実行ファイルであるhttpdが起動しました。

「実行中か」を確認するには、以下のコマンドを実行して、Apacheのプロセス(実行中のプログラムのこと)を確認します。

ターミナル
ps -ax

ここでコマンドの解説。

・psコマンド
→ 実行中のプロセスを確認できるコマンド。

・ -ax
→ 「-aオプション」と「-xオプション」が組み合わさったもの

・ -aオプション
→ 全てのプロセスを表示させるオプション。

・ -xオプション
→ 他の端末に結び付けられているプロセスも表示するオプション。

このコマンドを実行して、以下のような実行結果が表示されれば、サーバー上でApacheが起動しています。

ターミナル
ps -ax

↓実行結果

12134 ?        Ss     0:00 /usr/sbin/httpd -DFOREGROUND

先頭に表示されている「11115」といった数字はプロセスIDといい、プロセスを区別するために自動的につけられた番号です。

これでApacheが起動中であることが確認できたので、次はファイアウォールの設定に移ります。

ですが、まずファイアウォールとは何なのか?ということから振り返ります。

ファイアウォールとは?

ファイアウォールとは、
「通して良いデータを通して、それ以外を遮断する機能」
のことです。

今回は、その中でも簡単だと言われる「パケットフィルタリング」を設定していきたいと思います。

・パケットフィルタリングとは?
→ 流れるパケットを見て、通過の可否を決める仕組みのこと

・パケットとは?
→ まず、「データ通信の際に、送りたいデータを一度に全て送るのではなく、いくつかに分割して送る方式」のことをパケット交換方式と呼ぶ。その時、分割されたデータ一つ一つのことを「パケット」という。

このパケットの中には、「IPアドレス」や「ポート番号」も含まれています。
パケットフィルタリングは、「IPアドレス」や「ポート番号」など、各種情報を判断材料に通過の可否を決めます。

具体的には、以下のことが可能になるようです。

・「特定のIPアドレスを送信元とするパケット以外を除外する」ように構成することで、接続元を制限する。
・ポート番号を制限して、特定のアプリケーションを外部から接続できないようにする。

それでは、ファイアウォールの設定方法に移ります。

ファイアウォールの設定方法

[手順1] AWSのEC2を開き、左側のメニューから「セキュリティグループ」をクリック。
以前作成した「WEB-SG」というセキュリティグループにチェックを入れます。

image.png

[手順2] チェックを入れたら、画面下側の「インバウンド」というタブをクリックし、さらに「edit inbound rules」をクリックします。

image.png

[手順3] ポート80番を開ける(ブロックされているポート80番で通信できるようにする)操作を行います。
具体的には、以下の4点を行い、「保存」をクリックする。

  1. 「ルールの追加」をクリック
  2. タイプは「カスタムTCP」を選択
  3. ポート範囲は「80」を入力
  4. ソースは「カスタム」を選択し、「0.0.0.0/0」を入力。

image.png

以上により、
「ポート22番だけを通して、それ以外は通さない」
という設定に
「ポート80番でも通信できる」
という設定を追加しました。

この状態で、作成したEC2インスタンスのパブリックIPアドレスをアドレスバーに入力して、アクセスしてみてください。
以下のような、Apacheのテスト画面が表示されれば成功です。

image.png

以上で、「Apacheのインストール」と「ファイアウォールの設定」は完了です。
次回は、「IPアドレスではなく、ドメイン名でインスタンスにアクセスできるようにする」という内容をアウトプットしたいと思います。

ここまで読んでいただき、ありがとうございました。

次回: Freenomの無料ドメインをAWSで登録する方法

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0