EC2にyumでNginxをインストールしようとしたらできなかった話

EC2インスタンスを作成したときにをNginxをインストールしようとしたら
インストール方法が思ってたのと違ったというお話になります。

## 3行で
* Amazon Linux 2(AL2)だったからyumでNginxが提供されてなかった
* Extrasリポジトリで提供されるNginxをインストールした
* Nginxを起動しブラウザ表示できた

## Nginxをインストールする
linuxならyumでインストールだよなって事でインストールを試みる

```bash
$ sudo yum update
$ sudo yum install nginx
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
パッケージ nginx は利用できません。
エラー: 何もしません


nginx is available in Amazon Linux Extra topic "nginx1.12"

To use, run
# sudo amazon-linux-extras install nginx1.12

Learn more at
https://aws.amazon.com/amazon-linux-2/faqs/#Amazon_Linux_Extras
```
なんだ…と…!?
どうやら、AL2だとyum向けパッケージが提供されていないようです。  

  
ということでエラーメッセージにもある通りExtrasレポジトリで提供されるNginxをインストールしましょう

```bash
$ sudo amazon-linux-extras install nginx1.12

完了しました!
  0  ansible2                 available  [ =2.4.2 ]
  1  emacs                    available  [ =25.3 ]
  2  memcached1.5             available  [ =1.5.1 ]
  3  nginx1.12=latest         enabled    [ =1.12.2 ]
  4  postgresql9.6            available  [ =9.6.6  =9.6.8 ]
  5  postgresql10             available  [ =10 ]
  6  python3                  available  [ =3.6.2 ]
  7  redis4.0                 available  [ =4.0.5  =4.0.10 ]
  8  R3.4                     available  [ =3.4.3 ]
  9  rust1                    available  \
        [ =1.22.1  =1.26.0  =1.26.1  =1.27.2 ]
 10  vim                      available  [ =8.0 ]
 11  golang1.9                available  [ =1.9.2 ]
 12  ruby2.4                  available  [ =2.4.2  =2.4.4 ]
 13  nano                     available  [ =2.9.1 ]
 14  php7.2                   available  [ =7.2.0  =7.2.4  =7.2.5 ]
 15  lamp-mariadb10.2-php7.2  available  \
        [ =10.2.10_7.2.0  =10.2.10_7.2.4  =10.2.10_7.2.5 ]
 16  libreoffice              available  [ =5.0.6.2_15 ]
 17  gimp                     available  [ =2.8.22 ]
 18  docker=latest            enabled    [ =17.12.1  =18.03.1 ]
 19  mate-desktop1.x          available  [ =1.19.0  =1.20.0 ]
 20  GraphicsMagick1.3        available  [ =1.3.29 ]
 21  tomcat8.5                available  [ =8.5.31 ]
```
nginx1.12がenabledになってますね。
(dockerは入れたつもりがないですがenabledとなってますけどまぁ良いでしょう)

バージョンの確認も問題なくできますね。

```bash
$ nginx -v
nginx version: nginx/1.12.2
```

## Nginxの起動確認
Nginxを起動しデフォルトページをブラウザで確認します
### Nginxを起動
Nginxを起動しましょう。念の為に起動確認もします。

```bash
# 起動前確認
$ ps aux | grep nginx
ec2-user 32469  0.0  0.0 119484   980 pts/0    S+   02:52   0:00 grep --color=auto nginx

# 起動
$ sudo service nginx start
Redirecting to /bin/systemctl start nginx.service

# 起動を確認
$ ps aux | grep nginx
root     32491  0.0  0.2 123740  2184 ?        Ss   02:52   0:00 nginx: master process /usr/sbin/nginx
nginx    32492  0.0  0.3 124196  4000 ?        S    02:52   0:00 nginx: worker process
ec2-user 32494  0.0  0.0 119484   936 pts/0    S+   02:53   0:00 grep --color=auto nginx
```
起動後にnginxが表示されてるのでokですね。

### Nginxのデフォルトページをブラウザで確認
[AWSのEC2コンソール](https://console.aws.amazon.com/ec2) > インスタンスを開いて起動中のインスタンスの「IPv4 パブリック IP」をコピーします。
![qiita_1.png](https://qiita-image-store.s3.amazonaws.com/0/110716/c4363c7b-e240-a571-4f9b-9583d2d187bc.png)


ブラウザからインスタンスのパブリックIPにアクセスして下記のような画面が表示されれば確認完了
http://自分のインスタンスパブリックIP
<img width="1668" alt="スクリーンショット 2018-08-29 12.19.32.png" src="https://qiita-image-store.s3.amazonaws.com/0/110716/8f654a11-27cf-6200-b190-6cd06198fde7.png">

# おまけ
インスタンス立ち上げるたびにNginxを起動するのは面倒なので自動起動させると楽です

```
$ sudo chkconfig nginx on
```