AWS EC2にNginxをインストールする手順を図解

# はじめに
完全にAWS初心者向けです。
私がAWS初心者です。。。プライベートではずっとGCP（Firebase）を使っているのですが、仕事ではAWSを使っています。

なので、まずはシンプルに
**「AWSでWebアプリケーションを公開するにはどうしたらいい？」**
という疑問を解消していきたいな〜っと思ってやってみました。

# EC2とNginxについて
私は今までwebアプリケーションのデプロイにはFirebase hostingを使っていました。

https://firebase.google.com/docs/hosting

なのでAWSでも「コマンド1つでパッとデプロイできるんかな〜？」とか思ってましたが、全く違いましたw


EC2とNginxについての解説はさまざまな所でされていると思うので、詳しい説明はここでは省きますが:bow_tone1:ざっくり言うと

**「EC2」と言う仮想サーバーの中に「Nginx」と言うWebサーバーを入れる**

と言う感じでしょうか。

## EC2とは
>EC2とは「Amazon Elastic Compute Cloud」の略称で、AWSで利用できるシステムのひとつとなっています。伸縮性や弾力性を意味するElasticという言葉通り、ユーザーの必要に応じてスペックを変更できるのがEC2の魅力です。
https://www.wafcharm.com/blog/ec2-for-beginners/

## Nginxとは
世界的に使用される著名なWebサーバソフト「Apache」のライバル的な存在となるのがNginx！！
つまり「Webサーバソフトの1つ」です。

# EC2インスタンスを作成
>AmazonのEC2はインスタンスという単位で、サーバー環境が構築できます。インスタンスとは簡単に言えば、OSを載せた仮想サーバーのことです。また、インスタンスは複数作成して実行することもできます。 
例えば、アプリケーションサーバーとデータベースサーバーなど、合計で2つのサーバーが必要な場合は、インスタンスを2つ作成して対応できます。 
このように、必要に応じて複数のインスタンスを立ち上げることで、柔軟なインフラ構築ができるのがAmazon EC2の強みです。
https://techplay.jp/column/537

👆がインスタンスです。

一応スクショを載せますが、こういったコンソール画面はコロコロとデザインが変わると思うので、参考程度のお気持ちで見るのがいいかと思います:sweat_smile:

## インスタンスを起動
![スクリーンショット 2022-03-21 18.07.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/10135736-2b9a-931d-3f83-7add72089d80.png)
`インスタンスを起動＞Amazon Linux 2を選択＞デフォルトで選択されているt2.micro`

## Amazon Linux 2を選択
デフォルトで選択されてるかと
![スクリーンショット 2022-03-21 18.11.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/1d9267cf-e004-e7f9-9ff8-1bc5e5239b5e.png)

## t2.microにチェックをつけて次のステップ
デフォルトで選択されてるかと
![スクリーンショット 2022-03-21 18.12.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/d0a069f7-8948-2709-ce4d-a89ce6b3cd25.png)

## 詳細の設定はデフォルトで次のステップ
![スクリーンショット 2022-03-21 20.16.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/0617fa88-21e4-861a-7d3a-2dfa1c0b464a.png)

## ストレージの追加もデフォルトで次のステップ
![スクリーンショット 2022-03-21 20.17.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/941bf73f-9546-f7d3-5d4b-2296aa33bbf8.png)

## タグの追加もデフォルトで次のステップ
![スクリーンショット 2022-03-21 20.18.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/4dd413f1-1786-a251-fc13-915e3f0e8c3f.png)

## セキュリティグループの設定でhttpを追加
webサーバなのでhttpで入ってくる必要もある。なのでhttpを追加。
ソースが全て0なのは、「どこからでも受け付ける」みたいな意味（らしいです）
![スクリーンショット 2022-03-21 20.20.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/1524f1c5-a7c5-be47-2739-a8ded9d22e83.png)

## インスタンス作成の確認
キーペアなしで続行します。
![スクリーンショット 2022-03-21 20.24.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/f493de03-9f1a-0a69-2f4a-9c24f66f391e.png)

# Nginxをインストール
インスタンスが実行中になったら接続
（実行中になった段階から課金スタートっぽいです）
![スクリーンショット 2022-03-21 20.28.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/e37aa3ec-b685-9c09-bf4d-7e6994d033ee.png)

とりあえずデフォルトのまま接続
![スクリーンショット 2022-03-21 20.29.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/f876cdda-e7f0-9d6c-b408-bfade9469df6.png)

## コマンド実行していく
![スクリーンショット 2022-03-21 11.45.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/b6360b2d-28be-354e-c055-f41694a7513e.png)

```console
// nginx1.12をインストール
sudo amazon-linux-extras install nginx1.12

// これでいいか聞かれる
Is this ok [y/d/N]: y

// nginx起動
sudo systemctl start nginx

// 起動しているか確認
systemctl status nginx
```

![スクリーンショット 2022-03-21 20.41.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/c7590128-ac5c-ff0d-2dfd-253c7822197e.png)

# アクセスしてみる
IPアドレスでアクセスしてみる
![スクリーンショット 2022-03-21 20.42.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/de1d96a4-7ee7-47aa-a455-32c523d67df6.png)

webサーバが起動して、外部からアクセス成功:relaxed:
![スクリーンショット 2022-03-21 20.43.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/8e9e4892-080c-d052-e87b-1b2d5ac4e548.png)

# 終了する

```console
// 切断する
exit
```

![スクリーンショット 2022-03-21 20.47.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/7fdc08b5-64ea-2aa2-338d-2209070c7443.png)

`インスタンスの状態＞インスタンスを停止`を選択

![スクリーンショット 2022-03-21 20.49.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/2f155a4c-f2db-0b57-f9c4-e0d9602527a4.png)

# 最後に
これで仮想マシンEC2を立ち上げてwebサーバNginxを立ち上げアクセス、と言う一連の流れがとりあえずはできました・・・・:relieved: