【AWS初心者】IAMユーザーを使ってEC2上にWebサーバーを作る。パート２

AWS初心者がAWSを触ってみたいと思い、EC2上にWebサーバーを構築することにしました。
不備があればご指摘頂けると助かります。よろしくお願いします。
今回はEC2上にApacheのインストールを行います。

【AWS初心者】IAMユーザーを使ってEC2上にWebサーバーを作る。パート１
https://qiita.com/Pell/items/2bf123ea18d1321a62be

# 本記事の環境
* AWSのIAMユーザー
* ホストOS：Windows10 Pro 64bit 16GB
* ゲストOS：Amazon Linux 2
* Tera Term：4.105
* Apache：2.4.51
* php：本記事では未導入。追々実施予定。
* データベース：本記事では未導入。追々実施予定。

※別途、運用資金も必要です。

# (サーバーが停止中であれば)インスタンスを開始する。
* インスタンスを開始する。
* IPアドレスを固定化していない(Elastic IPが未作成、未紐づけ)場合は「パブリック IPv4 アドレス」が前回と変わっているためメモする。

# Tera TermでSSH接続する。
* メモした「パブリック IPv4 アドレス」を入力する。
* ユーザー名に「ec2-user」を入力する。
* 秘密鍵にて前回ダウンロードした「キーペア(拡張子がpemのファイル)」を選択する。
* 「OK」を選択しSSHで接続する。

# 以降の作業のため、管理者権限を持つrootユーザーに切り替える。
```sh
[ec2-user@ip-XXX-XX-XX-XX ~]$ sudo -i
[root@ip-XXX-XX-XX-XX ~]#
```

# 前回実施し忘れていたyumのアップデートを行う。
```sh
[root@ip-XXX-XX-XX-XX ~]# yum -y update
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                               | 3.7 kB     00:00
(中略)
Replaced:
  grub2.x86_64 1:2.06-2.amzn2.0.3     grub2-tools.x86_64 1:2.06-2.amzn2.0.3

Complete!
```

# Apacheのインストールを行う。
```sh
[root@ip-XXX-XX-XX-XX ~]# yum install -y httpd
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                               | 3.7 kB     00:00
(中略)
  mod_http2.x86_64 0:1.15.19-1.amzn2.0.1

Complete!
```

# Apacheをインストールできたか確認する。
```sh
[root@ip-XXX-XX-XX-XX ~]# httpd -V
Server version: Apache/2.4.51 ()
Server built:   Oct  8 2021 22:03:47
(中略)
 -D SERVER_CONFIG_FILE="conf/httpd.conf"
```

# Apacheを起動する。
```sh
[root@ip-XXX-XX-XX-XX ~]# systemctl start httpd
```

# Apacheを起動できたか確認する。
```sh
[root@ip-XXX-XX-XX-XX ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-10-28 02:24:45 UTC; 1s ago
(中略)
Hint: Some lines were ellipsized, use -l to show in full.
```

# 今のままだとサーバー再起動時にApacheが起動しないので自動起動を設定する。
```sh
[root@ip-XXX-XX-XX-XX ~]# systemctl enable httpd
```

# Apacheの自動起動設定ができたか確認する。
```sh
[root@ip-XXX-XX-XX-XX ~]# systemctl is-enabled httpd
enabled
```

# WEBブラウザでメモした「パブリック IPv4 アドレス」を開けるか確認する。
![01_テストページ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1009061/88a17c4d-7f61-4ec9-d84c-056c011ed3e0.png)

# (補足)(一定期間使わない場合は、)インスタンスを停止する。
* 「インスタンスの状態」からインスタンスを停止する。再度使用するときは、「インスタンスの状態」からインスタンスを開始する。※停止しないと「利用している」と判断されるため。

# (以降の手順は必須ではないです。料金発生にも絡みます。)「Elastic IPアドレス」でEC2上のWEBサーバーのIPアドレスを固定する。

## 「パブリック IPv4 アドレス」を固定するため、Elastic IPアドレスを作成する。
* EC2のページの左部のメニューの「ネットワーク & セキュリティ」の「Elastic IP」を選択する。
* 「Elastic IP アドレスの割り当て」を選択する。
* 「割り当て」を選択する。
![05_ElasticIPaddress.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1009061/42e4a132-b380-1aa4-f45d-be95075b77cf.png)

## 「パブリック IPv4 アドレス」を固定するため、Elastic IPアドレスを関連付ける。
* 「このElastic IPアドレスを関連付ける」を選択する。
![06_ElasticIPaddress.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1009061/97e86486-8ee5-f430-d3a1-5aa4aefa6692.png)
* 「インスタンス」を入力する。※入力候補がでるので選ぶだけ。
* 「プライベートIPアドレス」を入力する。※入力候補がでるので選ぶだけ。
* 「関連付ける」を選択する。
* 「Elastic IPアドレス」をメモする。
* WEBブラウザで関連付けたElastic IPアドレスを開けるか確認する。
* インスタンスを再起動し、同じElastic IPアドレスで再アクセスできるか、WEBブラウザとTera Termで確認する。

## 「Elastic IPアドレス」の関連付け解除と解放の手順
※今回は「Elastic IPアドレス」でEC2上のWEBサーバーのIPアドレスを固定してみる作業をしてみたかっただけなので本手順で直ちに「Elastic IPアドレス」の関連付け解除と解放を実施しました。

* 「Elastic IPアドレスの関連付けの解除」を選択する。
* 「関連付けの解除」を選択する。
* 「Elastic IPアドレスの解放」を選択する。
* 「解放」を選択する。

# 今後の見通し
* phpをインストールする。
* データベースの作成。

# 参考
https://qiita.com/harufuji/items/4fcd8f991fab5ad3354a
https://qiita.com/kono-hiroki/items/86af406d95f325b32e4e
https://qiita.com/gyu_outputs/items/0fe964f0be7e1cfa2ca1