【AWS】Weｂサーバーの構築 （初心者用）

# ～はじめに～
Webサーバーの構築を行ったので、基本的な構築方法を忘れないために備忘録として書きます。
今回は、下記の流れで行いました。

1. EC2インスタンスの設置
2. [Apache](https://hnavi.co.jp/knowledge/blog/apache/)をインストール　

**～構成図～**
![](https://storage.googleapis.com/zenn-user-upload/3bedc2518362-20230109.png)

# 1. EC2インスタンスの設置
・検索欄より「EC2」を検索し、「EC2コンソール」から「インスタンスを起動」をクリック
![](https://storage.googleapis.com/zenn-user-upload/638201bc5d5f-20230109.png)

・構成内容は下記（その他は、お好みで）

![](https://storage.googleapis.com/zenn-user-upload/aba2ebbe8632-20230109.png)
![](https://storage.googleapis.com/zenn-user-upload/614a7ef98de8-20230109.png)
<font color="Red">※ キーペアは、SSH接続するために必要なため、無ければ作成すること</font>
![](https://storage.googleapis.com/zenn-user-upload/2cf48018ffb5-20230109.png)
<font color="Red">※ SSH接続でサーバーの設定を行うので、「有効化」にすること</font>
![](https://storage.googleapis.com/zenn-user-upload/f98b42b06dcc-20230109.png)
<font color="Red">※「SSH/自身のIPアドレスのみ許可」「HTTP/どこからでも接続可」に設定
　 セキュリティグループ＝ファイアウォール</font>
![](https://storage.googleapis.com/zenn-user-upload/066cd71da342-20230109.png)
<font color="Red">※ サブネットのネットワーク範囲内でIPアドレスを割り振ること</font>
![](https://storage.googleapis.com/zenn-user-upload/f26f7dbd920a-20230109.png)
![](https://storage.googleapis.com/zenn-user-upload/ae56633388b6-20230109.png)
\------------------------------------------------------------------------------------------------------
インスタンスの作成が完了したら、
割り当てられた「パブリックIPアドレス」と作成した「キーペア」を使って「[TeraTarm](https://ja.osdn.net/projects/ttssh2/)」などの
エミュレータでSSH接続をしてみる。

**～ パブリックIPアドレス ～**
![](https://storage.googleapis.com/zenn-user-upload/78349b755d43-20230109.png)
**～ 作成されたキーペア ～**
![](https://storage.googleapis.com/zenn-user-upload/8ac084386ec6-20230109.png)
**～ TeraTermの場合 ～**
![](https://storage.googleapis.com/zenn-user-upload/9a529415cee2-20230109.png)
![](https://storage.googleapis.com/zenn-user-upload/bbb52da2d4e1-20230109.png)
<font color="Red">※ ちなみに「root」ユーザーのパスワード変更は、下記の様に行う</font>
![](https://storage.googleapis.com/zenn-user-upload/822fa81d6fe7-20230109.png)


# 2. Apacheをインストール
起動したEC2インスタンスにSSH接続し、Apacheをインストールします。
```shell
## ルートユーザーにスイッチ
[ec2-user@~]$ sudo su -
Last login: Sun Jan  8 16:37:28 UTC 2023 on pts/0

## パッケージのアップデート
[root@~]# yum update -y
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
No packages marked for update

## Apacheのインストール
[root@~]# yum -y install httpd
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Resolving Dependencies
～～省略～～
Complete!

## Apacheの起動
[root@~]# systemctl start httpd.service

## Apacheの起動確認
[root@~]# 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 Sun 2023-01-08 16:50:42 UTC; 28s ago
～～省略～～

## Apacheのプロセス確認
[root@~]# ps -ef |grep http
root      3622     1  0 16:50 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    3623  3622  0 16:50 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    3624  3622  0 16:50 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    3625  3622  0 16:50 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    3626  3622  0 16:50 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    3627  3622  0 16:50 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
root      3672  3487  0 16:51 pts/0    00:00:00 grep --color=auto http

## 自動起動の有効化(サーバー起動時など)
[root@~]# systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

## 自動起動の有効化確認
[root@~]# systemctl is-enabled httpd.service
enabled
```
Apacheのインストールが完了すると、ブラウザのURLからパブリックIPアドレスを入力する。
すると初期Apacheのデフォルト画面が表示される。
![](https://storage.googleapis.com/zenn-user-upload/a398fa205e3a-20230109.png)
これでWebサーバーの構築完了！！！



# ～備考～
- [【 yum 】コマンド（基礎編）―ソフトウェア（パッケージ）をインストール／アンインストール](https://atmarkit.itmedia.co.jp/ait/articles/1608/29/news019.html)

- [TCP/IP通信の状態を調べる「netstat」コマンドを使いこなす](https://atmarkit.itmedia.co.jp/ait/articles/0207/20/news003_2.html)
　ex. netstat -n |grep 22

- [【 lsof 】コマンド――オープンしているファイルを一覧表示する](https://atmarkit.itmedia.co.jp/ait/articles/1904/18/news033.html)
　ex. lsof -i -n -P

- [【チートシート】systemctlコマンド使い方まとめ](https://zenn.dev/en2enzo2/articles/19d46984988e98)

- [【Linux】systemdとsystemctlコマンド：サービスの自動起動、停止、再起動](https://office54.net/iot/linux/linux-systemd-systemctl)