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

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

前回の記事を見られる方はこちらをどうぞ
[その2 VPCとサブネットについて](https://qiita.com/megukentarou/items/9b547672c3257830f96f)

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

#その３パブリックサブネットに必要な条件についてへ
前回の話でVPCを１つのコンビニとして例えていましたので、今回もコンビニに例えて一緒に考えていこうと思います。

前回はコンビニ（VPC）の中にサブネットを作成するイメージを構成図にしました。
![スクリーンショット 2021-03-20 10.38.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/a6dd0301-058c-361a-99b8-0704c5f65614.png)

今回はこの続きになります。
パブリックサブネットはお客さんに利用してもらう領域（フロアスペースやトイレ）でプライベートサブネットはスタッフだけ出入り出来る領域です。
これをネットワーク上で実現しようとすると、どの様な条件が必要なのでしょうか？
もちろん設定する際の名前などで区別するのも大事ですが、機能として必要なものがあります。

###インタネットゲートウェイ
![スクリーンショット 2021-03-21 6.53.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/b50457ba-c4d7-bc19-d8e2-a2a8b30916f0.png)
インターネットゲートウェイはAWSサービスの中で、インターネットと自身のリソースを繋ぐ為の**コンポーネント**です。コンポーネントは部品と言う意味です。これもよく使われる単語ですが、ややこしい場合は部品だと理解しておきましょう。

この**インターネットゲートウェイ**をパブリックサブネットに**アタッチ**する事が必要です。
ちなみに**アタッチ**は接続するとか言う意味です。これも良く使われますが接続で良いです。ちなみに反対の意味で**デタッチ**と言うワードも良く使われますが、接続解除と言う理解で良いと思います。
ちなみに私は学習当初、この様な初めて聞くワードが次々と現れる事でメチャクチャ苦労しました。今もそれは変わりませんが、文章の意味が最低限理解できる程度の解釈が出来れば良いやと割り切って学習する様になってからは少しストレスが減りました。

ではこのインタネットゲートウェイを構成図に入れるとこんな感じです。
![スクリーンショット 2021-03-21 7.13.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/84b20475-6b5a-a468-171f-ca24b9a8f632.png)
コンビニで言う所の自動ドアでしょうか。

続いてのコンポーネントについて考えていきます。

###ルートテーブル
![スクリーンショット 2021-03-21 7.27.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/4f527df1-cf37-9395-d61b-0adc4452baa2.png)
ルートテーブルは各IPアドレスとサブネットの関係性をどの様に定義・ルールを決めるかと言った際に使用するものです。

これもコンビニに例えてみましょう。
パブリックサブネットの場合はお客さんもスタッフも関係業者の方も全ての人が行き来をする領域なので、誰でもOKと言うルールを定義したり、プライベートサブネットの場合はスタッフだけに制限する等と言ったルールを定義したりします。
構成図に入れるとこんな感じです。
![スクリーンショット 2021-03-21 7.32.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/dde240dd-6973-e72e-ef77-68b194ce76ac.png)

次にパブリックサブネットのルートテーブルにインターネットの世界と通信が出来る為の道筋を作っていきます。
この事を**ルーティング**と言います。
※記事はIPアドレスはIPv4を前提で話を進めます。またIPアドレスやサブネットマスクの話はそれだけで結構なボリュームになってしまいそうなので、改めて別の機会で記事に出来ればと考えています。

ルートテーブルにこの様なルールを追加します。

| 送信先 | ターゲット | 
|:-----------|------------:|
| 0.0.0.0/0  | Internet Gateway |
この条件をパブリックサブネットに追加する事で、パブリックサブネットにはどのIPアドレスからもアクセスが可能になります。

パブリックとプライベートを区別する方法についてはこのインターネットゲーウェイへのルーティングの有無で決めると言った感じです。
逆に自分がプライベートで扱うつもりだったサブネットにインターネトゲートウェイへのルーティングを設定すると実質はパブリックサブネットとして機能して、公開したくないリソースを世に出してしまい兼ねないので、とっても大事な考え方になります。

##ネットワークACL
今回の記事の最後はネットワークACLと言うものについて考えていこうと思います。
![スクリーンショット 2021-03-21 8.20.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/98fa4353-43e0-bf96-4dcc-f15d9ddd2f5a.png)
**ネットワークACL**はサブネットにごとに設置する**ファイアウォール**です。
ファイアウォールとは、インターネットの世界で不審な通信などを制御するセキュリティ対策の１つです。
![スクリーンショット 2021-03-21 8.31.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/ad2b006e-d6fe-5033-cb5a-8a86caa751dd.png)
通信は基本的に**リクエスト**と**レスポンス**の繰り返しになります。
コンビニで例えるなら、
お客さんが肉まんをくださいと言うのがリクエスト
お店の人が肉まんを渡すのがレスポンス

立場を逆転するなら
お店の人が代金を請求するのがリクエスト
お客さんが代金を支払うのがレスポンス

こう言った事の繰り返しが通信の世界でも行われています。

この時に通信を受け入れるのを**インバウンド**、通信を外部に発信する事を**アウトバウンド**と言います。
ネットワークACLはこのインバウンドとアウトバウンドに対してチェックを入れて、通信しても良いインバウンド/アウトバウンドなのかを判断してます。ダメな通信に関してはその通信を破棄します。

構成図にするとこんな感じです。
![スクリーンショット 2021-03-21 8.38.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/3a341740-8ee6-1e9a-baf9-428076ab0329.png)

ネットワークACLは**ステートレス**です。
ステートレスと言うのは状態がないと言う意味らしいですが、別の表現で例えるなら履歴を残さないと言った感じです。
つまりお客さんが来店（インバウンド）する際に毎回来店チェックをする感じです。ちなみに店員が少し外出（アウトバウンド）する際にもチェックを入れる感じです。

ステートレスと言う言葉は次回の記事でも少し触れていこうと思いますので、今はへ〜そうなんだ位でOKです。

少しずつですが構成図にも色々加えられてきました。

ただネットワークACLあたりからコンビニで例えるのに限界を感じてますww

別の表現にするかもう少しコンビニで例え続けるかは次回の記事を作りながら考えていこうと思います。

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

次回はAWSのメイン機能であるEC2に付いて触れていこうと思います。


[AWSの構成図を作りながら主要な機能を学ぼう！その４へ](https://qiita.com/megukentarou/items/4709945e6e02bd4c097d)