第6回 Apacheのインストール
前回構築したインスタンスに、Apacheをインストールしていきます。
Apacheをインストールすることで、インスタンスにWEBサーバの機能を持たせます。
以下の順で進めていきますのでよろしくお願いします。
- TeraTermでインスタンスへログイン
- Apacheインストール
- httpd自動起動設定
- httpd起動
- セキュリティグループの設定
- httpd待機ポート確認
- セキュリティグループのポート開け
- 動作確認
TeraTermでインスタンスへログイン
インスタンス作成後の確認も踏まえて、自端末からインスタンスへSSH接続を行います。
前回のインスタンス構築後に実施すれば良かったのですが・・・
今回使用させていただくターミナルソフトは、TeraTermです。
TeraTerm v4.105(窓の杜様に飛びます)
早速TeraTermを起動します。
TeraTermでの入力項目です。
- ホスト名 :「パブリックIP」を入力します。
- サービス :「SSH」を選択します。(デフォルト)
- TCPポート: 「22」(デフォルト)
「OK」を選択するとセキュリティ警告が表示されます。
これは当該インスタンスへ初めて接続する場合に表示されるものです。
問題はないので、続けて「OK」ボタンを選択してしまいます。
その後、認証情報を問われますので入力していきます。
- ユーザ名:「ec2-user」 最初から登録されているユーザ
- RSA/DSA/ECDSA/ED25519鍵を使う:「チェック」
- 秘密鍵:インスタンス起動時に生成したキーファイルを選択(hogehoge .pem ってファイル)
認証に成功すると以下の初期画面が表示されます。
さすがAWS、ログインバーナーもお洒落です。(なんのマーク?)
Apacheインストール
ログイン後、以下のコマンドを実行しApacheをインストールします。
完了するとcomplete!!と表示されプロンプトが戻ります。
[ec2-user@ip-10-0-1-30 ~]$ sudo yum -y install httpd
本当にインストールされたのか確認をします。
$ yum list installed | grep httpd
generic-logos-httpd.noarch 18.0.0-4.amzn2 @amzn2-core
httpd.x86_64 2.4.41-1.amzn2.0.1 @amzn2-core
httpd-filesystem.noarch 2.4.41-1.amzn2.0.1 @amzn2-core
httpd-tools.x86_64 2.4.41-1.amzn2.0.1 @amzn2-core
# httpdがインストールされた!!
httpd自動起動設定
インストールが終わったらhttpdデーモンの設定を行なっていきます。
Apacheのデーモンがhttpdなので登場するのは、登場するのはほとんどhttpdです。
はじめに、httpdサービスの自動起動を設定します。
この設定で、インスタンス起動時にhttpdも起動します。
# 現状の確認
$ sudo systemctl list-unit-files | grep httpd
httpd.service disabled
httpd.socket disabled
## 「httpd.service」が「disabled」のため自動起動ではありません!!
# 自動起動設定
$ sudo systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
# 自動起動設定確認
$ sudo systemctl list-unit-files | grep httpd
httpd.service enabled
httpd.socket disabled
## 「httpd.service」が「enable」になったので、自動起動が有効になりました。
httpd起動
インストールした状態だとhttpdは起動していないので起動してあげます。
# httpd起動
$ sudo systemctl start httpd.service
## httpd起動確認
$ sudo systemctl status httpd.service
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2020-05-19 06:18:46 UTC; 35s ago
### ステータスが「runnning」となっているのでOK
Docs: man:httpd.service(8)
Main PID: 3913 (httpd)
==============以下略==========================
セキュリティグループの設定
ここまででApacheのインストールと起動が完了しました。
しかし、これだけはクライアントからアクセスすることはできません。
Apacheが通信で使用するポートを確認して、インスタンス側でそれを許可する必要があります。
httpd待機ポートの確認
まずはhttpdが使用するポートを確認していきます。
# 以下コマンドで確認
$ sudo lsof -i -n -P | grep apache
httpd 3914 apache 4u IPv6 26636 0t0 TCP *:80 (LISTEN)
httpd 3915 apache 4u IPv6 26636 0t0 TCP *:80 (LISTEN)
httpd 3916 apache 4u IPv6 26636 0t0 TCP *:80 (LISTEN)
httpd 3917 apache 4u IPv6 26636 0t0 TCP *:80 (LISTEN)
httpd 3918 apache 4u IPv6 26636 0t0 TCP *:80 (LISTEN)
## Apacheは「TCP」の「80」で待機していることがわかりました。
セキュリティグループのポート開け
httpdが使用するポートが分かったので、セキュリティグループの設定を確認して、必要な設定を行なっていきます。
「EC2 マネジメントコンソール」から、「インバウンドルール」タブの「インバウンドルールの編集」を選択します。
初期状態のためTCP22番ポートに対する許可設定しかされていません。
前項で確認したApache用の「TCP」「80」を追加してあげます。
無事に追加できました。
必要な設定が完了したので、Webブラウザからインスタンスに接続してみます。
Webブラウザのアドレスバーにhttp://"パブリックIP"
を入力します。すると・・・
インスタンスがApacheのWebサーバとして稼働していることがわかりました。
今回はここまでです、次回はDNS周りの設定をする予定です。
参考文献
完コピにならないよう頑張ります。
Amazon Web Services 基礎からのネットワーク&サーバー構築