AWSの構成図を作りながら主要な機能を学ぼう！その4

#自己紹介
現在AWS SAA合格を目標に学習中の駆け出しエンジニアです。
2021年3月にAWS CLFに合格しました。
次のステップとしてSAAの学習を始めましたが、ハンズオンでAWSに触れながら学習する事と並行して、構成図を作成して自分にも他の人にも解りやすく説明できるレベルになる事を目指していきます。

前回の記事を見られる方はこちらをどうぞ
[その３パブリックサブネットに必要な条件についてへ](https://qiita.com/megukentarou/items/29ed8318a7c09cd0d4ff)

##記事の読み方
学習中の内容に沿っていくので、具体的なアプリ（ポートフォリオなど）のデプロイ手順とは少し異なる内容になると思います。AWSの仕組みをもっとよく知りたい人や、自分でネットワーク設計を行っていきたい人向けの内容になるかと思います。
もちろん私の様にSAA合格へ頑張る人に役立てれば最高です。
また構成図を見て各サービスの関係性を理解する事を重視してますので、実際のハンズオンの手順と異なる点があると思います。その点はご容赦ください。

##その４EC2について・・・の前に少しおさらい
今回はAWSサービスのメインともいえるEC2インスタンスについて一緒に考えていこうと思います。

前回の時点での構成図
![スクリーンショット 2021-03-28 213643.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/81626298-a199-b9dc-8107-aa1e54bee3a7.png)

VPCを作って、対象のAZにパブリックサブネットとプライベートサブネットを作りました。
VPCにインターネットゲートウェイをアタッチして、パブリックサブネットのルートテーブルでインターネットゲートウェイをルーティングすることで、インターネットと自身のVPCに通信が出来る道筋を作ったイメージですね。

更に通信の際にはサブネットにネットワークACLを作成する事で、不審な通信をフィルタリング出来るようになりました。

今回はまずこの続きから進めていきます。

##プライベートサブネットと通信するには
パブリックサブネットとインターネットゲートウェイ繋ぐイメージは持てましたが、残りのプライベートサブネットはどうなったのでしょうか。
今回も懲りずにコンビニで例えて進めていこうと思います。

プライベートサブネットはコンビニで言う所の「スタッフ専用スペース」です。ここに出入りする為にAWS上でどの様な物が必要なのかを一緒に覚えていきます。

##NATゲートウェイ
![スクリーンショット 2021-03-28 214931.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/2521241b-8637-c794-f036-3ae3864c7874.png)

NATゲートウェイと言う**コンポーネント（部品）**をアタッチする事でプライベートサブネットへの通信が可能になります。
そしてこのNATゲートウェイはアウトバウンド（通信を発信する）は可能で、インバウンド（通信を受信する）は出来ない特徴を持ちます。
コンビニで言うならバックヤードの商品を陳列する（売りに出す）事は可能といった所でしょうか。

そしてNATゲートウェイは**パブリックサブネットに設置する**んです。間違えやすいので注意しましょう。

上手く説明できませんが、インターネットゲートウェイとパブリックサブネットは通信可能な状態になっているので、そのパブリックサブネットに設置する事で、プライベートサブネットに接続が可能になります。

パブリックサブネットが通信の仲介を担っている様なイメージでしょうか。

そして次にプライベートサブネット内のルートテーブルとNATゲートウェイをルーティングする必要があります。

これは前回のインターネットゲートウェイとパブリックサブネットの関係に似ているので解りやすいかなと思います。

| 送信先 | ターゲット | 
|:-----------|------------:|
| 0.0.0.0/0  | NAT Gateway |

以上の結果、構成図はこんな感じになります。
![スクリーンショット 2021-03-28 220902.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/d47ca9f0-e3d8-eb45-0141-2bf7667fc63f.png)


##EC2とは
![スクリーンショット 2021-03-28 221029.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/7ace1722-c9da-9f6f-83da-9f7b421acbbe.png)
AWSのサービスの中核とも言えるEC2(Elastic Compute Cloud)を次は構成図に加えていきます。
EC2についてはここではざっくり「AWS上で使える仮想のコンピュータ（サーバー）」と思ってください。
コンビニで言うとレジやコピー機やATMなどでOKです。スタッフしか使わない機器などもサーバーです。
サーバーはお客さんやスタッフの様々なニーズに応えてくれてます。
そう言ったサービスを提供する側（物）をサーバーと言います。

これを構成図に加えるとこんな感じになります。
![スクリーンショット 2021-03-28 222223.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/43231aa8-b18b-e6b4-627d-15dcacb15b47.png)

ここで線が加えられました。
これはインターネットゲートウェイを通じてどの様な流れで通信が行われるかを表したものです。

パブリックサブネット（お客さんが行き来しても良いスペース）とプライベートサブネット（スタッフ専用スペース）の区分けも少しイメージ出来た様な気がします。

今回はもう１つだけ一緒に覚えていきたい物があります。

##セキュリティグループ
![スクリーンショット 2021-03-28 222855.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/ac1d7796-b6e4-cf72-11c9-5140df06a71f.png)

**セキュリティグループ**とはAWSの仮想ファイアウォールの事です。
どんな通信をOKにするかなどをルールを決めて、これをEC2に適用します。サブネットではないので注意してください。
**ネットワークACLはサブネット単位に設定**
**セキュリティグループはEC2単位に設定**
※セキュリティグループは正確にはENIに設定しますが、最初のうちはEC2だとイメージしてもらって関係性をつかむ事を重視します。

そしてこのセキュリティグループは**ステートフル**です。

ステートフルはざっくり言うと、一度記憶した情報を保持しておくという意味です。

コンビニでお客さんやスタッフの顔や名前を憶えるといった感じでしょうか。

そしてこのステートフルの特徴として、一度許可した通信は2回目以降はチェックしなくなります。

前回の際にネットワークACLは**ステートレス**だと言う話をしました。

ステートレスの場合は保持しないので、毎回チェックを入れます。

最後にセキュリティグループとネットワークACLの違いと構成図を確認して終わりたいと思います。

##構成図
![スクリーンショット 2021-03-28 224441.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/784a1ee4-8608-881f-6d5e-03b30915e494.png)


###ネットワークACLとセキュリティグループの違い



| ネットワークACL | セキュリティグループ | 
|-----------|------------|
| ステートレス | ステートフル |
| サブネットに適用 | EC2（ENI）に適用 |

ここまで読んでくださり有り難う御座いました。

次回はさらに構成図を広げていくか、ここまで紹介したサービスのもう少し細かい内容にふれていくか、どちらかで予定してます。。

AWSの構成図を作りながら主要な機能を学ぼう！その５へ（作成中）